Shoey 发表于 2022-7-5 15:47:03

外部参照绘图顺序

大家好
 
 
我最近在常见的Lisp论坛上搜索代码,这些代码将显示一个对话框,其中包含当前图形中的外部参照列表。在对话框中,会有一个“上移”、“下移”选项来排列外部参照的顺序。我没有成功地找到一个,所以如果有人知道一个,那将不胜感激。
 
 
我使用代码(由其他人创建)和Doslib(因此您需要加载它)所做的是亲自尝试该程序。见下文:
 
 
;;ronjonp 2009年10月
(定义xrb(名称/文件e ms n o sorttbl ss xdic)
(vl load com)
(setq xdic(vla getextensiondictionary)
(setq ms(vla获取模型空间
(setq doc(vla get activedocument(vlax get acad object)))
)
)
)
)
(如果
(vl-catch-all-error-p
(setq sorttbl(vl catch all apply’vla getobject(列出xdic“ACAD\U SORTENTS”))
)
(setq sorttbl(vla addobject xdic“ACAD\u SORTENTS”“AcDbSortentsTable”))
)
(setq n-1)
(if(setq ss(ssget“_X”(list(cons 2 name)))
(progn(while(setq e(ssname ss(setq n(1+n))))
(vlax invoke sorttbl’movetobottom(list(vlax ename->vla object e)))
)
(vla regen doc acallviewports)
)
)
(普林斯)
)
 
;;http://www.afralisp.net/archive/Tips/code66.htm
(vl load com)
(setq activedocument(vla get activedocument(vlax get Acad Object)))
(setq theblocks(vla get blocks activedocument))
(设置列表'())
(vlax用于项目块
;检查是否为外部参照
(setq yesxref(vlax get属性项“isXref”)
;如果是的话
(如果(=yesxref:vlax true)
;执行以下操作
(程序
;获取外部参照名称
(setq ablock(vlax get属性项的名称))
;将其存储在列表中
(设置列表(附加(列表锁定)列表))
);程序
);如果
);vlax for
 
(setq xreflist(dos\u orderlist“Xrefs”拖动以重新排序外部参照“theList))
(foreach xf外部参照列表(xrb xf))
 
 
这似乎正常,但创建的外部参照列表包含未加载、嵌套和未找到的外部参照。是否可以仅获取“加载”外部参照的列表?
 
 
还有谁知道是否有可能在现有的draworder列表中获取外部参照?以便外部参照列表显示加载的外部参照和每个外部参照在图形中的当前绘图顺序?
 
 
非常感谢

Shoey 发表于 2022-7-5 16:09:15

抱歉-在代码周围包装标记时出现问题。我确实选择了代码周围的代码标签,但它似乎不起作用。

SLW210 发表于 2022-7-5 16:38:05

您可以手动执行这些操作。
Your Code Here=
Your Code Here

ronjonp 发表于 2022-7-5 17:06:24

 
这应该满足您的需求:
(defun _xref(/n out)(vlax代表b(vla get blocks(vla get activedocument(vlax get acad object))(if(minusp(vlax get b’isxref))(if(=32(logand 32(cdr)(assoc 70(entget(tblobjname“block)”(setq n(vla get name b \\k))))(setq out(cons out))))(vl sort out'
页: [1]
查看完整版本: 外部参照绘图顺序