乐筑天下

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

[编程交流] 如何使用i过滤掉行

[复制链接]

1

主题

11

帖子

10

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 07:11:30 | 显示全部楼层 |阅读模式
有没有办法找到图形中所有长度为整数值的线,如5.0000,而不包括长度为4.9999的线,反之亦然?
 
提前感谢
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-6 07:16:48 | 显示全部楼层
QSELECT应该会帮你。
回复

使用道具 举报

1

主题

11

帖子

10

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 07:20:55 | 显示全部楼层
我无法想象有了这个工具怎么可能。
 
我有许多不同长度的线条;其中一些具有整数值,一些具有非整数值。我想找出哪些具有长度属性的非整数值,因为这意味着我必须纠正图形中的不精确性。现在我必须手动操作。
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-6 07:23:02 | 显示全部楼层
你试过过滤器吗?
 
除此之外,你还需要Lisp程序。
回复

使用道具 举报

1

主题

11

帖子

10

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 07:27:33 | 显示全部楼层
过滤器无法解决此问题。
是的,这就是我所希望的,也许有人知道已经编写的LISP代码可以做到这一点,因为我不知道如何编写它。。。
 
但无论如何谢谢你的帮助
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-6 07:29:38 | 显示全部楼层
在这种情况下,你应该问在LISP论坛。我把你的线移到那里。
 
你查过李的网站了吗?
回复

使用道具 举报

1

主题

11

帖子

10

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 07:34:07 | 显示全部楼层
谢谢,我会查他的网站。。。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 07:35:31 | 显示全部楼层
试试这个。。。
 
  1. (defun c:Test (/ s l ss i sn)
  2. (if (and (setq s (ssadd)
  3.                 l (getdist "\n Specify length of lines to highlight :")
  4.           )
  5.           (setq ss (ssget "_x" '((0 . "LINE"))))
  6.      )
  7.    (repeat (setq i (sslength ss))
  8.      (setq sn (ssname ss (setq i (1- i))))
  9.      (if (equal (distance (cdr (assoc 10 (entget sn)))
  10.                           (cdr (assoc 11 (entget sn)))
  11.                 )
  12.                 l
  13.          )
  14.        (ssadd sn s)
  15.      )
  16.    )
  17. )
  18. (sssetfirst nil s)
  19. (princ)
  20. )
回复

使用道具 举报

1

主题

11

帖子

10

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 07:38:54 | 显示全部楼层
谢谢Tharwat,
但是,我们可以选择长度不同但长度属性只有整数值的线吗?
 
你看,你的代码要求特定的长度,但我需要许多不同的长度,但只需要整数值。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:42:13 | 显示全部楼层
我想:
 
  1. (defun c:test ( / e i s x )
  2.    (if (setq s
  3.            (ssget "_X"
  4.                (list '(0 . "LINE")
  5.                    (if (= 1 (getvar 'cvport)) (cons 410 (getvar 'ctab)) '(410 . "Model"))
  6.                )
  7.            )
  8.        )
  9.        (repeat (setq i (sslength s))
  10.            (setq e (ssname s (setq i (1- i)))
  11.                  x (entget e)
  12.            )
  13.            (if (not (equal (rem (distance (cdr (assoc 10 x)) (cdr (assoc 11 x))) 1.0) 0.0 1e-)
  14.                (ssdel e s)
  15.            )
  16.        )
  17.    )
  18.    (sssetfirst nil s)
  19.    (princ)
  20. )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 10:43 , Processed in 0.583962 second(s), 72 queries .

© 2020-2025 乐筑天下

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