yzr2002626 发表于 2010-7-19 20:13:00

请老大变个矩形转成SOLID的小程序

<font face="Verdana">请老大变个矩形转成SOLID的小程序,能框选能在UCS下用</font>

ZZXXQQ 发表于 2010-7-19 23:23:00

本帖最后由 作者 于 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)
)

yzr2002626 发表于 2010-7-20 00:57:00

<p>用不起,命令执行后没的反应.还有就是那SOLID我说的意思是实体。</p>
<p>还有就是帮忙改下我传的个程序,让那实体改成矩形后颜色随层,不要是那4号颜色。</p>
<p><font face="Verdana">(defun c:srp1 ()<br/>&nbsp;(setq oldos (getvar "OSMODE"))<br/>&nbsp;(if (setq ss (ssget '((0 . "SOLID")))) (progn<br/>&nbsp; (setq i 0)<br/>&nbsp; (repeat (sslength ss)<br/>&nbsp;&nbsp; (setq en (ssname ss i)<br/>&nbsp;&nbsp; ent (entget en))<br/>&nbsp;&nbsp; (if (equal (distance (cdr(assoc 10 ent))(cdr(assoc 13 ent))) 0.0 1e-4)<br/>&nbsp;&nbsp; (entmake (list<br/>&nbsp;&nbsp; '(0 . "LWPOLYLINE")<br/>&nbsp;&nbsp; '(100 . "AcDbEntity")<br/>&nbsp;&nbsp; '(67 . 0)<br/>&nbsp;&nbsp; '(410 . "Model")<br/>&nbsp;&nbsp; (cons 8 (cdr(assoc 8 ent))) <br/>&nbsp;&nbsp; '(62 . 4)<br/>&nbsp;&nbsp; '(100 . "AcDbPolyline")<br/>&nbsp;&nbsp; '(90 . 3)<br/>&nbsp;&nbsp; '(70 . 1)<br/>&nbsp;&nbsp; '(43 . 0.0)<br/>&nbsp;&nbsp; '(38 . 0.0)<br/>&nbsp;&nbsp; '(39 . 0.0)<br/>&nbsp;&nbsp; (cons 10 (cdr(assoc 10 ent)))<br/>&nbsp;&nbsp; '(40 . 0.0)<br/>&nbsp;&nbsp; '(41 . 0.0)<br/>&nbsp;&nbsp; '(42 . 0.0)<br/>&nbsp;&nbsp; (cons 10 (cdr(assoc 11 ent)))<br/>&nbsp;&nbsp; '(40 . 0.0)<br/>&nbsp;&nbsp; '(41 . 0.0)<br/>&nbsp;&nbsp; '(42 . 0.0)<br/>&nbsp;&nbsp; (cons 10 (cdr(assoc 12 ent)))<br/>&nbsp;&nbsp; '(40 . 0.0)<br/>&nbsp;&nbsp; '(41 . 0.0)<br/>&nbsp;&nbsp; '(42 . 0.0)<br/>&nbsp;&nbsp; '(210 0.0 0.0 1.0)<br/>&nbsp;&nbsp; ))<br/>&nbsp;&nbsp; (entmake (list<br/>&nbsp;&nbsp; '(0 . "LWPOLYLINE")<br/>&nbsp;&nbsp; '(100 . "AcDbEntity")<br/>&nbsp;&nbsp; '(67 . 0)<br/>&nbsp;&nbsp; '(410 . "Model")<br/>&nbsp;&nbsp; (cons 8 (cdr(assoc 8 ent))) <br/>&nbsp;&nbsp; '(62 . 4)<br/>&nbsp;&nbsp; '(100 . "AcDbPolyline")<br/>&nbsp;&nbsp; '(90 . 4)<br/>&nbsp;&nbsp; '(70 . 1)<br/>&nbsp;&nbsp; '(43 . 0.0)<br/>&nbsp;&nbsp; '(38 . 0.0)<br/>&nbsp;&nbsp; '(39 . 0.0)<br/>&nbsp;&nbsp; (cons 10 (cdr(assoc 10 ent)))<br/>&nbsp;&nbsp; '(40 . 0.0)<br/>&nbsp;&nbsp; '(41 . 0.0)<br/>&nbsp;&nbsp; '(42 . 0.0)<br/>&nbsp;&nbsp; (cons 10 (cdr(assoc 11 ent)))<br/>&nbsp;&nbsp; '(40 . 0.0)<br/>&nbsp;&nbsp; '(41 . 0.0)<br/>&nbsp;&nbsp; '(42 . 0.0)<br/>&nbsp;&nbsp; (cons 10 (cdr(assoc 13 ent)))<br/>&nbsp;&nbsp; '(40 . 0.0)<br/>&nbsp;&nbsp; '(41 . 0.0)<br/>&nbsp;&nbsp; '(42 . 0.0)<br/>&nbsp;&nbsp; (cons 10 (cdr(assoc 12 ent)))<br/>&nbsp;&nbsp; '(40 . 0.0)<br/>&nbsp;&nbsp; '(41 . 0.0)<br/>&nbsp;&nbsp; '(42 . 0.0)<br/>&nbsp;&nbsp; '(210 0.0 0.0 1.0)<br/>&nbsp;&nbsp; ))<br/>&nbsp;&nbsp; )<br/>&nbsp;&nbsp; (entdel en)<br/>&nbsp;&nbsp; (setq i (1+ i))<br/>&nbsp; )<br/>&nbsp;))<br/>&nbsp;(princ)<br/>)<br/></font></p>

ZZXXQQ 发表于 2010-7-20 08:29:00

&nbsp;将'(62 . 4)行删掉就行了。<br/>

yzr2002626 发表于 2010-7-20 19:01:00

谢谢,颜色行了。那矩形转成SOLID用不起。

ZZXXQQ 发表于 2010-7-20 21:29:00

2楼改了,再试试。

yzr2002626 发表于 2010-7-20 21:50:00

请问下版主,怎样才能让那矩形变成实体(SOLID),主要是PK,PM结构的柱子是实体画的,就是传的那程序的反向操作

ZZXXQQ 发表于 2010-7-21 21:03:00



;矩形变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)
)

yzr2002626 发表于 2010-7-21 21:21:00

行了,谢谢版主。提高了作图效率,再次感谢。
页: [1]
查看完整版本: 请老大变个矩形转成SOLID的小程序