找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3069|回复: 20

[求助] (ssget "_C" p1 p2为什么每次抓取的对象不同

[复制链接]

已领礼包: 604个

财富等级: 财运亨通

发表于 2014-4-17 13:54:32 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 /db_自贡黄明儒_ 于 2014-4-17 15:56 编辑

;;对于同样的图,拷贝多次,执行下面的程序,每次进行框选,为什么结果每次不同?
;;我用ssget从点中心抓, (setq ss (ssget "_C" p1 p2 '((0 . "LWPOLYLINE") (90 . 2)))),按理说对于同样的点,抓取的数量应该一样可,可是就是不同。
;;以前没有留意这个问题,是不是有什么讲究?
(defun C:w1 (/ EN N P P1 P2 SS)
  (defun HH::GetObjBox (e / ll ur)
    (vla-getboundingbox (vlax-ename->vla-object e) 'll 'ur)
    (mapcar 'vlax-safearray->list (list ll ur))
  )
  ;;43.1 [功能] 两点中点
  (defun HH::MidPt (pts / P1 P2 X Y)
    (mapcar '(lambda (X Y) (* (+ X Y) 0.5)) (car pts) (cadr pts))
  )
  (setq ss (ssget '((0 . "INSERT") (2 . "原有水泥杆"))))
  (repeat (setq n (sslength ss))
    (setq en (ssname ss (setq n (1- n))))
    (setq p (HH::MidPt (HH::GetObjBox en)))
    (setq p1 (mapcar '- p '(2.3 2.3)))
    (setq p2 (mapcar '+ p '(2.3 2.3)))
    (setq ss1 (ssget "_C" p1 p2 '((0 . "LWPOLYLINE") (90 . 2))))
    (VL-PRIN1-TO-STRING (sslength ss1))
  )
)

1.png

test.rar

453.8 KB, 下载次数: 3

w1.lsp

774 Bytes, 下载次数: 10

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

已领礼包: 2476个

财富等级: 金玉满堂

发表于 2014-4-17 15:45:35 | 显示全部楼层
没看懂想干嘛...SS为啥要重复定义......{:soso_e132:}

点评

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2014-4-17 16:25:43 | 显示全部楼层
SSGET c 是按照屏幕是否显示出来查找的。 你是不是每次屏幕显示的不一样啊。

点评

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

使用道具 举报

已领礼包: 2476个

财富等级: 金玉满堂

发表于 2014-4-17 16:31:20 | 显示全部楼层
有可能 ...我全屏一切正常...都一样....

点评

如果你把图形搞得很小呢,看到的很小,可能结果就不同了。  详情 回复 发表于 2014-4-17 16:36
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

 楼主| 发表于 2014-4-17 16:35:45 | 显示全部楼层
newer 发表于 2014-4-17 16:25
SSGET c 是按照屏幕是否显示出来查找的。 你是不是每次屏幕显示的不一样啊。

是呀,newer 版主,你原来遇到过没有呀?

点评

ACAD一直这样啊,SSGET 除了 X 选项外,其他搜索实体都是基于显示表(为了提升效率)的,就是只能选到屏幕内的,不管你P1,P2是否在屏幕外。 所以写程序时候,一般都判断下点表的最大,最小点,然后先ZOOM W到屏幕  详情 回复 发表于 2014-4-17 17:07
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

 楼主| 发表于 2014-4-17 16:36:48 | 显示全部楼层
q3_2006 发表于 2014-4-17 16:31
有可能 ...我全屏一切正常...都一样....

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2014-4-17 17:07:39 | 显示全部楼层
/db_自贡黄明儒_ 发表于 2014-4-17 16:35
是呀,newer 版主,你原来遇到过没有呀?

ACAD一直这样啊,SSGET 除了 X 选项外,其他搜索实体都是基于显示表(为了提升效率)的,就是只能选到屏幕内的,不管你P1,P2是否在屏幕外。
所以写程序时候,一般都判断下点表的最大,最小点,然后先ZOOM W到屏幕内,然后在选取实体。

你可以先ZOOM W P1 P2后,再执行你的程序。

点评

N版,不是这样的。我说的这些点和对象都看得见的,ssget "C" p1 p2 每次得到的对象不同。  详情 回复 发表于 2014-4-17 19:18
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-4-17 17:26:30 | 显示全部楼层
长老是选圆圈后过滤出相连接的线吧, 可以多选后判断哪个线的端点在圆上

点评

我是想窗选圆(是个块)后,然后根据圆选择与它相连的线,结果每次得到的线不同  详情 回复 发表于 2014-4-17 19:21
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

 楼主| 发表于 2014-4-17 19:18:40 | 显示全部楼层
newer 发表于 2014-4-17 17:07
ACAD一直这样啊,SSGET 除了 X 选项外,其他搜索实体都是基于显示表(为了提升效率)的,就是只能选到屏 ...

N版,不是这样的。我说的这些点和对象都看得见的,ssget "C" p1 p2 每次得到的对象不同。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

 楼主| 发表于 2014-4-17 19:21:34 | 显示全部楼层
st788796 发表于 2014-4-17 17:26
长老是选圆圈后过滤出相连接的线吧, 可以多选后判断哪个线的端点在圆上

我是想窗选圆(是个块)后,然后根据圆选择与它相连的线,结果每次得到的线不同

点评

虽然P1和P2每次都一样,但是如果每次屏幕大小不一样,选到的内容自然也不一样! 为避免这种情况,一般按7楼newer的方法来做!  详情 回复 发表于 2014-4-17 19:38
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2014-4-17 19:38:30 | 显示全部楼层
本帖最后由 Love-Lisp 于 2014-4-17 19:39 编辑
/db_自贡黄明儒_ 发表于 2014-4-17 19:21
我是想窗选圆(是个块)后,然后根据圆选择与它相连的线,结果每次得到的线不同

虽然P1和P2每次都一样,但是如果每次屏幕大小不一样,选到的内容自然也可能不一样!这是CAD本身的问题!为避免这种情况,一般按7楼newer的方法来做!

点评

我说的情况是p1 p2和所选择对象都在可视范围内,但还是出错  详情 回复 发表于 2014-4-17 21:35
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

 楼主| 发表于 2014-4-17 21:35:35 | 显示全部楼层
Love-Lisp 发表于 2014-4-17 19:38
虽然P1和P2每次都一样,但是如果每次屏幕大小不一样,选到的内容自然也可能不一样!这是CAD本身的问题! ...

我说的情况是p1 p2和所选择对象都在可视范围内,但还是出错

点评

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-4-17 21:44:03 来自手机 | 显示全部楼层
本帖最后由 st788796 于 2014-4-17 21:46 编辑
/db_自贡黄明儒_ 发表于 2014-4-17 21:35
我说的情况是p1 p2和所选择对象都在可视范围内,但还是出错


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

使用道具 举报

已领礼包: 590个

财富等级: 财运亨通

发表于 2014-4-17 23:21:50 | 显示全部楼层
本帖最后由 namezg 于 2014-4-17 23:24 编辑

可能是因为拾取框是有大小的,选择的时候最好将拾取框的大小pickbox改为0

点评

试了一下,如同六肪神剑,没什么用。  发表于 2014-4-18 08:29
这倒是一个不错的建议!  详情 回复 发表于 2014-4-18 08:02
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2014-4-17 23:54:25 | 显示全部楼层
/db_自贡黄明儒_ 发表于 2014-4-17 21:35
我说的情况是p1 p2和所选择对象都在可视范围内,但还是出错

如果是块的话,有可能块的插入点不在屏幕内。

你试试不是块,普通实体的,选择有问题没。

点评

应该也有问题,我是以圆块中心抓取多段线。与块无关。我块的基点都在可视范围内。  详情 回复 发表于 2014-4-18 07:59
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-24 22:31 , Processed in 0.211574 second(s), 61 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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