明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 686|回复: 3

[讨论] 写了段判断是否生成图元的程序,请大家帮忙测试一下有没有bug

[复制链接]
发表于 2020-10-9 17:45:15 | 显示全部楼层 |阅读模式
写了段判断是否生成图元的程序,请大家帮忙测试一下有没有bug
(defun c:13(/ x)
(setq x (New_en 0))
(if (getpoint "\n 请指定圆心:")
(entmake (list '(0 . "circle") (cons 10 (cadr(grread 3))) (cons 40 (*(getvar"viewsize") 0.02) )))
)
(princ"\n")
(if (New_en x) (strcat "生成 "(rtos(New_en x))" 个图元") )
)




(defun New_en(i / j) ;(setq x (New_enn 0)) ;判断新图元
(entmake (list '(0 . "point") (cons 10 (cadr(grread 3))) ))
(setq j (sslength (ssget "x")) j (if (= (- j i) 0) nil (- j i) ))
(entdel (entlast)) j)

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2020-10-9 20:05:00 | 显示全部楼层
测试了,没发现问题。
似乎也可以这样:
(defun c:13(/ x en)
  (setq en (entlast))
  (if (getpoint "\n 请指定圆心:")
    (entmake (list '(0 . "circle") (cons 10 (cadr(grread 3))) (cons 40 (*(getvar"viewsize") 0.02) )))
  )
  (princ"\n")
  (strcat "生成 "(rtos(New_en en))" 个图元")
)

(defun New_en(en / j);(setq x (New_en enStart)) ;判断新图元
  (setq j 0)
  (while (setq en (entnext en))
    (setq j (1+ j))
  )
)
 楼主| 发表于 2020-10-9 20:42:05 | 显示全部楼层
happyxt 发表于 2020-10-9 20:05
测试了,没发现问题。
似乎也可以这样:
(defun c:13(/ x en)

谢谢回复,如果dwg中没有任何图元时,程序会出错
发表于 2020-10-9 21:57:19 | 显示全部楼层
是的,如果不在主函数增加判断语句会出错。
改了一下:
(defun c:13(/ en)
  (setq en (entlast))
  (if (getpoint "\n 请指定圆心:")
    (entmake (list '(0 . "circle") (cons 10 (cadr(grread 3))) (cons 40 (*(getvar"viewsize") 0.02) )))
  )
  (princ"\n")
  (strcat "生成 "(itoa(New_en en))" 个图元")
)

(defun New_en(en / j);(setq x (New_en enStart)) ;判断新图元
  (cond (en
         (setq j 0)
         (while (setq en (entnext en))
           (setq j (1+ j))
         )
        )
        ((ssget "X")
         (sslength (ssget "X"))
        )
        (T 0)
  )   
)

评分

参与人数 1明经币 +1 收起 理由
669423907 + 1 谢谢,非常好用

查看全部评分

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

本版积分规则

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

GMT+8, 2025-4-30 11:52 , Processed in 0.165788 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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