line合成为pline
<p>下面的程序是把LINE合成PLINE的,但运行起来速度较慢,如何能改进?有2222个对象,完成需要约30秒</p><p>(defun l2pl (/ SS1) <br/> (vl-load-com) <br/> (vl-cmdf ".undo" "BE") ;开始<br/> (setq ss1 (ssget "X" <br/> (list<br/> (cons 0 "LINE") <br/> (cons 6 "CONTINUOUS") <br/> (cons -4 "<>,*,*") <br/> (list 10 1.25 0 0)<br/> (cons -4 "<>,*,*") <br/> (list 10 -1.25 0 0)<br/> (cons -4 "<>,*,*")<br/> (list 11 1.25 0 0)<br/> (cons -4 "<>,*,*")<br/> (list 11 -1.25 0 0)<br/> ) <br/> ) <br/> ) <br/> (if (/= ss1 nil) <br/> (command "_.PEDIT" "M" ss1 "" "Y" "J" "0" "") <br/> ) <br/> (vl-cmdf ".undo" "E") ;结束<br/> (princ) <br/>) </p> <p>pe就搞定的编程太浪费了</p> <p>我一直用这个,选一次就搞定</p><p>(defun c:J (/ ped)<br/> (setq ped (getvar "peditaccept"))<br/> (setvar "peditaccept" 1)<br/> (command "pedit" pause "j" "all" "" "")<br/> (setvar "peditaccept" ped)<br/> (princ)<br/>)</p> <p>其实咱仨用的都是PE,我的也是一次搞定,只是对象一多,感觉速度有点慢,不知有没有更好的方法</p> <p>;************************************************将所有line变成闭合多义线<br/>(defun c:ple (/ ssa ssa-ent ent-p i)<br/>(command "undo" "be");设置返回起始点<br/>(setq ssa (ssget))<br/>(setq i 0)<br/>(while (< i (sslength ssa))<br/>(setq ssa-ent (ssname ssa i))<br/>(setq ent-p (cdr(assoc 0 (entget ssa-ent))))<br/>(if (not (null ent-p));判断原图元是否已串入多义线<br/>(if (or (= ent-p "LWPOLYLINE") (= ent-p "POLYLINE"));判断原图元属性<br/>(command "pedit" ssa-ent "j" ssa "" "")<br/>(command "pedit" ssa-ent "y" "j" ssa "" "")<br/>))<br/>(setq i (1+ i))<br/>)<br/>(command "undo" "e");设置返回终止点<br/>(princ)<br/>);defun</p><p></p><p>这个程序也挺好用,但是如果两条线没有连接,就合并不了,有什么办法解决没有呢</p> 不错,学习中。。。 <p> 但是如果两条线没有连接,就合并不了,有什么办法解决没有呢</p><p>(command "_.PEDIT" "M" ss1 "" "Y" "J" "0" "") 把0给一个合适的值如1,在此范围内的就可以合并<br/></p> <p>选择对象: 指定对角点: 找到 2 个<br/>选择对象:<br/>*无效选择*<br/>需要点或 <br/>窗口(W)/上一个(L)/窗交(C)/框(BOX)/全部(ALL)/栏选(F)/圈围(WP)/圈交(CP)/编组(G)/类<br/>(CL)<br/>函数被取消<br/>选择对象:<br/>是否将直线和圆弧转换为多段线?[是(Y)/否(N)]? <Y> *取消*<br/>选择多段线或 [多条(M)]:<br/>选择多段线或 [多条(M)]: *取消*</p><p>(command "_.PEDIT" "M" ss1 "" "Y" "J" "0" "") 把0给一个合适的值如1,在此范围内的就可以合并</p><p>有上面的错误提示,怎么办呢?</p><p></p> 我试了没有出现你这种情况,你再试试 (setvar "peditaccept" 1)
页:
[1]