立即注册 登录
晓东CAD家园-论坛 返回首页

eachy的个人空间 http://bbs.xdcad.net/?14 [收藏] [复制] [分享] [RSS]

日志

Qleader 设置中的某个选项存储位置

已有 183 次阅读2013-5-4 10:10 |个人分类:Lisp| Qleader

 

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不做任何操作是没有这个词典的。其他的参数暂时没有试验是控制哪些选项的,有兴趣了再试!


路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

QQ|申请友链|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.

返回顶部