有没有办法制作autocad
有没有办法让autocad在模型上的图形名称中键入?例如:
(命令“-text”“J”“C”“50,50”“5”“0”“dwgname”)并自动神奇地键入真实的图形名称?(我确信代码没有我写的那么简单)
我试过想办法,但没有成功。谢谢你的建议 研究使用字段 是 啊
(defun c:名称();命令名称
(setq dn(getstring T“\n输入图纸名称:”);允许您在文本中输入带有空格的图形标题
(setq ip(getpoint“\n输入插入点:”);键入插入点
(setq th(getreal“\n输入文本高度:”);键入文字高度
(setq ro(getreal“\n输入文本旋转:”);键入文字旋转
(setq js(getstring“\n输入对齐:”);文本的类型对齐
(命令“text”“j”js ip th ro dn);AutoCAD绘制文字
(普林斯)
)
将该文本复制到记事本并将其保存为。lsp或运行vlide命令并将其键入lisp编辑器,将其保存在您的support pasth文件中,然后在打开CAD时,您将始终可以使用该命令。
希望有帮助。
事实上你离这不远了
(command "-text" "J" "C" "50,50" "5" "0" (getvar 'dwgname)) 我从不建议使用命令调用来生成文本,因为它可能非常不可预测,相反,我会使用entmake(或等效的VL方法):
(defun c:insdwg (/ M-Text p)
(defun M-Text (pt str)
(entmakex (list (cons 0 "MTEXT")
(cons 100 "AcDbEntity")
(cons 100 "AcDbMText")
(cons 10 pt)
(cons 1 str))))
(if (setq p (getpoint "\nSelect Point for DWG Name: "))
(M-Text p (getvar 'DWGNAME)))
(princ))
或根据您的示例:
(defun c:insdwg (/ Text)
(defun Text (pt hgt str)
(entmakex (list (cons 0 "TEXT")(cons 10pt)
(cons 40 hgt)(cons 1str)
(cons 72 1)(cons 73 0)
(cons 11 pt))))
(Text '(50. 50. 0.) 5. (getvar 'DWGNAME))
(princ))
或者,使用字段:
(defun c:insdwg (/ doc)
(vl-load-com)
(vla-addText
(if (or (eq AcModelSpace
(vla-get-ActiveSpace
(setq doc (vla-get-ActiveDocument
(vlax-get-acad-object)))))
(eq :vlax-true(vla-get-MSpace doc)))
(vla-get-ModelSpace doc)
(vla-get-PaperSpace doc))
"%<\\AcVar Filename \\f \"%tc4%fn6\">%"
(vlax-3D-point '(50. 50. 0.)) 5.)
(princ))
如何在第一个程序中设置文字高度?我理解后两种设置。
S 第一个是最“精简”的示例,将使用所有默认设置(标准TextStyle等)。
明白了,谢谢。。。。S
通过添加更多代码
有关文本的更多DXF代码,请参阅此链接
我从来没有做过那根线!
页:
[1]