Zero-CA 发表于 2022-7-5 23:55:54

根据更改线图层

大家好,
 
我有一个网络,由线条组成,每一行上面都有一个文字,上面写着直径。
我想知道是否有一个lisp例程,可以根据直径更改行层,以便将相同直径的行聚集在同一层下。
 
提前感谢您,

Tharwat 发表于 2022-7-6 00:09:42

欢迎来到CADTutor
 
我认为需要更多的信息,或者一张样图就好了。

Zero-CA 发表于 2022-7-6 00:28:23

 
 
非常感谢。
 
事实上,我已经关注这个论坛好几个月了,它对我非常有用。
我也搜索了这个话题,但没有找到任何与此相关的内容。
 
如果你可以从附加文件中看到(我无法附加.dwg),在“管道”层下有红线,在“直径”层下有文本。
 
我想知道是否有任何方法(lisp例程)可以将相同直径的线收集到同一层下。我只是附上了图纸的一部分,因为这是一个巨大的。
 
Thanx再次。。。

Lee Mac 发表于 2022-7-6 00:32:24

假设“线”是线对象,请尝试以下操作:
(defunc:pipe2lay(/di1 di2 enx idx lay lin lst sel txt)(if(setqsel(ssget“_X”(list'(-4。”“)(if(=1(getvar'cvport()(cons410(getvar'ctab))(410。“Model”)(progn(REPLACE(setqidx(sslength(setqenx(entget(ssnamesel(setqidx(1-idxа))(if(=“TEXT”(cdr(assoc0 enx))(setqTX](cons(cdr(assoc10 enx))(cdr(assoc01 enx)))txt))(setqlst(cons[cons[mapcar[lambda[(a b)(/(+a b)2.0))(cdr[(assoc[10 enx))(cdr[assoc[11 enx))(assoc[-1 enx]))(while[和txt(setq[lin(carlst))(setqdi1(distance(carlin)(caartxt))lay(cartxt)lst(cdrlst))(foreachitm([颜色=蓝色]如果[[颜色]([颜色=蓝色]

Zero-CA 发表于 2022-7-6 00:52:44

效果很好。
 
比你节省了很多时间。
 
当做

Lee Mac 发表于 2022-7-6 01:07:52

不客气
页: [1]
查看完整版本: 根据更改线图层