明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1098|回复: 4

有个小问题不会搞

[复制链接]
发表于 2007-10-6 17:46:00 | 显示全部楼层 |阅读模式

下面的红色部分因该怎么写

((defun c:sw()
     (prompt "\n<<框選欲放置到的圖圓:>>")
     (setq ss(ssget))
     (setq n 0 k 0)
     (setq list8 (itoa clayer))
     (repeat (sslength ss)
           (setq en(ssname ss n))
           (setq endata(entget en))
           (setq 8_list (assoc 8 endata))
           (setq new_8_list (cons 8 "当前层"))————————这里不知道怎么写提取了变量CLAYER不行啊
           (setq endata(subst new_8_list 8_list endata))
           (entmod endata)
           (setq k (1+ k))
           (setq n (1+ n))
           )
   (princ (strcat "\n共有< " (itoa k) " >個更新:" ))
   (prin1)
   )
(prompt "\n <<SW>>快速更新圖圓到當前層")
(prin1)

发表于 2007-10-6 21:47:00 | 显示全部楼层

程序稍做修改,

(defun c:sw()
     (prompt "\n<<框選欲放置到的圖圓:>>")
     (setq ss(ssget))
     (setq n 0 k 0)
     (setq new_layer(getvar "clayer"))
     (setq new_8_list (cons 8 new_layer))
     (repeat (sslength ss)
           (setq en(ssname ss n))
           (setq endata(entget en))
           (setq 8_list (assoc 8 endata))
           (setq endata(subst new_8_list 8_list endata))
           (entmod endata)
           (setq k (1+ k))
           (setq n (1+ n))
           )
   (princ (strcat "\n共有< " (itoa k) " >個更新:" ))
   (prin1)
   )
(prompt "\n <<SW>>快速更新圖圓到當前層")
(print)

 楼主| 发表于 2007-10-8 20:25:00 | 显示全部楼层

谢谢上楼的回答。

 (setq new_8_list (cons 8 new_layer))放在repeat循环的外面

理论上程序运行是不是要快一些。


 楼主| 发表于 2007-10-8 20:54:00 | 显示全部楼层

还有一点想问下。

群码 8  正确的列表 不是要求在图层外面+“”《 “图层”

这样写的new_8_list 是不是也有“”号

发表于 2007-10-8 22:24:00 | 显示全部楼层

1 对于不需要放在循环里的语句,当然是不要放入,理论上是要快的,快到你感觉不到的!

2 cons的用法:

    (setq new_layer "zj")

    (cons 8 new_layer)

返回(8 . "zj")

   (cons 8 "zj")

返回(8 . "zj")

两者传入的参数不同,写法不一样,返回的结果一样。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-20 04:05 , Processed in 0.128559 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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