文字改角度
想通过线段角度刷文字角度,有个问题是目前lisp不能批量多选文字,本人不太懂lisp,请高手指点一下。另外如果可以选择多行文字,天正文字更好。(defun c:test ( / ang obj)
(vl-load-com)
(if (and (setq obj (entsel "\n请选择直线"))
(setq obj (vlax-ename->vla-object (car obj)))
(= (vla-get-ObjectName obj) "AcDbLine")
(setq ang (vla-get-Angle obj))
(setq obj (entsel "\n请选择文字"))
(setq obj (vlax-ename->vla-object (car obj)))
(= (vla-get-ObjectName obj) "AcDbText")
)
(vla-put-Rotation obj ang)
)
(princ)
)
换成SSGET多选啊,同时用循环批量修改就得了 (defun c:test1 ( / ssa ssb ang i obj)
(vl-load-com)
(if (and
(princ "\n请选择直线")
(setq ssa (ssget ":S" '((0 . "line")))) ;单选一直线段
(princ "\n请选择文字")
(setq ssb (ssget '((0 . "text,mtext")))) ;可单选、多选、框选单行文本或多行文本
)
(progn
(setq ang (vla-get-Angle (vlax-ename->vla-object (ssname ssa 0))))
(setq i 0)
(repeat (sslength ssb)
(setq obj (vlax-ename->vla-object (ssname ssb i)))
(vl-catch-all-apply 'vla-put-Rotation (list obj ang))
(setq i (1+ i))
)
)
)
(princ)
) 能帮忙改成多义线吗, 不是直线 谢谢 juliana207 发表于 2021-4-4 23:10
能帮忙改成多义线吗, 不是直线 谢谢
如果多段线有多段,那就比较复杂
能帮忙改成多义线的其中一段的, 不是直线 本帖最后由 1028695446 于 2021-4-7 12:22 编辑
bai2000 发表于 2021-4-5 10:14
能帮忙改成多义线的其中一段的, 不是直线
取2个点多好啊,还不用担心线段的方向 1028695446 发表于 2021-4-7 12:21
取2个点多好啊,还不用担心线段的方向
要是能跟着移动到线附近就完美了 yshf 发表于 2021-4-4 16:45
(defun c:test1 ( / ssa ssb ang i obj)
(vl-load-com)
(if (and
非常感谢老师的指点。 烟盒迷唇 发表于 2021-4-4 15:26
换成SSGET多选啊,同时用循环批量修改就得了
感谢提供思路
页:
[1]
2