明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 9183|回复: 33

[源码] 文字动态对齐线(直线、多段线、曲线化的多段线、spl线)

  [复制链接]
发表于 2016-6-6 10:45:19 | 显示全部楼层 |阅读模式
看到论坛里的这篇帖子http://bbs.mjtd.com/thread-91313-1-1.html,里面有文字或属性动态对齐于曲线,感觉挺有意思,就自己也写了个;
测试环境:AutoCAD2008
代码内还有一个判断单行文字四个角点的子函数,目前测试,在任意坐标系下可用
支持对象:单行文字,直线/多段线/曲线化的多段线/spl线
操作:w向上,s向下,a输入指定偏移距离


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

评分

参与人数 3明经币 +3 收起 理由
669423907 + 1 赞一个!
cnks + 1
USER2128 + 1 赞一个!

查看全部评分

本帖被以下淘专辑推荐:

发表于 2018-7-27 07:16:08 | 显示全部楼层
本帖最后由 尘缘一生 于 2018-7-27 07:30 编辑
yangchao2005090 发表于 2018-7-26 11:50
你好,能否加一个复制功能,复制然后平行线

这个简单,不过,移动文字再加上拷贝,有现实意义吗?怎么个画图目的这是?,请看下面修改代码:

  1. (defun c:X-ROT-MOV-COPY(/          *error*        getTextRectangBoxPointList      pointRotate
  2.                pointMove        get_AngleAndPt  echo        os        text
  3.                textptlist      curve        temptext        h       p1    UpsideDown
  4.                UpsideDownLast  k          angleandpt
  5.              )
  6.   (vl-load-com)
  7.   (command "undo" "be")
  8.   (setq echo (getvar "cmdecho"))
  9.   (setq os (getvar "osmode"))
  10.   (setvar "cmdecho" 0)
  11.   (setvar "osmode" 0)
  12.   ;;;错误处理函数
  13.   (defun *error* (msg)
  14.     (if  temptext
  15.       (entdel temptext)
  16.     )
  17.     (setvar "cmdecho" echo)
  18.     (setvar "osmode" os)
  19.     (princ)
  20.   )
  21.   ;;;
  22.   ;;;以下是子函数
  23.   ;;;
  24.   ;;;获取单行文字矩形外框点(在UCS下的外框点),返回点列表,依次左下、右下、右上、左上
  25.   ;;;text为单行文字图元名称
  26.   (defun getTextRectangBoxPointList (text / pt1 pt2 pt3 pt4 basepoint ang)
  27.     (if  (equal "TEXT" (cdr (assoc 0 (entget text))))
  28.       (progn
  29.         (setq pt1 (car (textbox (entget text)))
  30.           pt3 (cadr (textbox (entget text)))
  31.           pt2 (list (car pt3) (cadr pt1) 0)
  32.           pt4 (list (car pt1) (cadr pt3) 0)
  33.         )
  34.         (setq basepoint  (cdr (assoc 10 (entget text)))
  35.           ang  (cdr (assoc 50 (entget text)))
  36.         )
  37.         (mapcar
  38.           'trans
  39.           (mapcar
  40.             '(lambda (ropt basepoint ang z)
  41.                (pointMove (pointRotate ropt '(0 0 0) ang z) basepoint)
  42.              )
  43.             (list pt1 pt2 pt3 pt4)
  44.             (list basepoint basepoint basepoint basepoint)
  45.             (list ang ang ang ang)
  46.             (list (caddr basepoint)
  47.               (caddr basepoint)
  48.               (caddr basepoint)
  49.               (caddr basepoint)
  50.             )
  51.           )
  52.           (list text text text text)
  53.           '(1 1 1 1)
  54.         )
  55.       )
  56.       nil
  57.     )
  58.   )
  59.   ;;;平面一点ropt绕basepoint逆时针旋转ang弧度得到的新点,
  60.   ;;;并将得到的新点纵坐标改为z
  61.   (defun pointRotate (ropt basepoint ang z)
  62.     (list (+ (-  (* (- (car ropt) (car basepoint)) (cos ang))
  63.                (* (- (cadr ropt) (cadr basepoint)) (sin ang))
  64.              )
  65.             (car basepoint)
  66.           )
  67.       (+ (+  (* (- (car ropt) (car basepoint)) (sin ang))
  68.            (* (- (cadr ropt) (cadr basepoint)) (cos ang))
  69.          )
  70.         (cadr basepoint)
  71.       )
  72.       z
  73.     )
  74.   )
  75.   ;;;返回点mopt根据向量vec移动后得到的新点
  76.   (defun pointMove (mopt vec)
  77.     (list (+ (car mopt) (car vec))
  78.       (+ (cadr mopt) (cadr vec))
  79.       (+ (caddr mopt) (caddr vec))
  80.     )
  81.   )
  82.   ;;;
  83.   ;;;根据ucs点坐标获取直线或者多段线的角度,该角度为世界坐标系角度
  84.   ;;;pt为ucs坐标系的坐标点
  85.   ;;;
  86.   (defun get_AngleAndPt  (curve pt)
  87.     (setq curveobj (vlax-ename->vla-object curve))
  88.     (setq
  89.       closept (vlax-curve-getClosestPointTo curveobj (trans pt 1 0))
  90.     )
  91.     (setq param (vlax-curve-getParamAtPoint curveobj closept))
  92.     (list (angle closept
  93.             (mapcar '+
  94.               closept
  95.               (vlax-curve-getFirstDeriv curveobj param)
  96.             )
  97.           )
  98.       closept
  99.     )
  100.   )
  101.   ;;;
  102.   ;;;以下是主代码
  103.   ;;;
  104.   (setq text (entsel "\n选取文字:"))
  105.   (if (setq textptlist (getTextRectangBoxPointList (car text)))
  106.     (progn
  107.       (if
  108.         (member
  109.           (cdr
  110.             (assoc
  111.               0
  112.               (entget
  113.                 (car (setq
  114.                        curve (entsel "\n选取曲线(直线/多段线/样条曲线):")
  115.                      )
  116.                 )
  117.               )
  118.             )
  119.           )
  120.           '("LINE" "LWPOLYLINE" "POLYLINE" "SPLINE")
  121.         )
  122.         (progn
  123.           (entmake
  124.             (list
  125.               (cons 0 "TEXT")
  126.               (cons 1 (cdr (assoc 1 (entget (car text)))))
  127.               (cons 10 '(0 0 0))
  128.               (cons 11 (cadr curve))
  129.               (cons 40 (cdr (assoc 40 (entget (car text)))))
  130.               (cons 50 (car (get_AngleAndPt (car curve) (cadr curve))))
  131.               (cons 72 1)
  132.               (cons 73 2)
  133.             )
  134.           )
  135.           (setq temptext (entlast))
  136.           (setq h (* (getvar "DIMSCALE") 8.0)
  137.             UpsideDown nil
  138.             UpsideDownLast  nil
  139.           )
  140.           (while (/= 3 (car (setq k (grread T))))
  141.             (if (= 5 (car k))
  142.               (progn
  143.                 (setq angleandpt (get_AngleAndPt (car curve) (cadr k)))
  144.                 (if
  145.                   (> (* (sin (car angleandpt)) (cos (car angleandpt)))
  146.                     0
  147.                   )
  148.                   (progn
  149.                     (if (> (car (trans (cadr k) 1 0))
  150.                           (car (cadr angleandpt))
  151.                         )
  152.                       (setq UpsideDownLast UpsideDown
  153.                         UpsideDown T
  154.                       )
  155.                       (setq UpsideDownLast UpsideDown
  156.                         UpsideDown nil
  157.                       )
  158.                     )
  159.                   )
  160.                   (progn
  161.                     (if (>= (car (trans (cadr k) 1 0))
  162.                           (car (cadr angleandpt))
  163.                         )
  164.                       (setq UpsideDownLast UpsideDown
  165.                         UpsideDown nil
  166.                       )
  167.                       (setq UpsideDownLast UpsideDown
  168.                         UpsideDown T
  169.                       )
  170.                     )
  171.                   )
  172.                 )
  173.                 (if UpsideDown
  174.                   (progn
  175.                     (entmod (subst (cons 71 7)
  176.                               (assoc 71 (entget temptext))
  177.                               (entget temptext)
  178.                             )
  179.                     )
  180.                   )
  181.                   (progn
  182.                     (entmod (subst (cons 71 0)
  183.                               (assoc 71 (entget temptext))
  184.                               (entget temptext)
  185.                             )
  186.                     )
  187.                   )
  188.                 )
  189.                 (if (/= UpsideDown UpsideDownLast)
  190.                   (setq h (- h))
  191.                 )
  192.                 (setq angleandpt
  193.                   (subst
  194.                     (polar
  195.                       (cadr angleandpt)
  196.                       (+ (car angleandpt) (/ pi 2))
  197.                       (* (* 0.1 h)
  198.                         (cdr (assoc 40 (entget (car text))))
  199.                       )
  200.                     )
  201.                     (cadr angleandpt)
  202.                     angleandpt
  203.                   )
  204.                 )
  205.                 (entmod (subst  (cons 11 (cadr angleandpt))
  206.                           (assoc 11 (entget temptext))
  207.                           (subst (cons 50 (car angleandpt))
  208.                             (assoc 50 (entget temptext))
  209.                             (entget temptext)
  210.                           )
  211.                         )
  212.                 )
  213.               )
  214.             )
  215.           )
  216.           (entdel temptext)
  217.           (setq angleandpt (get_AngleAndPt (car curve) (cadr k)))
  218.           (if (> (* (sin (car angleandpt)) (cos (car angleandpt))) 0)
  219.             (progn
  220.               (if
  221.                 (> (car (trans (cadr k) 1 0)) (car (cadr angleandpt)))
  222.                 (setq  UpsideDownLast UpsideDown
  223.                   UpsideDown T
  224.                 )
  225.                 (setq  UpsideDownLast UpsideDown
  226.                   UpsideDown nil
  227.                 )
  228.               )
  229.             )
  230.             (progn
  231.               (if
  232.                 (>= (car (trans (cadr k) 1 0)) (car (cadr angleandpt)))
  233.                 (setq  UpsideDownLast UpsideDown
  234.                   UpsideDown nil
  235.                 )
  236.                 (setq  UpsideDownLast UpsideDown
  237.                   UpsideDown T
  238.                 )
  239.               )
  240.             )
  241.           )
  242.           (if UpsideDown
  243.             (progn
  244.               (entmod (subst (cons 71 7)
  245.                         (assoc 71 (entget (car text)))
  246.                         (entget (car text))
  247.                       )
  248.               )
  249.             )
  250.             (progn
  251.               (entmod (subst (cons 71 0)
  252.                         (assoc 71 (entget (car text)))
  253.                         (entget (car text))
  254.                       )
  255.               )
  256.             )
  257.           )
  258.           (if (/= UpsideDown UpsideDownLast)
  259.             (setq h (- h))
  260.           )
  261.           (setq angleandpt
  262.             (subst
  263.               (polar (cadr angleandpt)
  264.                 (+ (car angleandpt) (/ pi 2))
  265.                 (* (* 0.1 h)
  266.                   (cdr (assoc 40 (entget (car text))))
  267.                 )
  268.               )
  269.               (cadr angleandpt)
  270.               angleandpt
  271.             )
  272.           )
  273.           (entmod
  274.             (subst (cons 73 2)
  275.               (assoc 73 (entget (car text)))
  276.               (subst (cons 72 1)
  277.                 (assoc 72 (entget (car text)))
  278.                 (subst (cons 11 (cadr angleandpt))
  279.                   (assoc 11 (entget (car text)))
  280.                   (subst (cons 50 (car angleandpt))
  281.                     (assoc 50 (entget (car text)))
  282.                     (entget (car text))
  283.                   )
  284.                 )
  285.               )
  286.             )
  287.           )
  288.           (setq p1 (nth 1 (grread 5)))     ;;;;; 取得最近鼠标点
  289.           (command "copy" text "" p1 pause"") ;;;;;;拷贝文字并移动定位
  290.         )
  291.         (progn
  292.           (princ "\n没有选取合适的曲线(直线/多段线/样条曲线)!")
  293.         )
  294.       )
  295.     )
  296.     (progn
  297.       (princ "\n没选取正确的单行文字!")
  298.       nil
  299.     )
  300.   )
  301.   (command "undo" "e")
  302.   (setvar "osmode" os)
  303.   (setvar "cmdecho" echo)
  304.   (princ "\n")
  305.   (princ )
  306. )
  307. ;;;;(princ "\n******文字动态对齐曲线***By:且听风吟09***修改:尘缘一生***命令:x-rot-mov-copy******")


对这个问题,我再啰嗦下,我认为,当你画图时候,你想移动平齐与曲线,就不可能目的是拷贝在曲线,这是2个不同目的的操作,应该构造不同的命令,我极其反对,一个命令里加开关那种写法,因为,这影响画图速度,多了按键选择,假如你目的就是这样的命令,那么上面代码再修改下,加个开关就是了.






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复 支持 1 反对 0

使用道具 举报

发表于 2018-7-22 06:36:15 | 显示全部楼层
我提的问题,还得我来修改?没有明白我得意思的?
下面发上代码:
  1. (defun c:x-rot-mov (/          *error*        getTextRectangBoxPointList      pointRotate
  2.                pointMove        get_AngleAndPt  echo        os        text
  3.                textptlist      curve        temptext        h          UpsideDown
  4.                UpsideDownLast  k          angleandpt
  5.              )
  6.   (vl-load-com)
  7.   (command "undo" "be")
  8.   (setq echo (getvar "cmdecho"))
  9.   (setq os (getvar "osmode"))
  10.   (setvar "cmdecho" 0)
  11.   (setvar "osmode" 0)
  12.   ;;;错误处理函数
  13.   (defun *error* (msg)
  14.     (if  temptext
  15.       (entdel temptext)
  16.     )
  17.     (setvar "cmdecho" echo)
  18.     (setvar "osmode" os)
  19.     (princ)
  20.   )
  21.   ;;;
  22.   ;;;以下是子函数
  23.   ;;;
  24.   ;;;获取单行文字矩形外框点(在UCS下的外框点),返回点列表,依次左下、右下、右上、左上
  25.   ;;;text为单行文字图元名称
  26.   (defun getTextRectangBoxPointList (text / pt1 pt2 pt3 pt4 basepoint ang)
  27.     (if  (equal "TEXT" (cdr (assoc 0 (entget text))))
  28.       (progn
  29.         (setq pt1 (car (textbox (entget text)))
  30.           pt3 (cadr (textbox (entget text)))
  31.           pt2 (list (car pt3) (cadr pt1) 0)
  32.           pt4 (list (car pt1) (cadr pt3) 0)
  33.         )
  34.         (setq basepoint  (cdr (assoc 10 (entget text)))
  35.           ang  (cdr (assoc 50 (entget text)))
  36.         )
  37.         (mapcar
  38.           'trans
  39.           (mapcar
  40.             '(lambda (ropt basepoint ang z)
  41.                (pointMove (pointRotate ropt '(0 0 0) ang z) basepoint)
  42.              )
  43.             (list pt1 pt2 pt3 pt4)
  44.             (list basepoint basepoint basepoint basepoint)
  45.             (list ang ang ang ang)
  46.             (list (caddr basepoint)
  47.               (caddr basepoint)
  48.               (caddr basepoint)
  49.               (caddr basepoint)
  50.             )
  51.           )
  52.           (list text text text text)
  53.           '(1 1 1 1)
  54.         )
  55.       )
  56.       nil
  57.     )
  58.   )
  59.   ;;;平面一点ropt绕basepoint逆时针旋转ang弧度得到的新点,
  60.   ;;;并将得到的新点纵坐标改为z
  61.   (defun pointRotate (ropt basepoint ang z)
  62.     (list (+ (-  (* (- (car ropt) (car basepoint)) (cos ang))
  63.                (* (- (cadr ropt) (cadr basepoint)) (sin ang))
  64.              )
  65.             (car basepoint)
  66.           )
  67.       (+ (+  (* (- (car ropt) (car basepoint)) (sin ang))
  68.            (* (- (cadr ropt) (cadr basepoint)) (cos ang))
  69.          )
  70.         (cadr basepoint)
  71.       )
  72.       z
  73.     )
  74.   )
  75.   ;;;返回点mopt根据向量vec移动后得到的新点
  76.   (defun pointMove (mopt vec)
  77.     (list (+ (car mopt) (car vec))
  78.       (+ (cadr mopt) (cadr vec))
  79.       (+ (caddr mopt) (caddr vec))
  80.     )
  81.   )
  82.   ;;;
  83.   ;;;根据ucs点坐标获取直线或者多段线的角度,该角度为世界坐标系角度
  84.   ;;;pt为ucs坐标系的坐标点
  85.   ;;;
  86.   (defun get_AngleAndPt  (curve pt)
  87.     (setq curveobj (vlax-ename->vla-object curve))
  88.     (setq
  89.       closept (vlax-curve-getClosestPointTo curveobj (trans pt 1 0))
  90.     )
  91.     (setq param (vlax-curve-getParamAtPoint curveobj closept))
  92.     (list (angle closept
  93.             (mapcar '+
  94.               closept
  95.               (vlax-curve-getFirstDeriv curveobj param)
  96.             )
  97.           )
  98.       closept
  99.     )
  100.   )
  101.   ;;;
  102.   ;;;以下是主代码
  103.   ;;;
  104.   (setq text (entsel "\n选取文字:"))
  105.   (if (setq textptlist (getTextRectangBoxPointList (car text)))
  106.     (progn
  107.       (if
  108.         (member
  109.           (cdr
  110.             (assoc
  111.               0
  112.               (entget
  113.                 (car (setq
  114.                        curve (entsel "\n选取曲线(直线/多段线/样条曲线):")
  115.                      )
  116.                 )
  117.               )
  118.             )
  119.           )
  120.           '("LINE" "LWPOLYLINE" "POLYLINE" "SPLINE")
  121.         )
  122.         (progn
  123.           (entmake
  124.             (list
  125.               (cons 0 "TEXT")
  126.               (cons 1 (cdr (assoc 1 (entget (car text)))))
  127.               (cons 10 '(0 0 0))
  128.               (cons 11 (cadr curve))
  129.               (cons 40 (cdr (assoc 40 (entget (car text)))))
  130.               (cons 50 (car (get_AngleAndPt (car curve) (cadr curve))))
  131.               (cons 72 1)
  132.               (cons 73 2)
  133.             )
  134.           )
  135.           (setq temptext (entlast))
  136.           (setq h (* (getvar "DIMSCALE") 8.0)
  137.             UpsideDown nil
  138.             UpsideDownLast  nil
  139.           )
  140.           (while (/= 3 (car (setq k (grread T))))
  141.             (if (= 5 (car k))
  142.               (progn
  143.                 (setq angleandpt (get_AngleAndPt (car curve) (cadr k)))
  144.                 (if
  145.                   (> (* (sin (car angleandpt)) (cos (car angleandpt)))
  146.                     0
  147.                   )
  148.                   (progn
  149.                     (if (> (car (trans (cadr k) 1 0))
  150.                           (car (cadr angleandpt))
  151.                         )
  152.                       (setq UpsideDownLast UpsideDown
  153.                         UpsideDown T
  154.                       )
  155.                       (setq UpsideDownLast UpsideDown
  156.                         UpsideDown nil
  157.                       )
  158.                     )
  159.                   )
  160.                   (progn
  161.                     (if (>= (car (trans (cadr k) 1 0))
  162.                           (car (cadr angleandpt))
  163.                         )
  164.                       (setq UpsideDownLast UpsideDown
  165.                         UpsideDown nil
  166.                       )
  167.                       (setq UpsideDownLast UpsideDown
  168.                         UpsideDown T
  169.                       )
  170.                     )
  171.                   )
  172.                 )
  173.                 (if UpsideDown
  174.                   (progn
  175.                     (entmod (subst (cons 71 7)
  176.                               (assoc 71 (entget temptext))
  177.                               (entget temptext)
  178.                             )
  179.                     )
  180.                   )
  181.                   (progn
  182.                     (entmod (subst (cons 71 0)
  183.                               (assoc 71 (entget temptext))
  184.                               (entget temptext)
  185.                             )
  186.                     )
  187.                   )
  188.                 )
  189.                 (if (/= UpsideDown UpsideDownLast)
  190.                   (setq h (- h))
  191.                 )
  192.                 (setq angleandpt
  193.                   (subst
  194.                     (polar
  195.                       (cadr angleandpt)
  196.                       (+ (car angleandpt) (/ pi 2))
  197.                       (* (* 0.1 h)
  198.                         (cdr (assoc 40 (entget (car text))))
  199.                       )
  200.                     )
  201.                     (cadr angleandpt)
  202.                     angleandpt
  203.                   )
  204.                 )
  205.                 (entmod (subst  (cons 11 (cadr angleandpt))
  206.                           (assoc 11 (entget temptext))
  207.                           (subst (cons 50 (car angleandpt))
  208.                             (assoc 50 (entget temptext))
  209.                             (entget temptext)
  210.                           )
  211.                         )
  212.                 )
  213.               )
  214.             )
  215.           )
  216.           (entdel temptext)
  217.           (setq angleandpt (get_AngleAndPt (car curve) (cadr k)))
  218.           (if (> (* (sin (car angleandpt)) (cos (car angleandpt))) 0)
  219.             (progn
  220.               (if
  221.                 (> (car (trans (cadr k) 1 0)) (car (cadr angleandpt)))
  222.                 (setq  UpsideDownLast UpsideDown
  223.                   UpsideDown T
  224.                 )
  225.                 (setq  UpsideDownLast UpsideDown
  226.                   UpsideDown nil
  227.                 )
  228.               )
  229.             )
  230.             (progn
  231.               (if
  232.                 (>= (car (trans (cadr k) 1 0)) (car (cadr angleandpt)))
  233.                 (setq  UpsideDownLast UpsideDown
  234.                   UpsideDown nil
  235.                 )
  236.                 (setq  UpsideDownLast UpsideDown
  237.                   UpsideDown T
  238.                 )
  239.               )
  240.             )
  241.           )
  242.           (if UpsideDown
  243.             (progn
  244.               (entmod (subst (cons 71 7)
  245.                         (assoc 71 (entget (car text)))
  246.                         (entget (car text))
  247.                       )
  248.               )
  249.             )
  250.             (progn
  251.               (entmod (subst (cons 71 0)
  252.                         (assoc 71 (entget (car text)))
  253.                         (entget (car text))
  254.                       )
  255.               )
  256.             )
  257.           )
  258.           (if (/= UpsideDown UpsideDownLast)
  259.             (setq h (- h))
  260.           )
  261.           (setq angleandpt
  262.             (subst
  263.               (polar (cadr angleandpt)
  264.                 (+ (car angleandpt) (/ pi 2))
  265.                 (* (* 0.1 h)
  266.                   (cdr (assoc 40 (entget (car text))))
  267.                 )
  268.               )
  269.               (cadr angleandpt)
  270.               angleandpt
  271.             )
  272.           )
  273.           (entmod
  274.             (subst (cons 73 2)
  275.               (assoc 73 (entget (car text)))
  276.               (subst (cons 72 1)
  277.                 (assoc 72 (entget (car text)))
  278.                 (subst (cons 11 (cadr angleandpt))
  279.                   (assoc 11 (entget (car text)))
  280.                   (subst (cons 50 (car angleandpt))
  281.                     (assoc 50 (entget (car text)))
  282.                     (entget (car text))
  283.                   )
  284.                 )
  285.               )
  286.             )
  287.           )
  288.         )
  289.         (progn
  290.           (princ "\n没有选取合适的曲线(直线/多段线/样条曲线)!")
  291.         )
  292.       )
  293.     )
  294.     (progn
  295.       (princ "\n没选取正确的单行文字!")
  296.       nil
  297.     )
  298.   )
  299.   (command "undo" "e")
  300.   (setvar "osmode" os)
  301.   (setvar "cmdecho" echo)
  302.   (princ "\n")
  303.   (princ )
  304. )
  305. ;;;;(princ "\n******文字动态对齐曲线***By:且听风吟09***修改:尘缘一生***命令:x-rot-mov******")








本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复 支持 0 反对 1

使用道具 举报

发表于 2018-4-14 22:11:57 | 显示全部楼层
希望这个程序修改一下,按键太多,直接文字齐线,且在线上距离1毫米空隙即可!
发表于 2018-7-25 22:22:04 | 显示全部楼层
代码有点长啊
发表于 2018-7-26 11:50:23 | 显示全部楼层
尘缘一生 发表于 2018-7-22 06:36
我提的问题,还得我来修改?没有明白我得意思的?
下面发上代码:

你好,能否加一个复制功能,复制然后平行线
发表于 2018-7-27 08:09:47 | 显示全部楼层
感谢 尘缘一生 分享程序!!!!!
发表于 2018-7-27 10:19:44 | 显示全部楼层
尘缘一生 发表于 2018-7-27 07:16
这个简单,不过,移动文字再加上拷贝,有现实意义吗?怎么个画图目的这是?,请看下面修改代码:

谢谢,这个好像不是想要的那种,是我没说清楚,平时比如有一个注释AA,需要把它复制到很多地方,然后与线平行,如果co复制完成后,还要一个一个的设置文字与线平行

点评

这个就是“复制与线平行程序”,原来那个位置的不变,就是了。  发表于 2018-7-27 15:14
发表于 2018-7-27 16:19:23 | 显示全部楼层
yangchao2005090 发表于 2018-7-27 10:19
谢谢,这个好像不是想要的那种,是我没说清楚,平时比如有一个注释AA,需要把它复制到很多地方,然后与线 ...

谢谢,第一个lsp可以实现?

点评

不行的,都需要改写。  发表于 2018-7-28 05:09
发表于 2018-8-1 17:40:22 | 显示全部楼层
新人学习中
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-27 04:12 , Processed in 0.153643 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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