找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1546|回复: 17

[求助] 用getpoint给entsel点选做定位点,可以实现吗?

[复制链接]
发表于 2017-5-31 20:39:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
用getpoint在图中线条上定个点,然后用该点驱使entsel在那点位置上点选实体,这么做的目的是entsel定位的那个点位置可重复使用,可省略操作者点选次数,,,请教各位大神,这么个想法,可以实现吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-5-31 20:47:39 | 显示全部楼层
不太理解你的想法,怎么能减少ENTSEL的交互

要是先有点,可以用 ssget 过那点构建个选择集选到实体。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2017-5-31 20:50:50 | 显示全部楼层
可以实现的,使用实体名和点表仿照entsel的格式构成一个包含实体名和点的表即可。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 5604个

财富等级: 富甲天下

发表于 2017-5-31 21:02:46 | 显示全部楼层
(nentselp pt)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-31 21:28:45 | 显示全部楼层
多谢楼上三位
试过这么弄
  (setq aa (getpoint))
  (setq        saa (ssget "c"
                   (polar aa (* pi 0.25) 0.1)
                   (polar aa (* pi 0.75) 0.1)
            )
  )
好像没选到,entsel更不知怎搞
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-31 21:37:05 | 显示全部楼层

谢谢你,哇,,超劲,,催枯拉朽,,再次多谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-5-31 21:58:13 | 显示全部楼层

你要想这么写,别用0.1,用和 PICKBOX或者aperture的高度相对的值,因为你图不一定有多大,很大的图,0.1就不够了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-31 22:06:50 | 显示全部楼层

你好,再次向你请教,能用pt点驱动pause执行点选动作么?某些情形下程序只认pause动作。如给一矩形或串接线,选边倒角,用nentselp选边,程序报图元无法用自身倒角。nil,这时不知怎弄了,pause动作能行,但不知如何用一个点来驱动pause
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-31 22:10:07 | 显示全部楼层

对,问题在那,我用了最近点,选中了,但又遇新问题,请前辈支支招
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-5-31 22:20:11 | 显示全部楼层

你把你的问题最好用图示贴出来,明确告诉大家你想要做什么,问题描述清楚,不要用你的想法去引导别人,这样对帮助你没什么益处。多听听别人的思路。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-31 22:38:14 | 显示全部楼层
本帖最后由 lywzcf 于 2017-5-31 22:41 编辑

如,这个
(defun c:aa ()
  (setq aa (getpoint))
  (setq bb (getpoint))
  (setq saa (nentselp aa))
  (setq sbb (nentselp bb))
  (command "FILLET" "R" 5 "" "FILLET" saa sbb)
)


给彼此独立的线条倒角,可行,但针对pe串接线,倒角要pause pause)才行,因此,想用两个点驱动pause pause)动作。

两个点此前用于其他应用,程序运行到倒角动作时,此两点恰好在倒角点选位置上。相偷懒,不想动手点选倒角边了。想重复使用先前的点,用点代替pause pause)动作。

图形为生癖应用,而且程序整体还没出来,还在构思重,这是面临第一关
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6468个

财富等级: 富甲天下

发表于 2017-6-1 00:25:40 | 显示全部楼层
文字理解起来费力。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 5604个

财富等级: 富甲天下

发表于 2017-6-1 08:06:06 | 显示全部楼层
(command "_.FILLET" "_R" 5.0 "_.FILLET""_non" aa "_non" bb)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2017-6-1 08:29:27 | 显示全部楼层

不好理解啊,楼主多分下段,多用下1、   2、  。。。
每个情况下,代码都写全, 别说加两个PAUSE,配个图,然后一段文字。
还有,什么是串接线?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2017-6-1 11:26:48 | 显示全部楼层
trim和extend函数选择实体时使用的是entsel,可以使用 (list 实体名 点表) 来构成,这在早期编辑Mtrim之类的函数时会用到,圆角命令fillet也类似(估计切角命令也同),但在对复杂实体(包括块、重多段线POLYLINE等,这里主要指重多段线)等情况有所不同,圆角命令不允许对自身进行圆角操作,所以使用entsel得到的表不可用,所以,圆角命令的选择实际上是nentsel操作,即选取的是子实体。
在早期的版本中,多段线就是现在的重多段线,节点是采用实体跟随的形式,都是子实体,但从acadr14以后,引进了轻多段线的概念,轻多段线不再是复杂实体,使用nentsel也不再能得到子实体,因此,即使使用nentsel也无法得到其中的一段,因此无法自身圆角,这就是楼主无法圆角的原因。
知道原因,就可以想办法解决,不知道acad自身对fillet进行了怎样的改造,我能想到的办法是把轻多段线转换为重多段线(好在acad提供了这个转换命令),下面的代码就是一个基本代码,有兴趣的话可以看一下。
顺便说一句,pause是command函数下的强制交互控制符,应该是无法用point来激活的。
  1. (defun c:tt ()
  2.   (setq en1 (nentsel "\n选取第一条边:")
  3.         en2 (nentsel "\n选取第二条边:")
  4.   )
  5.   (cond
  6.     ((and (= (cdr (assoc 0 (entget (car en1)))) "LWPOLYLINE")  ;第一点选择的是轻多段线(LWPOLYLINE)
  7.           (equal (car en1) (car en2))                          ;选择在同一条多段线上
  8.      )
  9.      (command "convertpoly" "H" en1 "")           ;转换为重多段线(POLYLINE)
  10.      (command "fillet"
  11.               (nentselp (cadr en1))               ;“重新”拾取,此时拾取的是重多段线的一段
  12.               (nentselp (cadr en2))
  13.      )
  14.      (command "convertpoly" "l" en1 "")           ;转换回轻多段线
  15.     )
  16.     ((and (= (cdr (assoc 0 (entget (car en1)))) "LWPOLYLINE")         ;第一条为轻多段线
  17.           (/= (cdr (assoc 0 (entget (car en2)))) "LWPOLYLINE")        ;第二条不是轻多段线
  18.      )
  19.      (command "convertpoly" "H" en1 "")
  20.      (command "fillet"
  21.               (nentselp (cadr en1))
  22.               (nentselp (cadr en2))
  23.      )
  24.      (command "convertpoly" "l" en1 "")
  25.     )
  26.     ((and (= (cdr (assoc 0 (entget (car en2)))) "LWPOLYLINE")       ;第二条是轻多段线
  27.           (/= (cdr (assoc 0 (entget (car en1)))) "LWPOLYLINE")      ;第一条不是轻多段线
  28.      )
  29.      (command "convertpoly" "H" en2 "")
  30.      (command "fillet"
  31.               (nentselp (cadr en1))
  32.               (nentselp (cadr en2))
  33.      )
  34. ;     (command "convertpoly" "l" en1 "")
  35.     )
  36.     ((and (= (cdr (assoc 0 (entget (car en2)))) "LWPOLYLINE")       ;选择两条不同的轻多段线
  37.           (= (cdr (assoc 0 (entget (car en1)))) "LWPOLYLINE")
  38.           (not (equal (car en1) (car en2)))
  39.      )
  40.      (command "convertpoly" "H" en1 en2 "")
  41.      (command "fillet"
  42.               (nentselp (cadr en1))
  43.               (nentselp (cadr en2))
  44.      )
  45.      (command "convertpoly" "l" en1 "")
  46.     )
  47.     (t (command "fillet" en1 en2))                     ;其它线条
  48.   )
  49. )

评分

参与人数 1D豆 +5 收起 理由
marting + 5 热心帮忙奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-12-20 20:41 , Processed in 0.483125 second(s), 62 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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