明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
123
返回列表 发新帖

[提问] 字母递增复制

[复制链接]
发表于 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
(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
这段是我发的吧,我现在就是要解决框选的问题,带圈复制后字母递增

是的,我只是转载,复制后粘贴,忘了说明,这是我的错,向您道歉,敬请您谅解!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-16 12:42 , Processed in 0.155971 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表