看下面的程序,最好自己能看懂。。。
剪切对象就是白线,被剪切对象就是红线,怎么选择没有关系,你可以一次选中所有的(某一种,红的和白的不能同时选,看提示)
一些图形的特殊情况未加判断,仅供学习
- (defun c:test( / ss ss2 i ent ents pts pte lst)
- (prompt "选择剪切对象...")
- (setq ss (ssget))
- (prompt "选择被剪切对象...")
- (setq ss2 (ssget))
- (setq i 0)
- (repeat (sslength ss2)
- (setq ent (ssname ss2 i))
- (setq ents (entget ent))
- (setq pts (cdr (assoc 10 ents)))
- (setq pte (cdr (assoc 10 (reverse ents))))
- (setq lst (append lst (list (cons ent (list pts)) (cons ent (list pte)))))
- (setq i (1+ i))
- )
- (command "_.trim" ss "")
- (apply 'command lst)
- (command "")
- (princ)
- )
|