本帖最后由 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)));所有基点的坐标
其它:
不知道怎么获取文字末端的坐标,难道真要按字符个数去算啊= =
|