找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3815|回复: 7

[求助] 新人第六贴,获取ssget 框选的对角点(未解决)

[复制链接]
发表于 2014-12-15 23:23:21 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 rsent 于 2014-12-17 14:59 编辑


;第一种
(DEFUN C:tt()
(setq s(ssget)
(princ)
)
;第二种
(DEFUN C:tt()
(setq p1 (getpoint "\n框选点: "))
(setq p2 (getcorner p1 "\n框选对角点: "))
(setq s (ssget "c" p1 p2))
(princ)
)

想用第一种选择,得出框选对角点。
请老师们指点下我。下面是我找到的代码,看能有帮助吗。



  • (defun getboundaryPt (vlaObj / minPt maxPt)
  • 0.jpg   (vla-getBoundingbox vlaObj 'minPt 'maxPt)
  • 1.jpg   (setq        minPt (vlax-safeArray->list minPt)
  • 2.jpg         maxPt (vlax-safeArray->list maxPt)
  • 3.jpg   )
  • 4.jpg   (list minPt maxPt)
  • 5.jpg )
  • 6.jpg (defun GetSSPts (ss / DPtLst  n)
  • 7.jpg   (setq DPtLst nil n -1)
  • 8.jpg   (repeat (sslength ss)
  • 9.jpg     (setq DPtLst (cons (getboundaryPt (vlax-ename->vla-object (ssname ss (setq n (1+ n))))) DPtLst))
  • 10.jpg   )
  • 11.jpg   (setq DPtLst  (apply 'append DPtLst))
  • 12.jpg   (list
  • 13.jpg     (apply 'mapcar (cons 'min DPtLst))
  • 14.jpg     (apply 'mapcar (cons 'max DPtLst))
  • 15.jpg   )
  • 16.jpg )

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

已领礼包: 51个

财富等级: 招财进宝

发表于 2014-12-16 08:27:12 | 显示全部楼层
很多时候并不是你认为这样做,就是你后续问题继续处理最好的方案,你先说说你为什么想要这两点? 你接着想做什么? 很多时候请教问题,不是把你的思路去影响帮助你的人,你客观的说明下问题就行了。

比如你这个问题,你本可以GETPOINT两点,送给SSGET做参数,为什么还想先用SSGET然后获得两点呢?

点评

用ssget选择可以直接看清选择好的对象。。 代码如下,看能修改为ssget吗? ;转换 (DEFUN C:sol() (command "ucs" "v") (setq p1 (getpoint "\n框选点: ")) (setq p2 (getcorner p1 "\n框选对角点: ")) (se  详情 回复 发表于 2014-12-17 10:10
我猜一下,楼主想得选择集最小包围盒,是想用ssnamex一步求得?  详情 回复 发表于 2014-12-16 08:40
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

发表于 2014-12-16 08:40:38 | 显示全部楼层
Lispboy 发表于 2014-12-16 08:27
很多时候并不是你认为这样做,就是你后续问题继续处理最好的方案,你先说说你为什么想要这两点? 你接着想 ...

我猜一下,楼主想得选择集最小包围盒,是想用ssnamex一步求得?

点评

如果如老黄说的,那就不应该扣在SSGET时候找两点,而是对得到的选择集做工作,得到需要的数据。所以说,问题一定不要让自己的思路影响给你帮助的人,要把问题说清楚,后续工作想做什么,让别人讨论出一个最合适的方  详情 回复 发表于 2014-12-16 09:40
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2014-12-16 09:40:16 | 显示全部楼层
/db_自贡黄明儒_ 发表于 2014-12-16 08:40
我猜一下,楼主想得选择集最小包围盒,是想用ssnamex一步求得?

如果如老黄说的,那就不应该扣在SSGET时候找两点,而是对得到的选择集做工作,得到需要的数据。所以说,问题一定不要让自己的思路影响给你帮助的人,要把问题说清楚,后续工作想做什么,让别人讨论出一个最合适的方案。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-17 10:10:54 | 显示全部楼层
Lispboy 发表于 2014-12-16 08:27
很多时候并不是你认为这样做,就是你后续问题继续处理最好的方案,你先说说你为什么想要这两点? 你接着想 ...

用ssget选择可以直接看清选择好的对象。。

代码如下,看能修改为ssget吗?
;转换
(DEFUN C:sol()
(command "ucs" "v")
(setq p1 (getpoint "\n框选点: "))
(setq p2 (getcorner p1 "\n框选对角点: "))
(setq s (ssget "c" p1 p2))
(setvar "TILEMODE" 0)
(command "solprof" s "" "Y" "Y" "Y")
(setq s1 (ssget "c" p1 p2 '((8 . "ph*"))))
(setq s2 (ssget "c" p1 p2 '((8 . "pv*"))))
(command "erase" s1 "")
(setvar "TILEMODE" 1)
(command "cutclip" s2 "")
(command "ucs" "w")
(princ)
)

点评

你 想选完后,暂停,让你看到选到哪些吗?  详情 回复 发表于 2014-12-17 10:17
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2014-12-17 10:17:25 | 显示全部楼层
rsent 发表于 2014-12-17 10:10
用ssget选择可以直接看清选择好的对象。。

代码如下,看能修改为ssget吗?

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

使用道具 举报

 楼主| 发表于 2014-12-17 10:20:52 | 显示全部楼层
修改了下。。
;转换
(DEFUN C:tt()
(command "ucs" "v")
(setq s (ssget))
(setvar "TILEMODE" 0)
(command "solprof" s "" "Y" "Y" "Y")
(setq ph (entlast))
(command "erase" ph "")
(setq pv (entlast))
(setvar "TILEMODE" 1)
(command "cutclip" pv "")
(command "ucs" "w")
(princ)
)


唯一的缺点就是从西南等轴测返回主视图的时候,要粘贴2次,才对。
QQ截图20141217102156.jpg
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-17 10:22:22 | 显示全部楼层
有没有切换视口的命令?我就可以自动复制 粘贴了。不需要手工来粘贴,
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-24 16:38 , Processed in 0.504493 second(s), 47 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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