这是另一种方法。。。试试看,看看你是否得到了想要的结果。。。
装载过帐代码:
- (defun colect_entdata ( / ss i ent entdata )
- (setq ss (ssget "_X"))
- (setq i -1)
- (while (setq ent (ssname ss (setq i (1+ i))))
- (setq entdata (cons (entget ent) entdata))
- )
- entdata
- )
- (defun c:store_entdata nil
- (setq entdata (colect_entdata))
- (princ)
- )
- ;;; Modify entities ;;;
- (defun colect_modified_entdata ( / ss i ent entdatachk entdatamod )
- (setq ss (ssget "_X"))
- (setq i -1)
- (while (setq ent (ssname ss (setq i (1+ i))))
- (setq entdatachk (cons (entget ent) entdatachk))
- )
- (foreach data entdatachk
- (if (not (vl-some '(lambda ( x ) (equal x data 1e-6)) entdata))
- (setq entdatamod (cons data entdatamod))
- )
- )
- entdatamod
- )
- (defun c:sel_mod_ents ( / ss )
- (setq ss (ssadd))
- (foreach data (colect_modified_entdata)
- (ssadd (cdr (assoc -1 data)) ss)
- )
- (sssetfirst nil ss)
- (princ)
- )
- (alert "\nFirstly type : store_entdata \nThen modify entities \nFinally type : sel_mod_ents \nAt the end type : (setq entdata nil)")
- (princ)
1。第一种类型:store_entdata
2.使用“EXTRIM”命令-拾取第一条曲线并拾取要拉伸的区域内的点。。。
3.类型:sel\u mod\u ents
4.按ctrl+shift+c(copybase)并输入点:0,0,0
5.类型:(setq entdata nil)
6.类型:U(撤消)-绘图应与启动完全相同-在2之前。过程
7.使用“EXTRIM”命令-拾取第二条曲线并拾取要拉伸的区域内的点。。。
8.按ctrl+v(粘贴)并输入点:0,0,0
就是这样。。。试试看,告诉我它是怎么工作的。。。
HTH,M.R。 |