乐筑天下

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

[编程交流] 帮助计算线条长度

[复制链接]

1

主题

1

帖子

0

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 10:20:14 | 显示全部楼层 |阅读模式
您好,我需要计算所有选定行的长度,但我的脚本一直给我这个错误:lentyp nil。
 
有人能帮忙吗?
 
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-6 10:49:58 | 显示全部楼层
试试这个。。。我从这个论坛上得到这个,但不记得是谁
道歉
 
  1. (defun C:TLEN (/ ss tl n ent itm obj l)
  2. (setq ss (ssget)
  3.        tl 0
  4.        n (1- (sslength ss)))
  5. (while (>= n 0)
  6.    (setq ent (entget (setq itm (ssname ss n)))
  7.          obj (cdr (assoc 0 ent))
  8.          l (cond
  9.              ((= obj "LINE")
  10.                (distance (cdr (assoc 10 ent))(cdr (assoc 11 ent))))
  11.              ((= obj "ARC")
  12.                (* (cdr (assoc 40 ent))
  13.                   (if (minusp (setq l (- (cdr (assoc 51 ent))
  14.                                          (cdr (assoc 50 ent)))))
  15.                     (+ pi pi l) l)))
  16.              ((or (= obj "CIRCLE")(= obj "SPLINE")(= obj "POLYLINE")
  17.                   (= obj "LWPOLYLINE")(= obj "ELLIPSE"))
  18.                (command "_.area" "_o" itm)
  19.                (getvar "perimeter"))
  20.              (T 0))
  21.          tl (+ tl l)
  22.          n (1- n)))
  23. (alert (strcat "Total length of selected objects is " (rtos tl)))
  24. (princ)
  25. )
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 11:10:55 | 显示全部楼层
请在此处尝试:http://www.cadtutor.net/forum/showthread.php?42734-线路长度计算器
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:34:33 | 显示全部楼层
可能是这样的:
 
  1. (defun c:tLen nil
  2. ;; © Lee Mac 2010
  3. (
  4.    (lambda ( SelSet Total i / entity )
  5.      (if SelSet
  6.        (princ
  7.          (strcat "\nTotal Length: "
  8.            (rtos
  9.              (while (setq entity (ssname SelSet (setq i (1+ i))))
  10.                (setq Total
  11.                  (+
  12.                    (vlax-curve-getDistAtParam entity
  13.                      (vlax-curve-getEndParam entity)
  14.                    )
  15.                    Total
  16.                  )
  17.                )
  18.              )
  19.            )
  20.          )
  21.        )
  22.      )
  23.    )
  24.    (ssget
  25.      (list (cons 0 "ARC,CIRCLE,ELLIPSE,LINE,*POLYLINE,SPLINE")
  26.        (cons -4 "<NOT")
  27.          (cons -4 "<AND")
  28.            (cons 0 "POLYLINE")
  29.            (cons -4 "<OR")
  30.              (cons -4 "&=") (cons 70 16)
  31.              (cons -4 "&=") (cons 70 64)
  32.            (cons -4 "OR>")
  33.          (cons -4 "AND>")
  34.        (cons -4 "NOT>")
  35.      )
  36.    )
  37.    0 -1
  38. )
  39. (princ)
  40. )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 20:53 , Processed in 1.256482 second(s), 60 queries .

© 2020-2025 乐筑天下

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