请老大变个矩形转成SOLID的小程序
<font face="Verdana">请老大变个矩形转成SOLID的小程序,能框选能在UCS下用</font> 本帖最后由 作者 于 2010-7-20 21:28:24 编辑我不会变。只能编一个。
;框选矩形填充成SOLID 明经 ZZXXQQ 2010.7.19
(defun c:tt ()
(setvar "CMDECHO" 0)
(if (setq ss (ssget '((0 . "LWPOLYLINE") (90 . 4)))) (progn ;如果改成(70 . 1)则对所有封闭复线有效
(setq i 0)
(repeat (sslength ss)
(setq en (ssname ss i) i (1+ i))
(command ".HATCH" "SOLID" en "")
)
))
(setvar "CMDECHO" 1)
(princ)
)
<p>用不起,命令执行后没的反应.还有就是那SOLID我说的意思是实体。</p>
<p>还有就是帮忙改下我传的个程序,让那实体改成矩形后颜色随层,不要是那4号颜色。</p>
<p><font face="Verdana">(defun c:srp1 ()<br/> (setq oldos (getvar "OSMODE"))<br/> (if (setq ss (ssget '((0 . "SOLID")))) (progn<br/> (setq i 0)<br/> (repeat (sslength ss)<br/> (setq en (ssname ss i)<br/> ent (entget en))<br/> (if (equal (distance (cdr(assoc 10 ent))(cdr(assoc 13 ent))) 0.0 1e-4)<br/> (entmake (list<br/> '(0 . "LWPOLYLINE")<br/> '(100 . "AcDbEntity")<br/> '(67 . 0)<br/> '(410 . "Model")<br/> (cons 8 (cdr(assoc 8 ent))) <br/> '(62 . 4)<br/> '(100 . "AcDbPolyline")<br/> '(90 . 3)<br/> '(70 . 1)<br/> '(43 . 0.0)<br/> '(38 . 0.0)<br/> '(39 . 0.0)<br/> (cons 10 (cdr(assoc 10 ent)))<br/> '(40 . 0.0)<br/> '(41 . 0.0)<br/> '(42 . 0.0)<br/> (cons 10 (cdr(assoc 11 ent)))<br/> '(40 . 0.0)<br/> '(41 . 0.0)<br/> '(42 . 0.0)<br/> (cons 10 (cdr(assoc 12 ent)))<br/> '(40 . 0.0)<br/> '(41 . 0.0)<br/> '(42 . 0.0)<br/> '(210 0.0 0.0 1.0)<br/> ))<br/> (entmake (list<br/> '(0 . "LWPOLYLINE")<br/> '(100 . "AcDbEntity")<br/> '(67 . 0)<br/> '(410 . "Model")<br/> (cons 8 (cdr(assoc 8 ent))) <br/> '(62 . 4)<br/> '(100 . "AcDbPolyline")<br/> '(90 . 4)<br/> '(70 . 1)<br/> '(43 . 0.0)<br/> '(38 . 0.0)<br/> '(39 . 0.0)<br/> (cons 10 (cdr(assoc 10 ent)))<br/> '(40 . 0.0)<br/> '(41 . 0.0)<br/> '(42 . 0.0)<br/> (cons 10 (cdr(assoc 11 ent)))<br/> '(40 . 0.0)<br/> '(41 . 0.0)<br/> '(42 . 0.0)<br/> (cons 10 (cdr(assoc 13 ent)))<br/> '(40 . 0.0)<br/> '(41 . 0.0)<br/> '(42 . 0.0)<br/> (cons 10 (cdr(assoc 12 ent)))<br/> '(40 . 0.0)<br/> '(41 . 0.0)<br/> '(42 . 0.0)<br/> '(210 0.0 0.0 1.0)<br/> ))<br/> )<br/> (entdel en)<br/> (setq i (1+ i))<br/> )<br/> ))<br/> (princ)<br/>)<br/></font></p> 将'(62 . 4)行删掉就行了。<br/> 谢谢,颜色行了。那矩形转成SOLID用不起。 2楼改了,再试试。 请问下版主,怎样才能让那矩形变成实体(SOLID),主要是PK,PM结构的柱子是实体画的,就是传的那程序的反向操作
;矩形变SOLID 明经 ZZXXQQ 2010.7.21
(defun c:tt ()
(setvar "CMDECHO" 0)
(if (setq ss (ssget '((0 . "LWPOLYLINE") (90 . 4)))) (progn
(setq i 0)
(repeat (sslength ss)
(setq plst (list))
(setq en (ssname ss i) i (1+ i))
(setq ent (entget en))
(foreach x ent (if (= (car x) 10) (setq plst (cons (cdr x) plst))))
(setq plst (reverse plst))
(entmake
(list
'(0 . "SOLID")
(cons 10 (car plst))
(cons 11 (cadr plst))
(cons 12 (last plst))
(cons 13 (caddr plst))
'(39 . 0.0)
'(210 0.0 0.0 0.0)
)
)
)
(command ".ERASE" ss "")
))
(setvar "CMDECHO" 1)
(princ)
)
行了,谢谢版主。提高了作图效率,再次感谢。
页:
[1]