SN00PY 发表于 2022-7-6 05:55:07

LISP生成选定文本

大家好,有谁知道可以通过选择图形中现有的插入或修改的文字图元来设置当前文字样式的lisp例程吗?(对不起,我的标题是Dimension,我指的是文字)
 
我是这个论坛的新手,但不是AutoCAD,当涉及到LISP时,我是自学成才的。任何代码建议都将不胜感激。
 
提前感谢

Cad64 发表于 2022-7-6 06:19:45

欢迎来到论坛。
 
我已经重命名了你的线程,并将其移动到AutoLisp部分。为了获得最佳效果,请始终在论坛的适当区域发布。

marko_ribar 发表于 2022-7-6 06:50:41


(defun c:picktxtstyle ( / adoc ent st stcoll stobj )

(vl-load-com)
(setq adoc (vla-get-activedocument (vlax-get-acad-object)))

(while (not ent)
   (setq ent (car (entsel "\nPick text object that has TEXT STYLE property - DXF 7 code to make its style current")))
   (if (not (assoc 7 (entget ent)))
   (progn
       (setq ent nil)
       (prompt "\nPicked entity doesn't have TEXT STYLE property, or missed selection; Try again...")
   )
   )
)
(setq st (cdr (assoc 7 (entget ent))))
(setq stcoll (vla-get-textstyles adoc))
(setq stobj (vla-item stcoll st))
(vla-put-activetextstyle adoc stobj)
(princ)
)

(defun c:pckst nil (c:picktxtstyle))

 
M、 R。

marko_ribar 发表于 2022-7-6 07:13:54

另一个,不使用DXF 7代码-只是Vlisp的stylename属性。。。
 

(defun c:picktxtstyle ( / adoc ent st stcoll stobj )

(vl-load-com)
(setq adoc (vla-get-activedocument (vlax-get-acad-object)))

(while (not ent)
   (setq ent (car (entsel "\nPick text object that has TEXT STYLE property - DXF 7 code to make its style current")))
   (if (not (vlax-property-available-p (vlax-ename->vla-object ent) 'stylename))
   (progn
       (setq ent nil)
       (prompt "\nPicked entity doesn't have TEXT STYLE property, or missed selection; Try again...")
   )
   )
)
(setq st (vla-get-stylename (vlax-ename->vla-object ent)))
(setq stcoll (vla-get-textstyles adoc))
(setq stobj (vla-item stcoll st))
(vla-put-activetextstyle adoc stobj)
(princ)
)

(defun c:pckst nil (c:picktxtstyle))

 
M、 R。
页: [1]
查看完整版本: LISP生成选定文本