zhangsk19 发表于 2019-12-28 11:51:39

高手帮帮忙

如图,JMD内标注都被移动过了,不规整,现在想要批量把JMD内注记移动到封闭面中间位置,请大神帮忙

x_s_s_1 发表于 2019-12-28 20:33:00

改成居中(defun c:test1 (/ ss i en ent pt)
(setq ss (ssget '((0 . "text"))))
(command "justifytext" ss "" "m")
(repeat (setq i (sslength ss))
    (setq en(ssname ss (setq i (1- i)))
          ent (entget en)
          pt(cdr (assoc 11 ent))
    )
    (vl-cmdf "_.boundary" pt "")
    (vl-cmdf "region" (entlast) "")
    (setq pt (vlax-safearray->list
               (vlax-variant-value
               (vlax-get-property
                   (vlax-ename->vla-object (entlast))
                   'Centroid
               )
               )
             )
    )
    (entdel (entlast))
    (setq ent (subst (cons 11 pt) (assoc 11 ent) ent))
    (entmod ent)
    (entupd en)
)
)

x_s_s_1 发表于 2019-12-28 21:34:38

另一个方法
(defun c:test2 (/ ss i obj p1 p2 pt ptt)
(setq ss (ssget))
(repeat (setq i (sslength ss))
    (setq obj (vlax-ename->vla-object (ssname ss (setq i (1- i)))))
    (vla-getboundingbox obj 'p1 'p2)
    (setq pt (mapcar '(lambda (x y) (* 0.5 (+ x y)))
                     (vlax-safearray->list p1)
                     (vlax-safearray->list p2)
             )
    )
    (vl-cmdf "_.boundary" pt "")
    (vl-cmdf "region" (entlast) "")
    (setq ptt (vlax-safearray->list
                (vlax-variant-value
                  (vlax-get-property
                  (vlax-ename->vla-object (entlast))
                  'Centroid
                  )
                )
              )
    )
    (entdel (entlast))
    (vla-move obj (vlax-3d-point pt) (vlax-3d-point ptt))
)
)

x_s_s_1 发表于 2019-12-28 12:46:39

不一定好使:lol
(defun c:test1 (/ ss i en ent pt)
(setq ss (ssget '((0 . "text"))))
(repeat (setq i (sslength ss))
    (setq en(ssname ss (setq i (1- i)))
          ent (entget en)
          pt(cdr (assoc 10 ent))
    )
    (vl-cmdf "_.boundary" pt "")
    (vl-cmdf "region" (entlast) "")
    (setq pt (vlax-safearray->list
             (vlax-variant-value
               (vlax-get-property
                   (vlax-ename->vla-object (entlast))
                   'Centroid
               )
             )
             )
    )
    (entdel (entlast))
    (setq ent (subst (cons 10 pt) (assoc 10 ent) ent))
    (entmod ent)
    (entupd en)
)
)

satan421 发表于 2019-12-28 13:19:06

CASS内,recass命令研究一下,注意备份原图。

zhangsk19 发表于 2019-12-28 16:16:52

x_s_s_1 发表于 2019-12-28 12:46
不一定好使

无法运行:(

zhangsk19 发表于 2019-12-28 16:17:40

satan421 发表于 2019-12-28 13:19
CASS内,recass命令研究一下,注意备份原图。

重构会很麻烦

x_s_s_1 发表于 2019-12-28 20:22:01

zhangsk19 发表于 2019-12-28 16:16
无法运行

发图测试,我这里是可以的

zhangsk19 发表于 2019-12-28 20:45:40

x_s_s_1 发表于 2019-12-28 20:33
改成居中

加载程序时怎么提示我输入的字串符有缺陷

x_s_s_1 发表于 2019-12-28 21:35:26

zhangsk19 发表于 2019-12-28 20:45
加载程序时怎么提示我输入的字串符有缺陷

拷贝代码没拷贝对吧,自己改一下,也就是个思路
页: [1] 2
查看完整版本: 高手帮帮忙