||
Qleader 设置中有个“默认提示文字宽度”选项,默认是勾选的,当去除后保持图形,下次打开设置中会保持,这说明该选项是随图保存的,翻遍了Help也没有找到变量控制。经过一番研究,终于找到了存储位置:)
1 打开一个新图,什么都不做,直接另存为 dxf
2 另开一个新图,运行 Qleader -〉设置-〉去掉“默认提示文字宽度”选项,确认退出,不要标注,另存为 dxf
3 用 Uedit 或者其他软件比较两个 dxf,找出不同点
经过查找,排除一些无关的差异(比如编辑时间等等),会找到一个 68 的位置由 1 变为 0,初步判断应该是这里(Acad 中 1 和 0 很多地方表示开关),往前翻,看到 Xrecord 字样,再找到前面最近的 5 (5 是句柄标志),打开该 dxf,用 handent 查找这个句柄,会看到是 AcadDim 词典,再次试验 Qleader 命令,
勾选时状态:
_$ (dictsearch (namedobjdict) "AcadDim")
((-1 . <图元名: 7eb1e4b8>) (0
. "XRECORD") (5 . "2FF7") (102 . "{ACAD_REACTORS") (330 . <图元名: 7efc0c60>)
(102 . "}") (330 . <图元名: 7efc0c60>) (100 . "AcDbXrecord") (280 . 1) (90 .
990106) (3 . "") (60 . 0) (61 . 0) (62 . 1) (63 . 3) (64 . 0) (65 . 0) (66 . 0)
(67 . 3) (68 . 1) (69 . 0) (70 .
0) (71 . 0) (72 . 0) (40 . 0.0) (170 . 0))
_$
关闭默认:
_$ (dictsearch (namedobjdict) "AcadDim")
((-1 . <图元名: 7eb1e9e0>) (0
. "XRECORD") (5 . "3094") (102 . "{ACAD_REACTORS") (330 . <图元名: 7efc0c60>)
(102 . "}") (330 . <图元名: 7efc0c60>) (100 . "AcDbXrecord") (280 . 1) (90 .
990106) (3 . "") (60 . 0) (61 . 0) (62 . 1) (63 . 3) (64 . 0) (65 . 0) (66 . 0)
(67 . 3) (68 .
0) (69 . 0) (70 . 0) (71 . 0) (72 . 0) (40 . 0.0) (170 . 0))
_$
其他的没有操作命令没有,可以看到只有 68 发生了变化,可以断定就是这个值了,下面用 Lisp 试试
(vl-catch-all-apply
(function
(lambda (/ acdim)
(setq
acdim (dictsearch (namedobjdict) "Acaddim"))
(if (assoc 68
acdim)
(entmod (subst '(68 . 0)
'(68 . 1)
acdim
)
)
)
)
)
nil
)
用 entmod 测试成功。
通过这个可以看到 Cad 中的有些命令的默认值是保存在词典中,只是没有相关资料,要自己动手试验。而且这个 AcadDim 词典要在用过 Dim 类命令后就会自动生成,打开cad不做任何操作是没有这个词典的。其他的参数暂时没有试验是控制哪些选项的,有兴趣了再试!
|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )
GMT+8, 2024-5-11 00:37 , Processed in 0.254971 second(s), 23 queries , Gzip On.
Powered by Discuz! X3.5
© 2001-2024 Discuz! Team.