明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1135|回复: 4

[提问] 如何判断选择方式ssget sssgetfirst entsel

[复制链接]
发表于 2020-10-25 00:38:00 | 显示全部楼层 |阅读模式
本帖最后由 cq4920 于 2020-10-25 02:32 编辑

想把几种标注方式合并一下 但是因为标注方式不同执行的过程也不同 所以需要对选择方式进行判断
1.点击内空
2.点击多义线的某条单边
3.单击线段或圆弧
4.框选多义线,线段和圆弧的混合集
9.先选择了混合集
根据选择方式的不同选择的图元的不同从而进行标注!
好像和某些机械元件的标注有些类似,但又有很大不同!
不知道能否实现 entsel 和 ssget 的选择方式判断?

对齐标注 线形标注 圆弧长标注  框选标注  内空标注  划线标注 角度标注  半径标注   连续/打断标注  快速标注  标注合并  


这命令快捷键也太多了!

如果能整合一下会不会好记一些!!虽然这些命令我已经都记得了!!但是这好多年积累的,如果是新人画图速度太慢!



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2020-10-25 13:17:18 | 显示全部楼层
本帖最后由 wzg356 于 2020-10-25 13:22 编辑

用grread捕捉鼠标左键坐标或getpoint直接获得坐标-----根据坐标放在不同选择方式上

(ssget "cp" (setq p (getpoint)) p)类似(entsel)
发表于 2020-10-26 09:22:03 | 显示全部楼层
ssget返回的是选择集,ssgetfirst返回的是选择集列表,entsel返回的是图元名和点组成的列表
从返回值上是很好区分的,自己用的哪个函数进行选择,难道你自己都不知道?
***************************************************************************
你是不是说ssget有很多种选择方式,你不知道用户使用的是哪一种?
如果是这样的话,你试试ssnamex 函数
 楼主| 发表于 2020-10-26 10:44:24 | 显示全部楼层
lijiao 发表于 2020-10-26 09:22
ssget返回的是选择集,ssgetfirst返回的是选择集列表,entsel返回的是图元名和点组成的列表
从返回值上是 ...

举个简单的例子


(defun c:t4 (/ p1 p2 ss )
(setq p1 (getpoint "\n选择对象:"))
        (if
(null (setq p2 (getcorner p1 "\n选择对象:")        ))       
  (setq ss (nentselp p1 ))
        (setq ss (ssget "c" p1 p2))               
        )       
        )

这里现在只有两种选择方式 选择集好理解   另一种返回的是图元名 而且需要 空格 右键来确认  


那能否对P1进行一个判定,
如果P1在线段上  直接nentselp选择  
如果 P1在空白处 继续ssget选择   如果这时按了空格 则不继续ssget选择  而是反回一个点的值
发表于 2020-10-28 09:05:13 | 显示全部楼层
(if (and (setq pt1 (getpoint))
         (null (setq ent (nentselp pt1)))
    )
  (if (setq pt2 (getcorner pt1))
    (if        (> (car pt2) (car pt1))
      (setq ss (ssget "w" pt1 pt2))
      (setq ss (ssget "c" pt1 pt2))
    )
    pt1
  )
  ent
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-17 14:25 , Processed in 0.173930 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表