乐筑天下

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

entsel

[复制链接]

57

主题

466

帖子

8

银币

中流砥柱

Rank: 25

铜币
694
发表于 2004-4-3 12:58:00 | 显示全部楼层 |阅读模式
提示用户通过指定一个点来选择单个对象(图元)
(entsel [msg])
参数
msg
用于提示用户的字符串。如果省略该参数,则提示信息为“选择对象”。
返回值
表,其中第一个元素是用户所选对象的图元名,第二个元素是用户选择对象时指定的拾取点的坐标值(用当前 UCS 表示)。
entsel 函数返回的拾取点不一定在所选对象上,它返回的是选择对象时十字光标的位置。拾取点和对象之间的关系依赖于拾取框的尺寸和当前缩放比例。
样例
下面的  命令说明了 entsel 函数的使用方法及其返回的表:
命令:         line
起点:                 1,1         
下一点:         6,6
下一点:         ENTER
命令:         (setq e (entsel "请选择一个对象:"))         
请选择一个对象:                 3,3
( (3.0 3.0 0.0))
有时候在操作一个对象时,不但需要选中一个对象,同时还需要知道指定的点。例如在 AutoCAD 中的 Object Snap 以及 BREAK、TRIM 和 EXTEND 命令中就是这样。entsel 使得 AutoLISP 程序可以实现这种操作。它通过选取点的方式来选取单个对象。除非在函数中作特别申明,否则 initget 函数将忽略当前 Osnap 设置。entsel 函数支持它前面通过调用 initget 函数设置的关键字。
请参见 entget、entmake 和 entnext 函数,
----------------------------
请问在单点选取的时候能不能加入滤除功能
就像 (setq SS (ssget '((0 . "CIRCLR"))))
回复

使用道具 举报

6

主题

412

帖子

8

银币

后起之秀

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

铜币
436
发表于 2004-4-3 13:18:00 | 显示全部楼层
(setq ss (ssget '(2 2) '((0 . "LINE"))))
選擇通過點(2,2)的直線,不知這是不是你要的
回复

使用道具 举报

57

主题

466

帖子

8

银币

中流砥柱

Rank: 25

铜币
694
发表于 2004-4-3 17:56:00 | 显示全部楼层
不能达到我的要求
回复

使用道具 举报

57

主题

466

帖子

8

银币

中流砥柱

Rank: 25

铜币
694
发表于 2004-4-4 11:00:00 | 显示全部楼层
有问题,在选择图元时第一次选不到,要第二次才能选的到
(defun c:jj ()
         (if (and (setq ss (entsel))
                         (ssget '((0 . "CIRCLE,LWPOLYLINE")))
                                         )
                         ss
         )
)
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-4-4 11:27:00 | 显示全部楼层
4楼的链接没看见???????????
你这个程序当然是有问题了,跟链接里又不一样,不知道你写这样一个东西出来做什么?
回复

使用道具 举报

57

主题

466

帖子

8

银币

中流砥柱

Rank: 25

铜币
694
发表于 2004-4-4 11:49:00 | 显示全部楼层
四两也能拨千斤
;;BY 无痕
;;调用XENTSEL "\n选择直线或圆..." '((0 . "*LINE,CIRCLE")))
;;循环选则直到选中符合过滤的实体为止 (defun xentsel (msg filter)
                (while (not (and (setq el (entsel msg)) (ssget "p" filter))))
                el
)
如果要只选一次的:
;;BY 无痕
;;调用XENTSEL1 "\n选择直线或圆..." '((0 . "*LINE,CIRCLE")))
;;只选一次,返回点表 (实体名 . 点位);选不中或空选返回nil.
(defun xentsel1 (msg filter)
                (if (and (setq el (entsel msg)) (ssget "p" filter)) el nil)
)
--------------------------------------------------------------------
我看了,不好意思漏了一个 "P"
现在搞定了
回复

使用道具 举报

33

主题

253

帖子

9

银币

后起之秀

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

铜币
385
发表于 2004-4-4 14:21:00 | 显示全部楼层
好经典的构思!!!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-8-15 20:06 , Processed in 2.075241 second(s), 67 queries .

© 2020-2025 乐筑天下

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