zzl9105 发表于 2011-10-28 14:59:26

如何选择框内直线,sssetfirst有何作用?

本帖最后由 zzl9105 于 2011-11-1 09:38 编辑

现有一个方框,打断了与之相交的线,我想把方框里面的线定义为ss3选择集
PTS为方框的角点集
(setq ss3 (ssget "WP" PTS))这种方式,与方框相交的线,一个也没有选中
(setq ss3 (ssget "cp" PTS))这种方式,把外面的与方框相交的线也选中了
(setq ss3 (ssget "F" PTS))这种方式 ,也把外面的与方框相交的线选中了
感觉这个选择应该不复杂,可是只想到了一个复杂的处理,把方框外偏
得到新框后,再求得点集,然后还要把它删了?

(sssetfirst nil ss3),加在后面有什么作用呀?ssgetfirst与sssetfirst的说明,还是不大懂,呵呵
希望高手们不吝赐教,先谢谢了!

框里有n条被打断的线,我想选到并删除它
就这个功能

xiaxiang 发表于 2011-10-28 17:23:06

和sssetfirst函数有关系吗?孤陋寡闻了

狂刀lxx 发表于 2011-10-28 22:27:08

sssetfirst夹点+预选

xiaxiang 发表于 2011-10-28 23:28:33

好像没有别的办法啊

zzl9105 发表于 2011-10-31 11:25:26

本帖最后由 zzl9105 于 2011-10-31 11:34 编辑

狂刀lxx 发表于 2011-10-28 22:27 http://bbs.mjtd.com/static/image/common/back.gif
sssetfirst夹点+预选

水平有限,算了,那我就按往外偏移一小距离,来实现选择吧,
可是用offset命令进行偏移,要选择偏移哪侧的点,不能用参数控制in或者out定内外侧么?
可是偏移完了后,新增加了框,又得把它删除,实现感觉啰嗦......

xiaxiang 发表于 2011-10-31 11:51:24

本帖最后由 xiaxiang 于 2011-10-31 11:53 编辑

;;obj为vla-object
;;dst为实数
(defun meoffset (obj dst / tmplst)
(if (not (vl-catch-all-error-p (setq tmplst (vl-catch-all-apply 'vlax-invoke (list obj 'offset dst)))))
    tmplst
)
)效果请自己测试

zzl9105 发表于 2011-10-31 15:22:36

本帖最后由 zzl9105 于 2011-10-31 15:23 编辑

xiaxiang 发表于 2011-10-31 11:51 http://bbs.mjtd.com/static/image/common/back.gif
效果请自己测试

vl-catch-all-error-p确定参数是否是 vl-catch-all-apply 返回的错误对象
vl-catch-all-apply 将参数表传递给指定函数并截取错误
'vlax-invoke=vlax-invoke-method?调用指定的 ActiveX 方法
'offset==?
不怕大家笑话,这些函数都没用过,看说明,看老半天,也没看出来,它是干什么用的
路过的大虾,帮忙解释一下,谢谢!

zzl9105 发表于 2011-11-4 10:47:01

与网友交流了下,说vla-offset有bug,感觉偏移有正负,就没必要再来个顺逆时针判断了,简单问题复杂化了

xiaxiang 发表于 2011-11-4 11:08:47

本帖最后由 xiaxiang 于 2011-11-4 11:10 编辑

offset不用再研究了,想想怎么求点集,然后栏选
既然知道 “PTS为方框的角点集”,那还不好处理吗

xiaxiang 发表于 2011-11-4 11:13:03

zzl9105 发表于 2011-11-4 10:47 static/image/common/back.gif
与网友交流了下,说vla-offset有bug,感觉偏移有正负,就没必要再来个顺逆时针判断了,简单问题复杂化了

如果单说矩形框多义线,vla-offset没有明显的bug!
页: [1] 2
查看完整版本: 如何选择框内直线,sssetfirst有何作用?