cafa 发表于 2021-4-4 10:26:22

文字改角度

想通过线段角度刷文字角度,有个问题是目前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)
)

烟盒迷唇 发表于 2021-4-4 15:26:05

换成SSGET多选啊,同时用循环批量修改就得了

yshf 发表于 2021-4-4 16:45:58

(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:04

能帮忙改成多义线吗, 不是直线 谢谢

fangmin723 发表于 2021-4-5 07:54:28

juliana207 发表于 2021-4-4 23:10
能帮忙改成多义线吗, 不是直线 谢谢

如果多段线有多段,那就比较复杂

bai2000 发表于 2021-4-5 10:14:36

能帮忙改成多义线的其中一段的, 不是直线

1028695446 发表于 2021-4-7 12:21:03

本帖最后由 1028695446 于 2021-4-7 12:22 编辑

bai2000 发表于 2021-4-5 10:14
能帮忙改成多义线的其中一段的, 不是直线
取2个点多好啊,还不用担心线段的方向

yangchao2005090 发表于 2021-4-8 08:18:44

1028695446 发表于 2021-4-7 12:21
取2个点多好啊,还不用担心线段的方向

要是能跟着移动到线附近就完美了

cafa 发表于 2021-4-8 17:57:59

yshf 发表于 2021-4-4 16:45
(defun c:test1 ( / ssa ssb ang i obj)
    (vl-load-com)
    (if (and


非常感谢老师的指点。

cafa 发表于 2021-4-8 17:58:49

烟盒迷唇 发表于 2021-4-4 15:26
换成SSGET多选啊,同时用循环批量修改就得了

感谢提供思路
页: [1] 2
查看完整版本: 文字改角度