乐筑天下

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

[编程交流] 测量a线的Lisp例程

[复制链接]

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 17:29:51 | 显示全部楼层
 
只要改变。
 

  1. (defun c:test (/ ss ss1 e d lens adds e1 )
  2. ; Tharwat 14.02.2011
  3. (setq lens 0)
  4. (if (setq ss (ssget "_:L" '((0 . "LINE"))))
  5.    (progn
  6.      (repeat (setq i (sslength ss))
  7.    (while
  8.      (setq ss1 (ssname ss  (setq i (1- i))))
  9.       (setq e (entget ss1))
  10.        (setq d (distance (cdr (assoc 10 e))(cdr (assoc 11 e))))
  11.         (setq lens (+ lens d))
  12.          ))
  13.      (setq adds (entsel "\n Select Text to add lengths to :"))
  14.      (entupd (cdr (assoc -1 (entmod (subst
  15.                       (cons 1 (strcat (cdr (assoc 1 (setq e1 (entget (car adds)))))
  16.                                " = " (rtos lens 4 5)))
  17.                       (assoc 1 e1) e1 )))))
  18.      )
  19.    (princ "\n No lines selected")
  20.    )
  21. (princ)
  22. )

 

 
  1. (rtos lens 4 5)
回复

使用道具 举报

1

主题

9

帖子

8

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 17:35:12 | 显示全部楼层
哇,这真的很有用,非常感谢你,我不想傻了,但最后一个忙,我们怎么能让它用新的测量值替换旧文本,而不是将测量值添加到现有的测量值中
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 17:37:38 | 显示全部楼层
 
不客气。
 
试试这个修改过的,以满足您的需要。。。。
 
  1. (rtos lens 2 5)
回复

使用道具 举报

1

主题

9

帖子

8

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 17:40:42 | 显示全部楼层
谢谢兄弟
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 17:44:19 | 显示全部楼层
 
不客气
回复

使用道具 举报

1

主题

9

帖子

8

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 17:47:57 | 显示全部楼层
我们如何将长度单位改为米?
谢谢
 
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 17:51:25 | 显示全部楼层
试试这个。。。
 
  1. (defun c:test (/ ss i sn e e1 ent lens)
  2. ; Tharwat 07.10.2012   ;;;
  3. (setq lens 0)
  4. (prompt "\n Select lines ...")
  5. (if (and (setq ss (ssget "_:L" '((0 . "LINE"))))
  6.           (progn
  7.             (prompt
  8.               "\n Select text object to replace lengths of lines :"
  9.             )
  10.             (setq e (ssget "_+.:S:L" '((0 . "*TEXT"))))
  11.           )
  12.      )
  13.    (progn
  14.      (repeat (setq i (sslength ss))
  15.        (setq sn (ssname ss (setq i (1- i))))
  16.        (setq ent (entget sn))
  17.        (setq
  18.          lens (+ lens
  19.                  (distance (cdr (assoc 10 ent)) (cdr (assoc 11 ent)))
  20.               )
  21.        )
  22.      )
  23.      (entupd
  24.        (cdr
  25.          (assoc
  26.            -1
  27.            (entmod
  28.              (subst
  29.                (cons
  30.                  1
  31.                  (strcat "Lengths = "
  32.                          (rtos lens 2 5)
  33.                  )
  34.                )
  35.                (assoc 1 (setq e1 (entget (ssname e 0))))
  36.                e1
  37.              )
  38.            )
  39.          )
  40.        )
  41.      )
  42.    )
  43.    (cond ((not ss) (princ "\n No lines selected"))
  44.          (t (princ "\n Selection is not Text or nothing selected"))
  45.    )
  46. )
  47. (princ)
  48. )
回复

使用道具 举报

5

主题

30

帖子

25

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-5 17:53:35 | 显示全部楼层
 
谢谢这很有效,还有一件事。如果可能的话,我想把精度改为3位数?还有后缀(米)?
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 17:56:48 | 显示全部楼层
回复

使用道具 举报

5

主题

30

帖子

25

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-5 17:58:32 | 显示全部楼层
 
Thanks.That works and one thing more.i wanna change the precision to 3 digits if possible?and a suffix (meter)?
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 13:32 , Processed in 0.387594 second(s), 70 queries .

© 2020-2025 乐筑天下

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