明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1168|回复: 3

caoyin 版主进来帮忙

[复制链接]
发表于 2009-11-23 00:22:00 | 显示全部楼层 |阅读模式

caoyin版主你上次帮我写了个遍历层图层表得到的EC+日期挺好用,可惜我只懂得一点lisp,vlisp不懂语法,现在工作改变图层改成了change+数字了

现图层里有change1,change2,change11,怎样让程序自动分辨最大的数字,然后就自动生成最大的图层+1生成一个新层

也就是上面的3个图层change11是最大,运行程序后自动生成change12

上次你帮我写的遍历层图层表地址:

http://bbs.mjtd.com/forum.php?mod=viewthread&tid=78558&replyID=&skin=1

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2009-11-23 02:33:00 | 显示全部楼层

(defun c:TT1(/ LAYS I)
  (setq LAYS (vla-get-layers (vla-get-ActiveDocument (vlax-get-acad-object))))
  (vlax-for N LAYS
    (if (and (wcmatch (setq N (vla-get-name N)) "change*")
             (setq N (atoi (substr N 7)))
             (or I (setq N I))
             (> N I))
      (setq I N)
    )
  )
  (vl-catch-all-apply 'vla-add (list LAYS (strcat "change" (itoa (1+ I)))))
  (princ)
)

 楼主| 发表于 2009-11-23 22:01:00 | 显示全部楼层

Command: (setq LAYS (vla-get-layers (vla-get-ActiveDocument (vlax-get-acad-object))))

#<VLA-OBJECT IAcadLayers2 1b9bbe74>


Command: (vlax-for N LAYS
(_>     (if (and (wcmatch (setq N (vla-get-name N)) "change*")
(((_>              (setq N (atoi (substr N 7)))
(((_>              (or I (setq N I))
(((_>              (> N I))
((_>       (setq I N)
((_>     )
(_>   )
nil

Command: (vl-catch-all-apply 'vla-add (list LAYS (strcat "change" (itoa (1+ I)))))
; error: bad argument type: numberp: nil

最後一句調入cad後提示錯誤了!

发表于 2009-11-24 08:10:00 | 显示全部楼层
  (setq LAYS (vla-get-layers
        (vla-get-activedocument (vlax-get-acad-object))
      )
 I    0
  )
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-1 19:34 , Processed in 0.159640 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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