格局
什么是格局,x-iztro 按什么原则判定,本命与运限视角有何不同,以及 64 条格局的完整总表。
适合:所有人。64 条格局总表在页尾
什么是格局
一张盘上,某几颗星按特定方式凑在一起,传统上会给这个组合起一个名字—— 「紫府同宫」「杀破狼」「阳梁昌禄」都是这样的名字。这类有名字的星耀组合就是格局。
格局不是另一套算法,它只是在已经排好的盘上做模式识别: 看某几颗星是不是落在了某几个宫,亮度够不够,带没带四化。 盘一旦排完,格局就已经确定了。
格局在传统上还附带吉凶断语(「主贵」「主孤」之类)。 x-iztro 只判定组合是否成立,不给任何评价——断语属于解读, 不同流派说法不一,交给你自己或你的模型。
x-iztro 怎么判
格局这件事在古籍与各家资料里口径并不统一,同一个名字常有宽严两种说法。 这套引擎的取舍原则是:
- 只做事实判定。输出是「这个组合成立,证据是这几颗星落在这几个宫」, 不含吉凶、强弱、评分。
- 每条规则注明来源。规则实现里逐条写了古籍引文与所采口径, 以及为什么在两种说法之间选了这一种。
- 多口径不设开关,用
variant报出。同一个格局有几种成立形式时, 引擎把命中的那一种记在variant字段上,由你决定认不认。 比如「机巨同临」在酉宫成立的那种,variant是"you", 因为另有资料称酉宫不算此格——引擎照报,标注清楚。 - 「破格」只标记不否决。资料里说的「加杀平常」「破格」这类条件触发时,
格局照样报出来,只把
broken置为真。成立与否是事实,好坏是解读。 - 「身命」类格局命中哪宫记哪宫。古籍常写「身命居子午」,
意思是命宫或身宫任一成立即可。这类格局命宫、身宫各判一次,
palace_index记的是实际成格的那一宫,两宫都成立就报两次。 - 空宫借对宫。宫内没有主星时,按传统借对宫主星参与判定。 证据里记的仍是那颗星真正待的宫,不是借到的宫。
- 没有金标,自己造证据。iztro 本身没有格局 API, 所以这部分不像排盘那样有逐字段对照的金标数据。代之以四层测试: 每条规则的正反例单测(约 80 个)、来源页 32 张示例盘的真实盘复现、 tier1 那 1,560 张盘上的批量合理性与不变量检查(含每个格局的命中盘数统计), 以及 4 张盘 × 6 种语言的输出快照——快照由 Rust 写基线,Python 与 Go 读同一批文件比对, 三侧结果必须逐字节一致。
一次命中长什么样
一次命中就是一个 PatternHit,字段在三种编程语言里同名(大小写随语言习惯;
唯 Rust 结构体把 palace_index 叫 palace,序列化 DTO 的键统一是 palaceIndex):
| 字段 | 说明 |
|---|---|
key | 语言无关的格局标识,如 zi_fu_tong_gong。判断逻辑用它 |
name | 格局名称,按排盘语言翻译 |
scope | 判定视角:本命为 origin,运限为该层(decadal、yearly…) |
palace_index | 成格所在的宫位索引(0-11,寅宫为 0) |
palace_name / palace_name_key | 该宫在这个视角下的宫名与标识 |
variant | 命中的是哪种口径;单口径格局没有这个值 |
broken | 「破格」条件是否触发。成格照报,这里只作标记 |
stars | 参与成格的星与各自落宫,每颗带 key、name、palace_index,有则带亮度与四化 |
拿一张盘列出它的全部格局:
let zh = Language::ZhCN;
let chart = by_solar("1985-5-3", 9, Gender::Male, true, zh, Config::default())?;
for hit in chart.patterns() {
println!("{} {}",
translate_pattern(hit.key, zh),
translate_palace(chart.palaces[hit.palace].name, zh));
}输出
武贪同行 迁移
府相朝垣 命宫
杀破狼 迁移
禄马交驰 命宫
左右夹命 命宫
文贵文华 迁移
文星朝命 命宫
文星暗拱 命宫
文星暗拱 命宫这张盘的身宫落在迁移宫,所以三条「身命」类格局(武贪同行、杀破狼、文贵文华) 记的是迁移宫而不是命宫。
variant 与 broken 也在同一批命中里:
for hit in chart.patterns():
if hit.variant or hit.broken:
print(f"{hit.name}: variant={hit.variant} broken={hit.broken}")府相朝垣: variant=soul_empty broken=False
禄马交驰: variant=surround broken=False
文星朝命: variant=None broken=True
文星暗拱: variant=opposite broken=False
文星暗拱: variant=surround broken=False府相朝垣的 soul_empty 表示这张盘的命宫确为空宫(古书「命无主星」那一支,
x-iztro 不把它当成格条件,只标注);文星朝命的 broken 表示命宫三方四正见了煞忌;
禄马交驰的 surround 与文星暗拱的 opposite / surround 各是那条格局的一种成立口径,
逐条含义见页尾总表。
本命与运限是同一套规则
引擎内部把「本命十二宫」和「某个运限层的合成十二宫」抽象成同一种视图, 规则只面对视图。所谓运限视角,就是把这三件事换掉之后再跑一遍全部规则:
- 命宫换成该层的命宫。大限走到哪一宫,那一宫就是这一层的命宫, 十二宫名以它为起点重排。
- 合并该层的流曜。运禄、流禄、运昌、流昌这些流曜,在判定时等同于对应的本命辅星: 运限盘上见到流禄,规则就当见到禄存。
- 四化换成该层的四化。本命视角读生年四化,大限视角读大限干引发的四化,以此类推。
因此资料里说的「本命有此组合,大限又走到即享其益」自然成立—— 在大限视角下重跑本命规则即可。运限视角没有身宫, 「身命」类格局在运限层只判该层命宫。
let h = chart.horoscope("2025-6-1", 0)?;
for hit in h.patterns(Scope::Decadal) {
println!("{} {:?}", translate_pattern(hit.key, zh), hit.variant);
}用 2000-8-16 寅时的女命盘,大限视角(Python 版):
杀破狼 decadal None
风云际会 decadal None
风云际会 decadal yearly同一张盘的本命视角只有一条「府相朝垣」——大限走到之后, 命宫换了位置,杀破狼才在这一层成立。
Scope.ORIGIN 等同本命
运限对象上传 origin 层,结果与直接在星盘上调 patterns() 完全一致。
两条只在运限出现的格局
64 条里有两条是行运格:只在运限视角判定,本命盘上永远不报。
| 格局 | 何时判 | 说明 |
|---|---|---|
禄衰马困 lu_shuai_ma_kun | 任一运限层 | 判定层级即当前视图那一层:大限视角判大限,流年视角判流年 |
风云际会 feng_yun_ji_hui | 只在大限视角 | 它比较的是「两限同时逢禄马」,跨层,所以只在大限视角报一次 |
风云际会的 variant 同时记二限组合与「逢」的松紧:无 variant 或 same_palace
取「大限 + 小限」,yearly 或 yearly_same_palace 取「大限 + 流年」(另有流派取这一种);
带 same_palace 的是两限命宫皆本宫坐禄马的严口径,不带的是三方四正会照。
两种组合各报一条,最多两条,上面那张盘正是两种组合都成立。
日月的明暗按哪张表
「日月并明」「日月反背」「丹墀桂墀」这几条要看太阳、太阴的明暗, 而明暗的判法有两种传统,结论会不一样:
| 口径 | 依据 | 标识 |
|---|---|---|
| 亮度表(默认) | 星盘自带的亮度,庙旺为明,陷与「不」为暗 | table |
| 传统位置 | 太阳寅至午为明、酉至丑为暗;太阴酉至丑为明、卯至未为暗 | positional |
默认与来源页示例不一致,这是有意的
x-iztro 的亮度表与 iztro 逐值一致,这是整个库的红线。 按这张表,太阴在酉宫是「不」(不算明)—— 而来源页《日月并明》的两张示例盘,太阴恰好都在酉。 所以按默认口径,那两张示例判为不成格。
传统上多数亮度表把太阴酉记作旺,页面示例依据的是这一说。
想复现传统判法,把口径切到 positional:结论与页面示例一致,
且不用改动亮度表、不影响排盘与 iztro 的对齐。
from x_iztro import Astro, PatternConfig, BrightnessSource
chart = Astro().by_solar("1985-1-5", 11, "female")
print([h.name for h in chart.patterns()])
print([h.name for h in chart.patterns(
PatternConfig(brightness_source=BrightnessSource.POSITIONAL))])['禄马交驰', '左右夹命', '坐贵向贵']
['日月并明', '禄马交驰', '左右夹命', '坐贵向贵']三个口径开关
PatternConfig 只有三个字段。凡是「多口径」的格局一律走 variant,
不在这里加开关;这里只放会改变事实判定本身的数据口径。
| 字段 | 默认 | 作用 |
|---|---|---|
brightness_source | table | 日月明暗的依据,见上一节 |
borrow | true | 空宫是否借对宫主星参与判定 |
flow_stars | true | 运限视角下流曜是否等同对应本命辅星 |
关掉 borrow,空宫就是空宫,靠借宫成立的格局不再报;
关掉 flow_stars,运限视角只认本命辅星,流禄流马不参与。
两者都只影响格局判定,不影响排盘结果。
64 条格局总表
按来源页的条目顺序。「类别」一列里,行运表示只在运限视角判定, 其余在本命与运限两种视角下都会判。
判定条件一列写的是形式化条件的要点;每条规则的完整口径、古籍引文
与在两种说法间取舍的理由,写在实现的文档注释里(src/pattern/rules/)。
| # | 名称 | key | 判定条件 | variant | broken | 类别 |
|---|---|---|---|---|---|---|
| 1 | 君臣庆会 | jun_chen_qing_hui | 紫微或天府与辅佐诸星成四种会合之一(见 variant) | zi_po_zuo_you_jia 紫微破军守命、左辅右弼分夹;zi_xiang_chang_qu_axis 紫微天相守命、昌曲分居命迁;tian_fu_ji_yin_tong_liang_jia 天府守命、机阴同梁四星俱全分布于命宫前后两宫(空侧借对宫主星补足);zi_zuo_you_tong_gong 紫微与左辅右弼同守命宫 | 有(仅第四形式:三方四正见煞忌时标记;前三形式以无煞忌为成格前提) | 通用 |
| 2 | 紫府同宫 | zi_fu_tong_gong | 紫微、天府同守命宫(只可能在寅、申) | — | — | 通用 |
| 3 | 金舆扶驾 | jin_yu_fu_jia | 天府守命于丑或未,太阳、太阴分夹命宫 | — | — | 通用 |
| 4 | 紫府夹命 | zi_fu_jia_ming | 天机、太阴同守命宫,紫微、天府分夹(只可能在寅、申) | — | — | 通用 |
| 5 | 极向离明 | ji_xiang_li_ming | 紫微守命于午,且命宫三方四正无煞忌 | — | — | 通用 |
| 6 | 极居卯酉 | ji_ju_mao_you | 紫微、贪狼同守命宫于卯或酉 | — | — | 通用 |
| 7 | 机月同梁 | ji_yue_tong_liang | 命宫在寅或申,宫内为天同天梁或天机太阴(空宫借对宫主星) | surround 机月同梁四星齐见命宫三方四正(含借宫)的宽口径 | — | 通用 |
| 8 | 善荫朝纲 | shan_yin_chao_gang | 天机、天梁同守命宫或身宫(只可能在辰、戌) | — | — | 通用 |
| 9 | 机巨同临 | ji_ju_tong_lin | 天机、巨门同守命宫(只可能在卯、酉) | you 命宫在酉(另有资料称酉宫不算此格) | — | 通用 |
| 10 | 机巨居卯 | ji_ju_ju_mao | 天机、巨门同守命宫于卯 | — | — | 通用 |
| 11 | 日月同宫 | ri_yue_tong_gong | 太阳、太阴同守命宫(只可能在丑、未) | — | — | 通用 |
| 12 | 巨日同宫 | ju_ri_tong_gong | 太阳、巨门同守命宫(寅、申皆算) | — | — | 通用 |
| 13 | 日照雷门 | ri_zhao_lei_men | 太阳、天梁同守卯宫,且该宫是命宫或官禄宫 | career 落官禄宫(古书「守官禄宫亦然」;无 variant 为命宫) | — | 通用 |
| 14 | 日月并明 | ri_yue_bing_ming | 命宫三方四正内太阳、太阴皆明 | — | — | 通用 |
| 15 | 日月反背 | ri_yue_fan_bei | 命宫三方四正内太阳、太阴皆暗 | — | — | 通用 |
| 16 | 日月照璧 | ri_yue_zhao_bi | 太阳、太阴同守田宅宫 | — | — | 通用 |
| 17 | 金灿光辉 | jin_can_guang_hui | 太阳独坐命宫且命宫在午 | — | 有(三方四正见煞忌) | 通用 |
| 18 | 日月藏辉 | ri_yue_cang_hui | 日月反背,且命宫三方四正又见巨门 | — | — | 通用 |
| 19 | 丹墀桂墀 | dan_chi_gui_chi | 日月并明,且命宫本身坐着明的太阳或明的太阴 | — | — | 通用 |
| 20 | 日月夹命 | ri_yue_jia_ming | 太阳、太阴分居命宫前后邻宫,命宫不坐空亡星且宫内有吉星 | — | — | 通用 |
| 21 | 日月夹财 | ri_yue_jia_cai | 条件同日月夹命,把命宫换成财帛宫 | — | — | 通用 |
| 22 | 月朗天门 | yue_lang_tian_men | 太阴守命宫且命宫在亥 | — | — | 通用 |
| 23 | 月生沧海 | yue_sheng_cang_hai | 天同、太阴同坐子宫,且该宫是命宫或田宅宫 | soul 落命宫(页面别称「水澄桂萼」);property 落田宅宫(全书原文) | — | 通用 |
| 24 | 明珠出海 | ming_zhu_chu_hai | 命宫为空宫且在未,对宫(迁移丑)坐天同、巨门 | — | — | 通用 |
| 25 | 武贪同行 | wu_tan_tong_xing | 武曲、贪狼同守命宫或身宫(只可能在丑、未) | — | — | 通用 |
| 26 | 铃昌陀武 | ling_chang_tuo_wu | 铃星、文昌、陀罗、武曲四星齐会命宫三方四正 | — | — | 通用 |
| 27 | 刑囚夹印 | xing_qiu_jia_yin | 廉贞、天相与刑星(天刑或擎羊)同守命宫或身宫 | — | — | 通用 |
| 28 | 生不逢时 | sheng_bu_feng_shi | 命宫的空亡星与廉贞同宫 | pojun 与之同宫的是破军(另有资料所立的形态) | — | 通用 |
| 29 | 雄宿朝元 | xiong_su_chao_yuan | 廉贞独坐寅或申守命 | — | 有(三方四正见火铃羊陀空劫) | 通用 |
| 30 | 府相朝垣 | fu_xiang_chao_yuan | 天府居官禄宫、天相居财帛宫,二宫朝拱命宫 | soul_empty 命宫确为空宫 | — | 通用 |
| 31 | 火贪 | huo_tan | 贪狼守命,火星同宫 | surround 火星只在三方四正会照 | — | 通用 |
| 32 | 铃贪 | ling_tan | 贪狼守命,铃星同宫 | surround 铃星只在三方四正会照 | — | 通用 |
| 33 | 石中隐玉 | shi_zhong_yin_yu | 巨门守命宫或身宫,且该宫在子或午 | — | — | 通用 |
| 34 | 梁马飘荡 | liang_ma_piao_dang | 天梁与天马同守命宫或身宫 | — | — | 通用 |
| 35 | 阳梁昌禄 | yang_liang_chang_lu | 太阳、天梁、文昌、禄存四星齐会命宫三方四正 | — | — | 通用 |
| 36 | 杀破狼 | sha_po_lang | 七杀、破军、贪狼三星之一坐命宫或身宫(三星恒成三合) | — | — | 通用 |
| 37 | 七杀朝斗 | qi_sha_chao_dou | 七杀守命,且命宫在子、午、寅、申 | yang_dou 命宫在寅或子(仰斗);chao_dou 命宫在午或申(朝斗) | — | 通用 |
| 38 | 禄衰马困 | lu_shuai_ma_kun | 运限命宫三方四正内,禄存与空曜或耗曜同宫,同时天马与煞忌同宫 | qisha 限命宫三方四正又见七杀(古书「限逢七杀」严口径同时满足) | — | 行运 |
| 39 | 英星入庙 | ying_xing_ru_miao | 破军守命,且命宫在子或午 | — | — | 通用 |
| 40 | 众水朝东 | zhong_shui_chao_dong | 破军与文曲同守命宫,且命宫在寅或卯 | — | — | 通用 |
| 41 | 三奇加会 | san_qi_jia_hui | 化禄、化权、化科齐聚命宫三方四正 | ke_soul_lu_wealth_quan_career 化科在命宫、化禄在财帛、化权在官禄 | — | 通用 |
| 42 | 禄马交驰 | lu_ma_jiao_chi | 禄存与天马同宫(任一宫成立即报,可有多个命中) | surround 命宫三方四正内禄存、天马俱见而不必同宫(成格宫记命宫) | — | 通用 |
| 43 | 禄合鸳鸯 | lu_he_yuan_yang | 命宫的禄存与化禄成双:同宫,或一在命宫一在迁移宫对拱 | opposite 命迁对拱(无 variant 为同宫) | — | 通用 |
| 44 | 明禄暗禄 | ming_lu_an_lu | 命宫有禄存(或化禄),暗合宫有化禄(或禄存) | — | — | 通用 |
| 45 | 禄马佩印 | lu_ma_pei_yin | 禄存、天马、天相三星同宫(任一宫成立即报,成格宫记该宫) | — | 有(该宫见空亡星) | 通用 |
| 46 | 两重华盖 | liang_chong_hua_gai | 命宫禄存与化禄双禄坐守,又见空曜 | kong_yao 空曜取天空、截空、旬空的宽口径(无 variant 为原文的地空、地劫) | — | 通用 |
| 47 | 风云际会 | feng_yun_ji_hui | 大限与另一限的命宫三方四正各自见禄存、天马或化禄 | yearly / yearly_same_palace 取大限 + 流年(无 variant / same_palace 为大限 + 小限);带 same_palace 为两限命宫皆本宫坐禄马的严口径 | — | 行运(只在大限视角) |
| 48 | 羊陀夹命 | yang_tuo_jia_ming | 陀罗、擎羊分居命宫前后邻宫;被夹的命宫必坐禄存,一并记入证据 | — | — | 通用 |
| 49 | 马头带箭 | ma_tou_dai_jian | 命宫在午,擎羊同宫,且天同、太阴同守命宫(空宫借对宫) | tanlang_lu 午宫贪狼化禄与擎羊同宫(旁格) | — | 通用 |
| 50 | 左右同宫 | zuo_you_tong_gong | 左辅、右弼同守命宫或身宫(仅三方会照不算) | — | — | 通用 |
| 51 | 左右夹命 | zuo_you_jia_ming | 左辅、右弼分居命宫前后两宫 | — | — | 通用 |
| 52 | 辅弼拱主 | fu_bi_gong_zhu | 紫微守命,左辅、右弼来拱或来夹 | surround 两星皆在三方四正;jia 两星分居命宫前后 | — | 通用 |
| 53 | 魁钺夹命 | kui_yue_jia_ming | 天魁、天钺分居命宫前后两宫(同宫或会照不算) | — | — | 通用 |
| 54 | 坐贵向贵 | zuo_gui_xiang_gui | 天魁、天钺分坐命宫与迁移宫 | — | — | 通用 |
| 55 | 劫空夹命 | jie_kong_jia_ming | 地劫、地空分居命宫前后两宫 | — | — | 通用 |
| 56 | 禄逢两杀 | lu_feng_liang_sha | 禄存与空亡星同守命宫,且命宫三方四正见地空或地劫 | — | — | 通用 |
| 57 | 文贵文华 | wen_gui_wen_hua | 文昌、文曲同守命宫、身宫或命宫三方四正之一宫 | — | — | 通用 |
| 58 | 文星朝命 | wen_xing_chao_ming | 文昌、文曲皆见于命宫三方四正(含与命宫同宫) | — | 有(三方四正见煞忌) | 通用 |
| 59 | 昌曲夹命 | chang_qu_jia_ming | 文昌、文曲分居命宫前后两宫 | — | 有(三方四正见煞忌) | 通用 |
| 60 | 文星暗拱 | wen_xing_an_gong | 文昌、文曲以夹、迁移正照或三方会照之一拱照命宫(三种口径独立判定、命中即报) | jia 两星分居命宫前后两宫;opposite 两星同坐迁移宫正照;surround 两星皆见于命宫三方四正 | — | 通用 |
| 61 | 权禄生逢 | quan_lu_sheng_feng | 化权星与化禄星同守命宫,且两星皆庙旺 | — | — | 通用 |
| 62 | 科明暗禄 | ke_ming_an_lu | 化科守命宫,命宫的暗合宫有禄存或化禄 | hua_lu 暗合宫为化禄(部分流派口径;无 variant 为禄存) | — | 通用 |
| 63 | 科权禄夹 | ke_quan_lu_jia | 化禄、化权、化科中的两化分居命宫前后两宫 | — | — | 通用 |
| 64 | 甲第登庸 | jia_di_deng_yong | 化科守命宫,化权在迁移宫或两三合宫朝拱命宫 | complete 再会化禄或禄存 | — | 通用 |
火贪与铃贪算两条
来源页把「火贪、铃贪」并作一个条目讲,x-iztro 拆成两个独立标识, 所以条目是 63 条、格局标识是 64 个。
几处容易误解的地方
API 参考
格局释义在知识包里
这一页与三个 API 参考页讲的是判定:哪几颗星怎么凑在一起才算成格。 成格之后「这条格局意味着什么」是解读,属于门派观点, 放在知识包里—— 内嵌的默认包给了 64 条格局各自的古籍引文、成立条件的文字描述与解读正文。
命中的 key 就是知识包 patterns 段的键,直接对上:
pack = KnowledgePack.builtin()
for hit in chart.patterns():
print(hit.name, "|", pack.pattern(hit.key).quotes[0])不认同其中的说法,写一份覆盖包换掉那几条,判定结果不变。
来源与署名
格局规则的条目、示例盘与古籍引文取自 iztro-docs《格局》页(MIT License,作者 Sylar Long), 引文本身出自《紫微斗数全书》。格局判定引擎、六语言格局名、 以及在多种说法之间的取舍与形式化,是 x-iztro 的实现—— iztro 本身没有对应的 API。