乐筑天下

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

[编程交流] 分组线的长度

[复制链接]

171

主题

447

帖子

276

银币

中流砥柱

Rank: 25

铜币
860
发表于 2022-7-5 15:08:26 | 显示全部楼层 |阅读模式
我有一组只包含直线和圆弧。我可以用lisp获得直线和圆弧的总长度吗。
回复

使用道具 举报

20

主题

81

帖子

61

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-5 15:25:15 | 显示全部楼层
试试这个:
 
  1. (defun tlines ()
  2. (setq lbeg (cdr (assoc '10 ent)))
  3. (setq lend (cdr (assoc '11 ent)))
  4. (setq llen (distance lbeg lend))
  5. (setq tlen (+ tlen llen))
  6. (ssdel sn ss1)
  7. )
  8. (defun tarcs ()
  9. (setq cen (cdr (assoc '10 ent)))
  10. (setq rad (cdr (assoc '40 ent)))
  11. (setq dia (* rad 2.0))
  12. (setq circ (* (* rad pi) 2.0))
  13. (setq sang (cdr (assoc '50 ent)))
  14. (setq eang (cdr (assoc '51 ent)))
  15. (if (< eang sang)
  16.    (setq eang (+ eang (* pi 2.0)))
  17. )
  18. (setq tang (- eang sang))
  19. (setq tang2 (* (/ tang pi) 180.0))
  20. (setq circ2 (/ tang2 360.0))
  21. (setq alen (* circ2 circ))
  22. (setq tlen (+ tlen alen))
  23. (princ)
  24. (ssdel sn ss1)
  25. )
  26. (defun tplines ()
  27. (command "area" "e" sn)
  28. (setq tlen (+ tlen (getvar "perimeter")))
  29. (ssdel sn ss1)
  30. )
  31. (defun tsplines        ()
  32. (command "area" "e" sn)
  33. (setq tlen (+ tlen (getvar "perimeter")))
  34. (ssdel sn ss1)
  35. )
  36. (DEFUN C:TOTLEN        (/ tlen ss1 sn sn2 et)
  37. (setq cmdecho (getvar "cmdecho"))
  38. (setvar "cmdecho" 0)
  39. (setq tlen 0)
  40. (prompt
  41.    "\nSelect only the entities you want for the total length:"
  42. )
  43. (setq ss1 (ssget))
  44. (while (> (sslength ss1) 0)
  45.    (setq sn (ssname ss1 0))
  46.    (setq ent (entget sn))
  47.    (setq et (cdr (assoc '0 ent)))
  48.    (cond
  49.      ((= et "LINE") (tlines))
  50.      ((= et "ARC") (tarcs))
  51.      ((= et "LWPOLYLINE") (tplines))
  52.      ((= et "POLYLINE") (tplines))
  53.      ((= et "SPLINE") (tsplines))
  54.      ((or
  55. (/= et "LINE")
  56. (/= et "ARC")
  57. (/= et "LWPOLYLINE")
  58. (/= et "POLYLINE")
  59. (/= et "SPLINE")
  60.       )
  61.       (ssdel sn ss1)
  62.      )
  63.    )
  64. )
  65. (alert
  66.    (strcat
  67.      "\nThe total length of selected rows, polylines and arcs is:"
  68.      (rtos tlen 2 2)
  69.    )
  70. )
  71. (setvar "cmdecho" cmdecho)
  72. (prompt "\nAplicativo de terceiros!! ")
  73. (princ)
  74. )
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 15:39:30 | 显示全部楼层
  1. (vl-load-com)
  2. (defun c:gsum        (/ l len )
  3. (if  (vlax-for x (vla-get-groups (vla-get-activedocument (vlax-get-acad-object)))
  4.      (setq len 0.
  5.            l   (cons (list "Group "
  6.                            (vla-get-Name x)
  7.                            " Length = "
  8.                            (vlax-for x x
  9.                              (if (wcmatch (strcase (vla-get-ObjectName x)) "*BARC,*BLINE")
  10.                                (setq len (+ len (vlax-curve-getdistatparam x (vlax-curve-getendparam x))))
  11.                                )
  12.                              (rtos len 2)
  13.                              )
  14.                            )
  15.                      l
  16.                      )
  17.            )
  18.      )
  19.    
  20.    (foreach x l (terpri) (princ (apply 'strcat x)))
  21.    (alert "\nOops! No group found?")
  22.    
  23.   )
  24. (textscr)
  25. (princ)
  26. )
回复

使用道具 举报

171

主题

447

帖子

276

银币

中流砥柱

Rank: 25

铜币
860
发表于 2022-7-5 15:49:22 | 显示全部楼层
 
程序正在运行。但我需要先选择一个组,然后找到该组的总长度。
回复

使用道具 举报

171

主题

447

帖子

276

银币

中流砥柱

Rank: 25

铜币
860
发表于 2022-7-5 16:01:31 | 显示全部楼层
 
谢谢,它工作得很好。
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 16:18:21 | 显示全部楼层
 
你这里的“组”是什么意思?如果它只是一个选择而不是“ACAD_组”?
 
然后快速脏VL
[code](vl load com)(定义c:总和(/l)(if(和(ssget’((0。[color=“purple”]”线,弧“))[color=“green”];
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-14 21:04 , Processed in 0.891322 second(s), 64 queries .

© 2020-2025 乐筑天下

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