简介:面向紫微斗数研究者与命理爱好者的 PC Windows 排盘工具,免注册即可使用,重点解决三合、飞星、四化等不同流派排盘与命例管理需求。软件支持阳历、阴历、四柱三种输入方式,可选真太阳时,并提供太阴天地人三盘、冬至盘、节气天地人三盘(立春盘)等排盘方法,星曜庙旺、星曜定义与四化规则均可自定义,适合做命例分类、查询与长期保存研究。压缩包共160个文件,约1.42MB,主要由145个rtf说明或资料、7个xml配置、2个exe主程序及数据库、配置文件等组成,解压后运行启动程序即可,无需安装;软件适用于简体或正体中文系统,Win7以上自带所需.NET运行库,XP需另装。已有5793人学习,便于快速搭建个人排盘环境、对照不同盘式、积累可检索命例库,并借助丰富查询与无限保存功能开展系统化命例整理。
1. 先把时间口径钉死:易排盘·紫微斗数 V3.0 能省掉哪几次手工返工
前阵子帮 A 同学核对一张盘,出生时间只差四分钟,命宫就从午宫滑到未宫。手工排盘最怕的不是安星口诀背不下来,而是时间口径没锁死:公历农历混录、真太阳时开一半、子时换日规则前后不一致,最后盘面对不上,只能从头返工。易排盘·紫微斗数 V3.0 这类本地排盘工具的价值,就在于把农历转换、真太阳时校正、十二宫安星、四化标注和大限流年叠盘收进同一套规则里,让每一次排盘都能复现。它适合需要频繁核对命例的从业者、做规则比对的研究者,也适合刚学紫微斗数、想先看清字段结构再背口诀的新手。别把它当成“点一下出结果”的黑匣子,先把它当成一台可校验的排盘计算器,后面才谈得上效率。
2. 排盘底座:农历转换、真太阳时与十二宫字段怎么逐项核对
排盘软件最容易让人放松警惕的地方,是它把历法转换藏在了后台。输入一个公历生日,界面上直接出现农历日期、干支、十二宫和主星,看起来一气呵成。但只要出生时间靠近时辰边界,或者出生记录本身是农历闰月,后台任何一个默认值都可能把盘面推到另一条路上。易排盘·紫微斗数 V3.0 的底座能力,核心不是“排得快”,而是把时间口径、宫位字段和规则版本拆开,让你知道每一步用了什么参数。先用三条边界命例压一遍,再批量录自己的数据,返工率会低很多。
2.1 时间口径先于一切:公历、农历、真太阳时
我一般要求录入时只填公历日期和时间,农历转换交给软件完成。原因很直接:农历输入要额外处理闰月标记,一旦漏标,月份会整体错位;而公历转农历是确定性更高的路径。出生时间则要额外关注真太阳时。真太阳时不是简单给标准时加一个固定分钟数,它同时受出生地经度和时差方程影响。经度每偏离标准经线一度,平太阳时大约差四分钟;时差方程在一年中还会来回摆动十几分钟。靠近时辰交界的人,这几分钟足够让时柱变掉。
| 参数 | 建议填法 | 为什么要管 |
|---|---|---|
| 出生日期 | 公历 YYYY-MM-DD | 减少农历闰月漏标 |
| 出生时间 | HH:MM,尽量精确到分钟 | 时辰边界最敏感 |
| 时区 | 按出生地实际时区 | 跨时区记录不能直接套默认值 |
| 经度 | 出生地经度,保留小数 | 真太阳时校正需要 |
| 真太阳时 | 开或关必须记录 | 同一命例不能两次口径不同 |
| 换日规则 | 子初换日或子正换日,锁定一种 | 日柱和时柱会差一天 |
| 规则版本 | 记录软件内置规则或自定义规则 | 四化表、安星法有流派差异 |
提示:真太阳时开关不要凭感觉切。一个命例第一次排盘时用了什么口径,就写进备注;后续核对、导出、迁移都沿用同一口径,否则你会在“为什么这张盘和上次不一样”上耗掉半天。
如果软件内置了出生地库,优先用内置地点做真太阳时校正,再拿下面这段脚本做抽检。脚本只做经度时差和时差方程的接口演示,不替代完整天文历表;它的用途是帮你判断软件给出的真太阳时有没有明显跳变。
from datetime import datetime, timedelta def true_solar_time(local_dt: datetime, longitude: float, standard_meridian: float = 120.0, eot_minutes: float = 0.0) -> datetime: """ local_dt: 当地标准时 longitude: 出生地经度,东经为正 standard_meridian: 标准经线,示例取 120 eot_minutes: 时差方程,需查天文历表或成熟库 """ # 经度时差:每偏离标准经线 1 度,平太阳时差 4 分钟 longitude_minutes = (longitude - standard_meridian) * 4.0 # 真太阳时 = 标准时 + 经度时差 + 时差方程 return local_dt + timedelta(minutes=longitude_minutes + eot_minutes) if __name__ == "__main__": sample = datetime(1990, 6, 15, 23, 58) print(true_solar_time(sample, longitude=116.4, eot_minutes=-0.3))这段代码的关键参数只有四个:local_dt是当地标准时,longitude是出生地经度,standard_meridian是时区对应的标准经线,eot_minutes是时差方程。逻辑上先算经度时差,再叠加时差方程,最后得到真太阳时。实际使用时不要拿它替代软件内置地点库,而是用它验证“23:58 这种边界时间经过校正后有没有跨到第二天”。如果软件结果和手算结果差出十几分钟,先查经度是否填错,再查时差方程是否被忽略。
2.2 十二宫与安星:把规则拆成可核对字段
十二宫不是一张装饰图,它至少包含宫位名、宫位干支、宫位地支、主星、辅星、四化标记和身宫标记。手工核对时,我习惯先看命宫和身宫,再看五行局,最后看十四主星落宫。这个顺序有原因:命宫定错,全盘宫位都会平移;五行局定错,大限起运岁数会跟着错;主星落宫错,四化落点再对也没有意义。
易排盘·紫微斗数 V3.0 这类工具通常会把本命盘、大限盘、流年盘放在同一界面或相邻页签里。界面看起来复杂,实际核对时只需要盯住几个稳定字段:命宫干支、身宫干支、五行局、紫微星落宫、十四主星分布、生年四化落宫、大限起止年龄。把它们抄到一张对照表里,和软件显示逐项比对,比盯着整张盘找差异可靠得多。
常见做法是先在软件里建一个“基线命例”,用你已知答案的出生信息排一次盘,把上述字段抄下来。之后每次升级软件、切换规则版本、导入新命例,都拿这个基线命例重新排一次。字段没变,说明规则口径没漂;字段变了,先别急着改数据,去设置里看换日规则、真太阳时开关、四化表版本是不是被重置了。
2.3 一次完整排盘的操作路径
完整路径可以压成五步,每一步都留一个可复查的记录。第一步,新建命例,只录公历日期、时间、时区和经度,备注里写明“是否启用真太阳时”。第二步,生成本命盘,先核对命宫、身宫、五行局和十四主星,不急着看大限。第三步,打开四化显示,核对生年四化落在哪四宫,把落宫记录下来。第四步,切换大限和流年,确认起止年龄和流年宫位没有跳格。第五步,导出或截图存档,文件名带上case_id、规则版本和排盘日期。
这里最容易翻车的是第二步和第四步之间的口径漂移。有人排本命盘时关了真太阳时,切大限时又打开,软件不会提醒你,盘面却已经换了一套时间。我的做法是:一个命例从新建到导出只允许改一次时间口径,改完必须重新生成整盘,并在备注里写清“旧口径作废”。批量排盘前,先拿子时、闰月、真太阳时跨时辰这三类边界样本各跑一遍,确认软件输出稳定,再导入正式数据。
3. 四化与大限流年:把叠盘顺序拆成可复现的三步
四化是紫微斗数里最容易产生“同一张盘、两种说法”的部分。生年四化看年干,宫干四化看各宫天干,大限四化和流年四化又要叠上去。不同流派对十干四化的取法并不完全一致,软件如果内置了多套规则,却没有在导出时标明用了哪一套,后面做对比就会变成各说各话。易排盘·紫微斗数 V3.0 的用法重点,不是背一张万能四化表,而是把“哪一层四化、用哪个天干、落在哪个宫”拆成可复现的三步。先把层级定住,再谈叠盘,最后用配置文件做回归校验。
3.1 生年四化、宫干四化与大限流年四化的层级
生年四化由出生年干决定,落在本命盘十二宫里,通常作为底色。宫干四化由每个宫位自己的天干决定,用来看宫与宫之间的引动关系。大限四化由大限宫干决定,流年四化由流年干决定。三层四化如果混在一张图上,颜色和标记一多,很容易把“生年忌”看成“大限忌”。我一般要求软件或导出表把四化分层标注:生年一层、大限一层、流年一层,宫干四化单独一列,不和大限流年混色。
| 层级 | 取干来源 | 作用范围 | 核对要点 |
|---|---|---|---|
| 生年四化 | 出生年干 | 本命十二宫 | 四化落宫是否与基线命例一致 |
| 宫干四化 | 各宫宫干 | 宫与宫之间 | 是否被误当成大限四化 |
| 大限四化 | 大限宫干 | 十年大限 | 起止年龄和宫位是否对 |
| 流年四化 | 流年干 | 当年流年 | 流年宫位是否跳格 |
这张表看起来简单,实际排盘时最常出错的是“宫干四化被当成本命四化”。宫干四化在每个宫位下方都有一组小字,视觉上很容易和生年四化挤在一起。核对时先关掉大限流年层,只看本命盘,把生年四化四颗星记下来;再打开宫干四化,确认它没有覆盖生年标记。两步分开做,比在一张满屏标记的盘上找差异稳。
3.2 叠盘顺序:本命盘为底,大限流年只做覆盖
叠盘顺序我固定为:本命盘做底,大限盘覆盖十年宫位,流年盘再覆盖当年宫位。每一步只改一个变量,改完立刻记录。比如先看本命盘命宫,再切大限盘看大限命宫落在本命哪一宫,最后切流年盘看流年命宫又叠到哪一宫。顺序反过来,先看流年再回头看本命,很容易把流年宫位当成原局宫位,后面解释全乱。
大限起止年龄要和五行局一起看。五行局不同,起运岁数不同;如果软件里改了五行局规则,大限起点会整体平移。我的做法是:在基线命例里记下“五行局 + 起运岁数 + 第一大限起止”,每次切换规则版本先对这三项。三项对得上,再去看四化落宫。流年部分则重点看流年干和流年命宫,不要一上来就追小星曜,先把年干四化和流年宫位锁定。
注意:大限流年叠盘不是把三层四化合成一层。生年四化、大限四化、流年四化要能分别开关、分别导出。合在一层里看图省事,核对时就是灾难。
3.3 用配置文件固定四化表并做回归校验
不同流派四化表有差异,这件事没法靠“谁记得准”解决。更稳的做法是把当前使用的四化表写成配置文件,排盘前加载,导出时把配置版本一起写进结果。下面这段 Python 只是示例结构,用来说明怎么把十干四化固定成可校验的数据,不替代软件内置规则;实际以易排盘·紫微斗数 V3.0 当前规则版本为准。
# rule_profile.json 的结构示例 { "profile_name": "baseline_a", "version": "3.0-local-01", "sihua": { "甲": {"禄": "廉贞", "权": "破军", "科": "武曲", "忌": "太阳"}, "乙": {"禄": "天机", "权": "天梁", "科": "紫微", "忌": "太阴"}, "丙": {"禄": "天同", "权": "天机", "科": "文昌", "忌": "廉贞"}, "丁": {"禄": "太阴", "权": "天同", "科": "天机", "忌": "巨门"} } }import json def load_sihua(path: str) -> dict: with open(path, "r", encoding="utf-8") as f: data = json.load(f) # 只保留四化表,版本号单独返回,导出时写进结果 return data["sihua"], data["version"] def check_case(case_year_gan: str, expected: dict, table: dict) -> bool: actual = table.get(case_year_gan) if actual != expected: print("四化不一致:", case_year_gan, actual, expected) return False return True配置文件里的profile_name是规则档名,version是版本标记,sihua是十干四化映射。load_sihua只负责读表和版本号,check_case拿基线命例的年干和预期四化做比对。逻辑说明很直接:先把规则固定成数据,再让排盘结果去对数据,而不是每次靠记忆判断。参数上要注意,年干只取出生年干,不要拿大限干或流年干来跑这张表;大限流年四化应该另建一层,用对应宫干或流年干单独校验。导出命例时把version一起写进文件名或备注,后面换规则档才有后悔药。
4. 批量命例管理:CSV 导入、导出校验与版本迁移
单张盘靠界面核对还能忍,一旦命例上到几十上百条,手工录入就会变成主要误差来源。日期格式、时间格式、时区、经度、真太阳时开关、换日规则,任何一列填错,排出来的盘都不会报错,只会安静地错。易排盘·紫微斗数 V3.0 这类工具如果支持批量导入,落地时最该先做的不是全量导,而是把字段模板、试导样本和导出校验跑通。批量管理的目标不是“一次灌完”,而是“灌完以后能查、能回滚、能迁移”。
4.1 批量录入的字段设计与模板
我一般把批量字段压到最小可用集,再加备注列。最小集包括:命例编号、公历日期、出生时间、时区、经度、是否启用真太阳时、换日规则、规则档名。备注列用来写原始出生记录、数据来源和人工确认标记。不要一上来把大限、流年、解释文本都塞进导入表,那些属于排盘后的结果,不是输入字段。
| 字段 | 示例 | 必填 | 说明 |
|---|---|---|---|
| case_id | C0001 | 是 | 唯一编号,不能重复 |
| birth_date | 1990-06-15 | 是 | 统一公历,避免农历闰月歧义 |
| birth_time | 23:58 | 是 | 24 小时制,精确到分钟 |
| timezone | UTC+8 | 是 | 按出生地实际时区 |
| longitude | 116.4 | 是 | 真太阳时校正用,东经为正 |
| use_true_solar | 1 | 是 | 1 开,0 关,必须记录 |
| day_boundary | zi_chu | 是 | 换日规则,固定一种 |
| rule_profile | baseline_a | 是 | 四化与安星规则档 |
| note | 边界样本 | 否 | 记录人工确认信息 |
模板建议用 UTF-8 带 BOM 的 CSV,Excel 打开不乱码,Python 读取也稳。日期统一YYYY-MM-DD,时间统一HH:MM,不要混用1990/6/15和1990-06-15。case_id不要用中文姓名或手机号,既避免隐私,也避免导出后排序混乱。use_true_solar用 0/1 而不是“是/否”,批量处理时少一层解析。
4.2 导入前后的校验脚本
导入前先跑一遍必填字段、格式和重复编号检查。下面脚本只做 CSV 层校验,不替代软件导入校验;它的价值是把明显错误挡在导入之前,减少“导进去才发现时间变成 00:00”的返工。
import csv import re from datetime import datetime REQUIRED = ["case_id", "birth_date", "birth_time", "timezone", "longitude", "use_true_solar", "day_boundary", "rule_profile"] def validate_csv(path: str) -> None: seen = set() with open(path, "r", encoding="utf-8-sig", newline="") as f: reader = csv.DictReader(f) missing = [c for c in REQUIRED if c not in reader.fieldnames] if missing: raise ValueError(f"缺少字段: {missing}") for line_no, row in enumerate(reader, start=2): case_id = row["case_id"].strip() if not case_id: raise ValueError(f"第 {line_no} 行 case_id 为空") if case_id in seen: raise ValueError(f"第 {line_no} 行 case_id 重复: {case_id}") seen.add(case_id) # 日期和时间分开校验,避免 1990/6/15 这类格式混入 datetime.strptime(row["birth_date"], "%Y-%m-%d") datetime.strptime(row["birth_time"], "%H:%M") if row["use_true_solar"] not in {"0", "1"}: raise ValueError(f"第 {line_no} 行 use_true_solar 只能是 0 或 1") if not re.fullmatch(r"-?\d+(\.\d+)?", row["longitude"].strip()): raise ValueError(f"第 {line_no} 行 longitude 不是数字") print("校验通过,命例数:", len(seen)) if __name__ == "__main__": validate_csv("cases_template.csv")脚本里的REQUIRED是必填字段清单,seen用来抓重复case_id,strptime负责日期时间格式,re.fullmatch只放行数字经度。逻辑上先查表头,再逐行查空值、重复和格式,任何一项不过直接抛错,不做“自动修正”。参数说明:encoding="utf-8-sig"是为了兼容 Excel 导出的 BOM;newline=""避免 CSV 换行解析异常;line_no从 2 开始,对应表头后的第一行数据,报错时能直接定位。
导入后不要马上全量信任。先抽三条:一条普通时间、一条子时边界、一条真太阳时跨时辰。三条都能在软件里复现基线结果,再放全量。导入完成后统计行数、检查空行、抽样打开命例看时间有没有被截断。批量导入最常见的翻车不是软件不支持,而是 CSV 里藏了空行或全角空格,导入后变成一条case_id为空的脏数据。
4.3 导出、备份与版本迁移
导出格式优先选结构化数据,CSV 或 JSON 都行,关键是保留原始输入字段和规则版本。只导出盘面截图不够,截图不能回滚,也不能做批量比对。我的习惯是每次升级软件或切换规则档之前,先全量导出一次,文件名带上日期和规则档名,例如cases_2025-06-01_baseline_a.csv。升级后先拿基线命例和三条边界样本重排,确认命宫、五行局、生年四化、大限起点没有漂,再打开旧命例。
版本迁移时注意两个默认值:真太阳时开关和换日规则。新版软件可能把默认值重置,旧命例打开后看起来正常,实际时间口径已经变了。迁移检查表可以只写四项:基线命例字段是否一致、边界样本是否跨时辰、批量命例数量是否对得上、导出文件是否带规则版本。四项过完,再处理个别命例的备注迁移。数据量大的时候,不要在同一天做“升级 + 全量导入 + 改规则档”三件事,变量太多,出了问题很难定位。
5. 避坑排查:五个让命盘对不上的常见原因
排盘软件用久了会发现,大部分“盘不对”不是软件算错,而是输入口径、规则版本或数据迁移出了偏差。下面五条是血泪经验里出现频率最高的,每条都按现象、原因、解决写。遇到盘面对不上,先按这个顺序排查,不要一上来就怀疑安星算法。
5.1 时间口径类翻车
现象一:同一出生时间,两次排盘命宫不同。原因通常不是软件随机,而是真太阳时开关被切过。第一次排盘关了真太阳时,第二次打开,经度校正把时间推过时辰边界,命宫就平移了。解决方式是回到命例备注,确认第一次用的口径;如果备注没写,就拿出生地经度手算一次真太阳时,看是否跨时辰。以后新建命例必须把use_true_solar写进备注,批量表里也不能省这一列。
现象二:日柱或时柱差一天,其他字段看起来正常。这种多半是换日规则不一致。子初换日和子正换日对子时命例最敏感,23 点后出生的人尤其容易中招。原因不是日期填错,而是两次排盘用了不同day_boundary。解决方式是把换日规则固定成规则档的一部分,导出时带上day_boundary字段;旧命例迁移后先查子时样本,不要只看白天出生的命例。
现象三:农历生日输入后月份整体错位。常见原因是闰月没有标记,或者把农历日期填进了公历输入框。软件不会替你判断“这个六月是不是闰六月”,它只会按默认月份算。解决方式是只录公历,让软件转农历;如果必须录农历,先确认当年闰月标记,再把lunar_leap写进备注。批量导入时更不要混用公历和农历,模板里只留一个日期列,减少歧义。
5.2 规则版本类翻车
现象四:同一张盘,生年四化四颗星对不上。原因通常是四化表流派差异或规则档被切换。十干四化在不同传承里有不同取法,软件如果内置多套规则,切档后盘面会变,但界面不一定显眼提示。解决方式是锁定rule_profile,把四化表导出成配置文件,排盘结果和配置版本一起存档。对不上时先比规则版本,再比年干,最后才怀疑安星。不要拿 A 规则档排的盘去对 B 规则档的结论,那是两套东西。
现象五:大限起点整体平移。这种多半和五行局规则或起运算法有关。五行局一变,起运岁数跟着变,大限宫位整体错位。排查时先看基线命例的五行局和第一大限起止,再看规则档是否被重置。解决方式是把“五行局 + 起运岁数 + 第一大限起止”写进基线核对表,升级后先对这三项,再去看流年。
5.3 数据迁移类翻车
现象六:批量导入后部分命例时间为 00:00。原因通常是 CSV 时间列格式不统一,或者单元格被表格软件识别成日期序列。解决方式是导入前跑格式校验脚本,时间列强制HH:MM,不要带秒;导入后抽样打开命例看时间。另一个常见原因是空行和全角空格,case_id为空的数据混进来,排序后很难找。批量表只保留必要列,导入前删空行,能省很多排查时间。
提示:排查顺序固定为“时间口径 → 规则版本 → 数据格式 → 安星结果”。前三步能解决大多数对不上,直接跳到安星算法,往往是在错误的前提上找错误。
6. 进阶核对法:用一张三盘对照表压住排盘结果
我现在核对一张盘,不再从整张图开始看,而是先填一张三盘对照表。表里只放稳定字段:本命命宫干支、身宫干支、五行局、生年四化落宫、大限起止、大限命宫、流年干、流年命宫。每次切换大限或流年,只改对应行,不改本命行。这样盘面再花,字段层始终是干净的。
| 核对项 | 本命盘 | 大限盘 | 流年盘 |
|---|---|---|---|
| 命宫干支 | 固定 | 看叠宫 | 看叠宫 |
| 身宫干支 | 固定 | 不重算 | 不重算 |
| 五行局 | 固定 | 影响起运 | 不重算 |
| 生年四化 | 固定 | 做底色 | 做底色 |
| 大限起止 | 不填 | 必填 | 参考 |
| 流年干 | 不填 | 不填 | 必填 |
填表时只允许一个变量动:先锁时间口径,再锁规则档,最后才切大限流年。三条边界样本我固定跑:子时交界、农历闰月、真太阳时跨时辰。三条都过,再批量导入。从那以后我每次拿到新命例,都先跑这三条样本再全量,宁愿前面多花十分钟,也不想后面在一堆盘里找那张对不上的。希望帮到你。
本文还有配套的精品资源,点击获取