lty 发表于 2020-3-24 17:40:21

版主,帮忙看看我写的这个小程序速度慢,问题出在哪

这些圆弧原来是二维多段线,我分解后编成圆弧的

cq4920 发表于 2020-3-24 19:45:56

不是应该读取圆弧的圆心点坐标和半径值 然后entmake画圆吗?

cq4920 发表于 2020-3-24 20:07:18



(entmake (list '(0 . "CIRCLE") (cons 10 10_list) (cons 40 40_list)))

x_s_s_1 发表于 2020-3-24 21:39:38

以前写过,希望对您有用
;;;桩重画
(DEFUN C:xcct (/ ss n en ent pt lst)
(SETQ        ss(SSGET '((0 . "arc,circle")(8 . "桩")))
        lst nil
)
(REPEAT (SETQ N (SSLENGTH SS))
    (SETQ EN (SSNAME SS (SETQ N (1- N))))
    (setq ent (entget en))
    (SETQ PT (CDR (ASSOC 10 ent)))
    (if        (null (vl-remove-if-not '(lambda (x) (equal pt x 1e-6)) lst)
        )
      (progn (setq lst (cons pt lst))
             (entmake (list '(0 . "circle")
                          (cons 10 pt)
                          (assoc 8 ent)
                          (assoc 6 ent)
                          (assoc 40 ent)
                      )
             )
      )
    )
    (entdel en)
)
(princ)
)

x_s_s_1 发表于 2020-3-24 21:51:42

您的速度慢是因为用了join和overkill命令

lty 发表于 2020-3-25 14:55:56

x_s_s_1 发表于 2020-3-24 21:39
以前写过,希望对您有用

谢谢,效果非常棒,我当时没想起来别的办法

lty 发表于 2020-3-25 15:00:01

cq4920 发表于 2020-3-24 20:07


你的代码只有一行,我不明白

cq4920 发表于 2020-3-25 18:02:32

lty 发表于 2020-3-25 15:00
你的代码只有一行,我不明白

怎么会不明白呢?

lty 发表于 2020-3-26 08:37:57

cq4920 发表于 2020-3-25 18:02
怎么会不明白呢?

你的程序我试了,也非常棒,效果很好,谢谢了:handshake
页: [1]
查看完整版本: 版主,帮忙看看我写的这个小程序速度慢,问题出在哪