【MU】多重引线常用的数据
本帖最后由 kucha007 于 2024-4-24 07:47 编辑关于多重引线常用的一些数据
主要来自LEEMAC在这篇帖子回帖。我也做了一点补充http://www.theswamp.org/index.php?topic=55023.0
基础函数:
;返回满足Key值的表第二项
(defun K:Assoc->Cdr (Key TgtLst)
(mapcar 'cdr (vl-remove-if-not '(lambda (XX) (= Key (car XX))) TgtLst))
)
;解析XDATA表
(defun K:ParseXData (TgtLst / K:Rtn)
(defun K:Rtn (/ XX)
(setq XX (car TgtLst)
TgtLst (cdr TgtLst)
)
(cond
((or (null XX) (= "}" (cdr XX))) nil)
((and (= 'STR (type (cdr XX))) (wcmatch (cdr XX) "*{"))
(cons (cons (cdr XX) (K:Rtn)) (K:Rtn))
)
((cons XX (K:Rtn)))
)
)
(K:Rtn)
)
一些常用的数据:
(setq en (car (nentsel))
obj (vlax-ename->vla-object en)
)
(setq MULTDATA (cdr (assoc"CONTEXT_DATA{" (K:ParseXData (entget en)))))
(setq LeadDATA (cdr (assoc "LEADER{" MULTDATA)))
(K:GetProp obj 'DoglegLength);基线距离
(K:GetProp obj 'LandingGap);基线间隙
(K:GetProp obj 'ScaleFactor);多重引线比例
(K:GetProp obj 'TextString);文字内容
(cdr (assoc 40 MULTDATA));多重引线比例
(cdr (assoc 10 MULTDATA));基线距离处的坐标
(cdr (assoc 304 MULTDATA));文字内容
(cdr (assoc 10 LeadDATA));多重引线拐点
(setq BsePTLst (mapcar '(lambda (XX) (cdr (assoc 10 XX))) (K:Assoc->Cdr "LEADER_LINE{" LeadDATA)));所有基点的坐标
其它:
不知道怎么获取文字末端的坐标,难道真要按字符个数去算啊= =
没有那么简单,文字渲染的坐标早就不是什么秘密了吧,字体解析时候有个table表示不定宽度.但是你可能从来没有处理过文件解析这样的事情... 感谢经验分享! 你有种再说一遍 发表于 2024-4-23 21:33
没有那么简单,文字渲染的坐标早就不是什么秘密了吧,字体解析时候有个table表示不定宽度.但是你可能从来没有 ...
确实没处理过,目前只会lisp 分解获取文字包围盒
页:
[1]