乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 65|回复: 0

[编程交流] 哪一个更好?

[复制链接]

96

主题

351

帖子

62

银币

中流砥柱

Rank: 25

铜币
692
发表于 2022-7-5 22:33:44 | 显示全部楼层 |阅读模式
代码1
  1. (defun c:tt ()
  2. (vl-load-com)
  3. (setvar "cmdecho" 0)
  4. (setq os (getvar "osmode"))
  5. (setvar "osmode" 0)
  6. (setq ps (getvar "peditaccept"))
  7. (setvar "peditaccept" 1)
  8. (setq ss (ssget '((0 . "LINE"))))
  9. (command "pedit" "m" ss "" "j" "" "")
  10. (setq en1 (entlast))
  11. (if (> (rem (cdr (assoc 70 (entget en1))) 2) 0)
  12.    (progn
  13.      (command "_region" en1 "")
  14.      (setq en2 (entlast))
  15.      (setq obj2 (vlax-ename->vla-object en2))
  16.      (setq area (vla-get-Area obj2))
  17.      (setq ptc        (vlax-safearray->list
  18.                  (vlax-variant-value (vla-get-centroid obj2))
  19.                )
  20.      )
  21.      (setq radius (sqrt (/ area pi)))
  22.      (command "_circle" ptc radius)
  23.      (entdel en2)
  24.    )
  25.    (progn
  26.      (setq obj1 (vlax-ename->vla-object en1))
  27.      (setq pts (vlax-curve-getstartpoint obj1))
  28.      (setq pte (vlax-curve-getendpoint obj1))
  29.      (setq dis (vlax-curve-getdistAtPoint obj1 pte))
  30.      (setq ptm (vlax-curve-getpointatdist obj1 (* dis 0.5)))
  31.      (command "_arc" pts ptm pte)
  32.      (entdel en1)
  33.    )
  34. )
  35. (setvar "peditaccept" ps)
  36. (setvar "osmode" os)
  37. (princ)
  38. )

 
代码2
  1. (defun c:tt ()
  2. (vl-load-com)
  3. (setvar "cmdecho" 0)
  4. (setq os (getvar "osmode"))
  5. (setvar "osmode" 0)
  6. (setq ps (getvar "peditaccept"))
  7. (setvar "peditaccept" 1)
  8. (setq ss (ssget '((0 . "LINE"))))
  9. [color="red"]  (setq s1 (entlast) ss2 (ssadd));;;;;;;;;;;[/color]
  10. (command "pedit" "m" ss "" "j" "" "")
  11. [color="red"]  (while (setq s1 (entnext s1)) (ssadd s1 ss2));;;;;;;;[/color]
  12. (setq en1 (entlast))
  13. (if (> (rem (cdr (assoc 70 (entget en1))) 2) 0)
  14.    (progn
  15.      (command "_region" en1 "")
  16.      (setq en2 (entlast))
  17.      (setq obj2 (vlax-ename->vla-object en2))
  18.      (setq area (vla-get-Area obj2))
  19.      (setq ptc        (vlax-safearray->list
  20.                  (vlax-variant-value (vla-get-centroid obj2))
  21.                )
  22.      )
  23.      (setq radius (sqrt (/ area pi)))
  24.      (command "_circle" ptc radius)
  25.      (entdel en2)
  26.    )
  27.    (progn
  28.      (setq obj1 (vlax-ename->vla-object en1))
  29.      (setq pts (vlax-curve-getstartpoint obj1))
  30.      (setq pte (vlax-curve-getendpoint obj1))
  31.      (setq dis (vlax-curve-getdistAtPoint obj1 pte))
  32.      (setq ptm (vlax-curve-getpointatdist obj1 (* dis 0.5)))
  33.      (command "_arc" pts ptm pte)
  34.      (entdel en1)
  35.    )
  36. )
  37. (setvar "peditaccept" ps)
  38. (setvar "osmode" os)
  39. (princ)
  40. )

 
测试图纸:
za2.dwg
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-11 06:23 , Processed in 0.470701 second(s), 54 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表