- 积分
- 5260
- 明经币
- 个
- 注册时间
- 2009-12-14
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
本帖最后由 crazylsp 于 2011-5-16 11:31 编辑
兰色的句子这里, 我想能否不指定要修剪的一侧的点,用什么办法程序能判断出要修剪的这一侧,而又不会出现部分线修剪时出错的情况,剪到另一边的问题,这样这个程序就完美了
;;不用选择边界线,框选选择要被剪去线的程序, 源码来自 lxx.2007.2
(defun c:xt (/ ss ssl i enlst box ll rr p)
(prompt "\n 选择要剪去的线")
(setq ss (ssget) ssl (sslength ss) i 0 enlst '() )
(repeat ssl
(setq en (ssname ss i) i (1+ i) enlst (cons en enlst) )
)
;;选择未来作成边界的线
(setq box (mapcar 'getvar '("vsmin" "vsmax")))
(vla-GetBoundingBox (vlax-ename->vla-object en) 'll 'rr)
(setq box (list (vlax-safearray->list ll) (vlax-safearray->list rr) ))
(setq ss (ssget "c" (car box) (cadr box) '((0 . "*LINE,ARC,RAY,CIRCLE,ELLIPSE"))))
;;明确要修剪的一侧, 如果不指定, 下句用(command ".trim" ss "r" en "" "e" "n" (list en (car box)) "")将有少量线出错
(setq p (getpoint"\n 选择要剪的一侧"))
;;修剪
(foreach en enlst
(command ".trim" ss "r" en "" "e" "n" (list en p) "")
)
;;
(princ)
)
|
|