石井鱼 发表于 2016-1-22 16:59:50

帮忙写个批量修改文本属性的lisp

请哪位大侠写个小程序,功能如下:

框选图中文字,将文字属性修改:对齐方式改为左对齐;字高改为300;字宽改为0.6;字体颜色改为1号色;字体样式改为“TSSD_Rein”,如果没有定义,新创建该字体样式,英中字体分别为tssdeng.shx和tssdchn.shx。

以上功能单独的程序一个个用效率低,麻烦大侠给集合至一个命令,使用起来快捷些,先谢了。


437271963 发表于 2016-1-22 16:59:51

本帖最后由 437271963 于 2016-2-29 14:34 编辑

;建立TSSD_Rein字体
(defun TSSD_Rein ( / newt)
(if (null (tblsearch "style" "TSSD_Rein"))
(progn
   (if (null vlax-dump-object) (vl-load-com) )
   (setq newT (vla-add (vla-get-TextStyles (vla-get-activedocument (vlax-get-acad-object))) "TSSD_Rein"))
   (vla-put-fontfile newT "tssdeng.shx")
   (vla-put-bigfontfile newT "tssdchn.shx");大字体为hztxt
   (vla-put-height newT 0);高度0
   (vla-put-width newT 0.6);宽度因子0.6
   (vla-put-obliqueAngle newT (/ (* pi 3) 180));倾斜角度3
)
)
)

;;修改文字为左对齐位置不变;;
(defun C:tes ( / #g1 &k1 &kw1 &ob1 pt1 ss1 ss2 ss3 ss4 ss5 x)
(setvar "cmdecho" 0)
(setvar "blipmode" 0)
(if (null vlax-dump-object) (vl-load-com) );;加载vlax扩展函数
(setq ss5 '((62 . 1) (40 . 300) (41 . 0.6) (7 . "TSSD_Rein")))
(TSSD_Rein)
(princ "\n请选择文字")
(if (setq &kw1 (ssget '((0 . "TEXT"))));1
(progn;;1
   (setq ss1 '(0 8) ss2 '(1 50 51))
   (while (setq &k1 (ssname &kw1 0));1
    (setq &kw1 (ssdel &k1 &kw1))
    (setq #g1 (entget &k1) &ob1 (vlax-ename->vla-object &k1))
    (setq ss3 (vl-remove-if-not '(lambda (X) (member (car x) ss1)) #g1))
    (setq ss4 (vl-remove-if-not '(lambda (X) (member (car x) ss2)) #g1))
    (setq pt1 (Vlax-SafeArray->List (Vlax-Variant-Value (vla-get-InsertionPoint &ob1))))
    (setq pt1 (list (car pt1) (cadr pt1)));坐标Z为0
    (vla-delete &ob1);删除原来的文字
    (setq ss4 (append ss5 ss4))
    (setq ss4 (cons (cons 10 pt1) ss4))
    (setq ss3 (append ss3 ss4))
    (entmake ss3);绘制文字
   );while;1
);progn;1
);if;1
(prin1)
)

石井鱼 发表于 2016-1-27 09:25:39

已经解决,感谢明经

haotaer 发表于 2016-2-25 17:20:29

高,这个真的还有

石井鱼 发表于 2016-2-29 13:57:36

437271963 发表于 2016-2-28 19:15 static/image/common/back.gif


非常感谢437271963帮忙,辛苦编写了这段很好的程序,适用了一下,发现其他都很实现了,但是字体样式没有改过来,新字体样式是生成了,就是没有所选文字没有变,不知能否再完善一下,再次感谢!

437271963 发表于 2016-3-1 08:29:05

已经重新修正。

石井鱼 发表于 2016-3-2 09:12:13

OK,完美,谢谢437271963的热心帮助,感谢明经这个平台!

ly8zx2109 发表于 2016-5-30 09:57:45

看看。
页: [1]
查看完整版本: 帮忙写个批量修改文本属性的lisp