各位大师,怎么样批量把文字与线分离在线在上方,文字不与其他图形重叠,谢谢。
本帖最后由 相信自己666 于 2018-9-13 22:54 编辑各位大师,怎么样批量把文字与线分离在线在上方,文字不与其他图形重叠,谢谢。
本帖最后由 newer 于 2018-9-14 02:14 编辑
看你图,有的调整到上方,有的调整到下方,还有的调整到左边,没规律不行啊 newer 发表于 2018-9-14 02:12
看你图,有的调整到上方,有的调整到下方,还有的调整到左边,没规律不行啊
老师那按全部都调到线的上方好了,并且可以调整字与线的间距,请老师赐教,谢谢老师。 移动的目的是什么?_ longer88 发表于 2018-9-14 06:52
移动的目的是什么?_
您好老师,目的就是文字不能与其他图形重叠,这样打印出来可以看的清楚些,不然就是看不清楚,因为实在是太多了,一个一个去移动的话实在太慢了,就请教各位老师有没有什么好的方法批量移动,谢谢老师。 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))
newer 发表于 2018-9-14 02:12
看你图,有的调整到上方,有的调整到下方,还有的调整到左边,没规律不行啊
您好老师,这个程序是XDsoft 老师编写的,我用的时候选择字后就是没有变化,麻烦老师给看看是什么原因,谢谢老师。 本帖最后由 newer 于 2018-9-16 08:16 编辑
相信自己666 发表于 2018-9-16 07:58
您好老师,这个程序是XDsoft 老师编写的,我用的时候选择字后就是没有变化,麻烦老师给看看是什么原因, ...
1、确保使用的是最新的XDRX API
2、文字和线的距离不能超过文字的高度
另外,这个程序是把文字给你调整到线的中点,你要用,可能很多文字都跑到一个线的中点了。
您好老师,我用的是最新的最近更新的,间距不超过文字的高度也是没变化的,老师根据这个好不好修改下,谢谢老师。 用文字背景遮罩功能。
页:
[1]