明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1991|回复: 1

急求如何改变围墙??

[复制链接]
发表于 2012-4-16 10:59:07 | 显示全部楼层 |阅读模式
原来围墙是两条线中间是一小段一小段直线的那种样式,现在想将中间的小段直线给换成方块,我的代码如下:
(defun c:xgwq(/ SS EL LX1 LX2 LX3 J)
  (setq ss(ssget"x"'((0 . "LINE")(8 . "JMD")(-3 ("SOUTH"(1000 . "144301-3")))))j -1)
  (repeat (sslength ss)
    (setq en(ssname ss(setq j(1+ j))))
    (setq el(entget en))
    (setq lx1(assoc -3 el))
    (setq lx2(cdr lx1))
    (setq lx3(cdr lx2))
    (if(equal lx3 "144301-3")(setq lx3 "144301-2"))
    (setq  el(subst '(list -3 (list "SOUTH" (LIST 1000 "144301-2"))) (assoc -3 el) el))
    (entmod el)
    )
  (princ)
  (alert"修改完毕!")
)


可是不对,请教各位大侠,各位高人帮忙,如果有批量修改围墙的代码更好,多些了。。。
发表于 2012-4-17 17:46:04 | 显示全部楼层
;cass9.0  围墙的短线改成块改自明镜亦非台
(defun c:xwq()
  (setvar "CMDECHO" 0)
        (setq blc (/ (getvar "USERR1") 1000))
      (if (= blc 0.0) (setq blc 0.5) )
        (command "undo" "be")
  (if (setq ss (sc_ssget "144301-2"))
    (progn  
                (setq i 0)
      (repeat (sslength ss)
        (setq ent (entget(ssname ss i))                                 
              p1 (cdr(assoc 10 ent))
              p2 (cdr(assoc 11 ent))
              ds (distance p1 p2)
              ang (angle p1 p2))
          (command ".INSERT" "gc002" (polar p1 ang (/ blc 4)) (/ blc 2) (/ blc 2) (/ (* ang 180) pi))   
(setq hfk (entlast))
    (setq fc5 '("依比例围墙小方块" (-3 ("SOUTH" (1000 . "144301-2")))))
             (setq gxzb(entget hfk))
             (SETQ GXZB(subst (cons 8 "jmd") (assoc 8 GXZB) GXZB))
             (entmod (append GXZB (cdr fc5)))
        (command ".ERASE" (ssname ss i) "")
        (setq i (1+ i))  ) ))
                               
  (setvar "CMDECHO" 1)
        (command "undo" "e")
  (princ)
  )

(defun sc_ssget(sCode / ss sn si i ed sc scss)
(setq ss(ssget "X" '((-3 ("south")) (0 . "LINE")) ))
(setq sn(if ss (sslength ss) 0))
(setq scss(ssadd))
(setq i 0)
(while(< i sn)
  (setq si(ssname ss i))
  (setq ed(entget si '("south")))
  (setq sc(cdr(cadr (cadr (assoc -3 ed)))))
  (if(= sc sCode)
   (ssadd si scss)
  )
  (setq i(1+ i))
)
scss
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-7-22 08:52 , Processed in 0.162677 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表