乐筑天下

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

[编程交流] 在中添加(汇总)所有维度

[复制链接]

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 07:41:25 | 显示全部楼层 |阅读模式
我正在寻找一个lisp,可以总结所有维度,并给出一个单一的值,这样我可以很容易地得到线的数量。。。。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 07:59:48 | 显示全部楼层
检查此。。。
 
  1. (defun c:Test (/ ss n)
  2. (if (setq ss (ssget '((0 . "*DIMENSION"))))
  3.    (progn (setq n 0)
  4.           ((lambda (x / sn)
  5.              (while (setq sn (ssname ss (setq x (1+ x))))
  6.                (setq n (+ (cdr (assoc 42 (entget sn))) n))
  7.              )
  8.            )
  9.             -1
  10.           )
  11.           (if (> n 0)
  12.             (alert (strcat "Total value of seleced Dimensions is : <"
  13.                            (rtos n 2)
  14.                            " >"
  15.                    )
  16.             )
  17.           )
  18.    )
  19.    (princ)
  20. )
  21. (princ)
  22. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 08:16:55 | 显示全部楼层
下面是一个非常简单的解决方案:
 
  1. (defun c:dimsum ( / i s x )
  2.    (if (setq s
  3.            (ssget
  4.               '(   (0 . "DIMENSION")
  5.                    (-4 . "<OR")
  6.                        (70 . 000)
  7.                        (70 . 001)
  8.                        (70 . 032)
  9.                        (70 . 033)
  10.                        (70 . 128)
  11.                        (70 . 129)
  12.                        (70 . 160)
  13.                        (70 . 161)
  14.                    (-4 . "OR>")
  15.                )
  16.            )
  17.        )
  18.        (progn
  19.            (setq x 0.0)
  20.            (repeat (setq i (sslength s))
  21.                (setq x (+ x (cdr (assoc 42 (entget (ssname s (setq i (1- i))))))))
  22.            )
  23.            (princ (strcat "\nTotal of " (itoa (sslength s)) " Dimensions: " (rtos x)))
  24.        )
  25.    )
  26.    (princ)
  27. )
回复

使用道具 举报

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 08:25:48 | 显示全部楼层
谢谢你的Lisp程序。它工作得很好。如果计算时有编辑过的维度,则应提示是否包含文字替代?
 
谢谢
坦维尔
回复

使用道具 举报

0

主题

2

帖子

2

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 08:35:41 | 显示全部楼层
如此接近。。。如果Dim的文本已被移动,Lisp例程将不会对其进行计数。我必须做一个DimTedit,在得到正确的总数之前,所有的dim都在家里。
此外,它使用全精度,而不是dim的精度。
例如,如果我有四个99.5mm的DIM,全部四舍五入,我希望总和是396(不是398),这让我知道我必须四舍五入其中的两个DIM。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 08:44:06 | 显示全部楼层
 
我忽略了位代码2和8的组合,现在更新了上述代码。
 
 
程序将使用LUPREC系统变量设置的精度。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-9 22:04 , Processed in 0.338914 second(s), 64 queries .

© 2020-2025 乐筑天下

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