lisp pl线线段数_编写lisp程序多条多段线连接成一条多段线

展开全部

命令HB合并多段线(defun c:hb (/ @myL @lpNum @etLst @@62616964757a686964616fe4b893e5b19e31333363383339ent @ptLst)

(setq @myL (ssget "i" '((0 . "LINE,LWPOLYLINE"))))

;将创建已经选择的线(多段线或者直线)的选择集

(setq @lpNum 0);为循环计数参数赋值

(repeat (sslength @myL);选择集包含几个对象就循环几次

(setq @etLst (append @etLst (list (ssname @myL @lpNum)))

;逐个提取选择集中的图元名并储存到表@etLst中

@lpNum (1+ @lpNum);每循环一次循环计数参数+1

)

)

(foreach @@lpet @etLst;历遍表@etLst中每一个原子,以@@lpet代替原子

(progn

(setq @@ent (entget @@lpet));将每个图元的详细列表赋值到@@ent中

(foreach @@2lpe @@ent

(if (= (car @@2lpe) 10);如果子表中第一个原子为10

(setq @ptLst (append @ptLst (list @@2lpe))) ;将子表列入@ptLst

)

)

(entdel @@lpet);删除已提取过点的对象

)

)

(entmake (append (list;通过点表创建新的多段线

'(0 . "LWPOLYLINE")

'(100 . "AcDbEntity")

'(100 . "AcDbPolyline")

(cons 90 (length @ptLst))

)

@ptLst

)

)

(princ)

)

=====分割线========================================

顺带一说。。。你为何不用CAD自带的pedit命令?

pedit(使用CAD原生的ACAD.PGP可简化为PE命令)→M→选择所有需要合并的线→(若有不含多段线的元素)按Y转换所有选择对象为多段线→J合并→空格或者回车或者ESC退出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值