香田里浪人
发表于 2013-12-10 18:33:11
(defun c:zm1 (/ mycopy mymove SstoEs sign ss p1 p2)
(defun SstoEs(ss / a en lst)
(if ss(progn(setq a -1)(while(setq en(ssname ss(setq a(1+ a))))(setq lst (cons en lst)))))
lst)
(defun sign (nn) (if (< nn 0) -1 (if (> nn 0) 1 0)))
(defun mycopy(ss p p1 / ty q q1 s1 s2);;参照by-xyp1964的xyp-ScaleEntity
(setq ty(type ss)i -1
s2(ssadd)
q1(vlax-3D-point(trans p1 0 0))
q(vlax-3D-point(trans p 0 0)))
(cond((= ty 'ENAME)(vla-move(vla-copy(vlax-ename->vla-object ss))q q1)(setq s2(ssadd(entlast)s2)))
((= ty 'PICKSET)
(setq i -1)
(while (setq s1 (ssname ss (setq i (1+ i))))
(mycopy s1 p p1)(setq s2(ssadd(entlast)s2))))
((= ty 'LIST)(foreach x ss(mycopy x p p1)(setq s2(ssadd(entlast)s2))))
)s2)
(defun mymove(ss p p1 / ty q q1 s1);;参照by-xyp1964的xyp-ScaleEntity
(setq ty(type ss)i -1
q1(vlax-3D-point(trans p1 0 0))
q(vlax-3D-point(trans p 0 0)))
(cond((= ty 'ENAME)(vla-move(vlax-ename->vla-object ss)q q1))
((= ty 'PICKSET)
(setq i -1)
(while (setq s1 (ssname ss (setq i (1+ i))))
(mymove s1 p p1)))
((= ty 'LIST)(foreach x ss(mymove x p p1))))
)
(setq ind (getint "\n输入增减量<1> :")
ind (sign ind))
(prompt"\n选择要进行递增复制的文字、属性")
(setq ss(SstoEs(ssget'((0 . "*TEXT,ATTDEF")))))
(setq p1(getpoint"复制基点"))
(setq p2(getpoint p1"复制到"))
(mycopy (setq ss(vl-remove'nil(mapcar'(lambda(x)(setq e(entget x))
(if(assoc 1 e)
(progn(setq tx(vl-string->list (cdr(assoc 1 e))))
(if(OR(<(IF(> ind 0)65 66)(last tx)(IF(> ind 0)89 90))
(<(IF(> ind 0)97 98)(last tx)(IF(> ind 0)121 122)))x))))ss)))p1 p1)
(mymove ss p1 p2)
(mapcar'(lambda(x)(entmod(setq e(entget x)
tx(vl-string->list (cdr(assoc 1 e)))
e(subst(cons 1 (vl-list->string(reverse(cons((IF(> ind 0)1+ 1-)(last tx))(cdr(reverse tx))))))(assoc 1 e)e)))
nil)ss)
(princ)
)
;;这个是字母递增复制,貌似ABCD直接写入也行
偏爱云~小吴
发表于 2013-12-10 21:55:52
我需要的是框选后字母递增,圈和字母都复制后字母递增的,
偏爱云~小吴
发表于 2013-12-10 22:00:44
香田里浪人 发表于 2013-12-10 18:33 static/image/common/back.gif
(defun c:zm1 (/ mycopy mymove SstoEs sign ss p1 p2)
(defun SstoEs(ss / a en lst)
(if ss(prog ...
这段是我发的吧,我现在就是要解决框选的问题,带圈复制后字母递增
香田里浪人
发表于 2013-12-11 12:41:55
偏爱云~小吴 发表于 2013-12-10 22:00 static/image/common/back.gif
这段是我发的吧,我现在就是要解决框选的问题,带圈复制后字母递增
是的,我只是转载,复制后粘贴,忘了说明,这是我的错,向您道歉,敬请您谅解!