相信自己666 发表于 2018-9-13 22:43:08

各位大师,怎么样批量把文字与线分离在线在上方,文字不与其他图形重叠,谢谢。

本帖最后由 相信自己666 于 2018-9-13 22:54 编辑

各位大师,怎么样批量把文字与线分离在线在上方,文字不与其他图形重叠,谢谢。

newer 发表于 2018-9-14 02:12:55

本帖最后由 newer 于 2018-9-14 02:14 编辑

看你图,有的调整到上方,有的调整到下方,还有的调整到左边,没规律不行啊

相信自己666 发表于 2018-9-14 06:46:23

newer 发表于 2018-9-14 02:12
看你图,有的调整到上方,有的调整到下方,还有的调整到左边,没规律不行啊

老师那按全部都调到线的上方好了,并且可以调整字与线的间距,请老师赐教,谢谢老师。

longer88 发表于 2018-9-14 06:52:31

移动的目的是什么?_

相信自己666 发表于 2018-9-14 07:49:18

longer88 发表于 2018-9-14 06:52
移动的目的是什么?_

您好老师,目的就是文字不能与其他图形重叠,这样打印出来可以看的清楚些,不然就是看不清楚,因为实在是太多了,一个一个去移动的话实在太慢了,就请教各位老师有没有什么好的方法批量移动,谢谢老师。

相信自己666 发表于 2018-9-15 09:33:19

newer 发表于 2018-9-14 02:12
看你图,有的调整到上方,有的调整到下方,还有的调整到左边,没规律不行啊

您好老师,我找到了一个,但是我在用的时候选定文字之后就是没有反应的,好像不能用的,麻烦老师给看下怎么回事,十分感谢。




(defun c:xdtb_txtalignatln (/ #angle #getfirstderiv #midpoint box e elst height mat mid mid1 ml p1
                            p2position rot ss ss1 text-vec tf tol v x y
                           )
(if (and (setq tol (getdist "\n输入字线间距<退出>:"))
         (xdrx_initssget "\n选取要调整的文字<退出>:")
         (setq ss (xdrx_ssget '((0 . "*text"))))
      )
    (progn
      (xdrx_begin)
      (setq tf (xd::doc:safezoom ss))
      (mapcar
      '(lambda (e)
         (setq box      (xdrx_text_box e)
               text-vec (cadr (xdrx_entity_getecs e))
               rot      (xdrx_getpropertyvalue e "rotation")
               box      (XD::Geom:Box->9PT box)
               position (nth 1 box)
               p1       (nth 0 box)
               p2       (nth 2 box)
               height   (xdrx_getpropertyvalue e "Height")
               ss1      (xdrx_pickset_GetAtPoint position height 2 '((0 . "LINE")))
         )
         (if ss1
             (progn (setq elst nil)
                  (mapcar '(lambda (x)
                               (xdrx_getpropertyvalue
                                 x "angle" "MidPoint" "startpoint" "endpoint" "getfirstderiv"
                                 #midpoint
                              )
                               (if (or (xdrx_vector_iscodirectional
                                       text-vec
                                       #getfirstderiv
                                       (/ pi 5.0)
                                       )
                                       (xdrx_vector_iscodirectional
                                       text-vec
                                       (xdrx_vector_negate #getfirstderiv)
                                       (/ pi 5.0)
                                       )
                                 )
                                 (progn
                                 (setq elst (cons (list (xd::geom:angleformat (- #angle rot)) x) elst))
                                 )
                               )
                           )
                            (xdrx_pickset->ents ss1)
                  )
                  (if elst
                      (progn (setq elst (vl-sort elst '(lambda (x y) (< (car x) (car y))))
                                 ml   (nth 1 (car elst))
                           )
                           (setq mid(xdrx_getpropertyvalue mL "MidPoint")
                                 v    (xdrx_getpropertyvalue ml "getfirstderiv" mid)
                                 v    (if (xdrx_vector_iscodirectional text-vec v)
                                          v
                                          (xdrx_vector_negate v)
                                        )
                                 mid1 (mapcar '+
                                                mid
                                                (xdrx_vector_product (xdrx_vector_perpvector v) tol)
                                        )
                                 mat(xdrx_matrix_align position p2 mid1 (mapcar '+ mid1 v))
                           )
                           (xdrx_entity_transform e mat)
                      )
                  )
             )
         )
         )
      (xdrx_pickset->ents ss)
      )
      (and tf (xdrx_document_zoomprevious))
      (xdrx_end)
    )
)
(princ))


相信自己666 发表于 2018-9-16 07:58:12

newer 发表于 2018-9-14 02:12
看你图,有的调整到上方,有的调整到下方,还有的调整到左边,没规律不行啊

您好老师,这个程序是XDsoft 老师编写的,我用的时候选择字后就是没有变化,麻烦老师给看看是什么原因,谢谢老师。

newer 发表于 2018-9-16 08:14:31

本帖最后由 newer 于 2018-9-16 08:16 编辑

相信自己666 发表于 2018-9-16 07:58
您好老师,这个程序是XDsoft 老师编写的,我用的时候选择字后就是没有变化,麻烦老师给看看是什么原因, ...
1、确保使用的是最新的XDRX API
2、文字和线的距离不能超过文字的高度
另外,这个程序是把文字给你调整到线的中点,你要用,可能很多文字都跑到一个线的中点了。

相信自己666 发表于 2018-9-16 09:27:52

您好老师,我用的是最新的最近更新的,间距不超过文字的高度也是没变化的,老师根据这个好不好修改下,谢谢老师。

憨憨赵敏爱足疗 发表于 6 天前

用文字背景遮罩功能。
页: [1]
查看完整版本: 各位大师,怎么样批量把文字与线分离在线在上方,文字不与其他图形重叠,谢谢。