乐筑天下

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

[编程交流] 通过插入点选择对象

[复制链接]

18

主题

111

帖子

93

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-5 15:26:38 | 显示全部楼层 |阅读模式
Hi编码器
 
 
想知道是否可以使用visual lisp从仅包含插入点的列表中选择多个对象
 
所以这个列表包含了需要逐个选择的不同对象的多个插入点,如果在我的例程中实现,请对其进行处理
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 15:34:33 | 显示全部楼层
是-如果对象是块/文本,则遍历所有对象并检查其insertionpoint属性。
否则,如果对象不支持此类属性,则使用“扩展圆”方法选择给定模糊值上最近的对象。
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 15:34:43 | 显示全部楼层
就寝前快点
 

                               
登录/注册后可看大图

 
  1. ; near point - written for DGRL - rlx 25-3-2018
  2. ; pl is point list '((x y)(x y)...) , fz is fuzz factor
  3. (defun c:tst ( / pl fz ss)
  4. (setq pl '((10 50)(20 50)(30 50)(40 50)(50 50)) fz 1 ss (ssget '((0 . "INSERT"))))
  5. (if ss (mapcar '(lambda (x) (princ "\n")(princ (getip x))) (chk (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))))
  6. (princ)
  7. )
  8. (defun chk (%ss / l) (mapcar '(lambda (x) (if (near-member (getip x) pl fz) (setq l (cons x l)))) %ss) l)
  9. (defun near-member (l1 l2 tol) (vl-some (function (lambda (l3) (vl-every '(lambda (n1 n2)(equal n1 n2 tol)) l1 l3))) l2))
  10. (defun getip (e) (list (cadr (assoc 10 (entget e)))(caddr (assoc 10 (entget e)))))
  11. (vl-load-com)
  12. ;(near-member '(20 50) '((10 50) (20 50) (30 50) (40 50)(50 50)) 0.1) -> T
  13. ;(near-member '(20 51) '((10 50) (20 50) (30 50) (40 50)(50 50)) 0.1) -> nil
gr.Rlx
162645b11w1wf1unrjzw2d.jpg
回复

使用道具 举报

18

主题

111

帖子

93

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-5 15:40:56 | 显示全部楼层
@rlx公司
 
 
谢谢你的例子
感谢:-D
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 15:45:38 | 显示全部楼层
请注意,可以直接从ssget筛选器列表中筛选此类组
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 15:47:50 | 显示全部楼层
 
FWIW,我更喜欢关系测试
优点:简单、可靠、高效
缺点:没有模糊
 
  1. (setq [b] pl [/b]'((10. 50.)(20. 50.)(30. 50.)(40. 50.)(50. 50.))[color="green"]; point list[/color]
  2. ss
  3. (ssget
  4. (append (vl-list* '(0 . "CIRCLE,TEXT,INSERT"); filter
  5.             '(-4 . "<OR")
  6.             (apply 'append (mapcar ''((x) (list '(-4 . "=,=,*") (cons 10 x))) [b]pl [/b]))
  7.             )
  8.   '((-4 . "OR>"))
  9.   )
  10.    )
  11. )
  12. )
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 15:51:22 | 显示全部楼层
 
哦在提交帖子之前,李击败了我
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 15:56:32 | 显示全部楼层
 
昨晚,我的近会员功能来找我,说他想要一份工作,因为他很无聊。。。所以我给了他一个。。。
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 15:59:14 | 显示全部楼层
 
我之所以使用fuzz,是因为我使用了一个函数将整个数组或字符串、行和列的“表”从一个集合复制到另一个集合,并且存在混合对齐问题。因此,一列使用了左中,另一列使用了中中等。然后“很快”发现,第10组和第11组都不总是可信的。所以决定使用模糊因子,我的大部分或所有问题都解决了。如果坐标确实可靠,那么你是对的,一个“简单”的ssget过滤器就足够了。
 
gr.Rlx
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 16:06:17 | 显示全部楼层
 
在这种情况下,模糊因素仍然是可能的,例如:
  1. (defun ssget-by-pointlist ( lst fuz )
  2.    (ssget "_X"
  3.        (append
  4.           '(
  5.                (0 . "ARC,CIRCLE,ELLIPSE,INSERT,TEXT,MTEXT,POINT") ;; Objects for which DXF 10 is meaningful
  6.                (-4 . "<OR")
  7.            )
  8.            (apply 'append
  9.                (mapcar
  10.                   '(lambda ( x )
  11.                        (list
  12.                           '(-4 . "<AND")
  13.                           '(-4 . ">=,>=,>=")
  14.                            (cons 10 (mapcar '- x (list fuz fuz fuz)))
  15.                           '(-4 . "<=,<=,<=")
  16.                            (cons 10 (mapcar '+ x (list fuz fuz fuz)))
  17.                           '(-4 . "AND>")
  18.                        )
  19.                    )
  20.                    lst
  21.                )
  22.            )
  23.           '(
  24.                (-4 . "OR>")
  25.            )
  26.        )
  27.    )
  28. )

 
我猜这是你的另一个老功能。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-14 21:05 , Processed in 0.866945 second(s), 86 queries .

© 2020-2025 乐筑天下

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