Z文字在尺寸中的位置
你好我对LISP编程非常陌生,终于有了一个LISP的想法,它可以清除我处理的许多绘图,但我不知道从哪里开始。我试着做一些可以选择所有维度并改变文本Z值的东西。维度属性中似乎没有Z位置字段,但是当我列出维度时,有一个Z位置。我之所以要这样做,是因为当Z值不完全为零时,文本显示不正确。我不知道如何将这些翻译成代码。任何信息都很好,我想试着自己写这篇文章,这样我就可以学习编写例程的过程。
提前感谢! 当我开始深入操作实体时,我使用了(subst)、(entmod)和(entupd)
基本上,键入(entget(car(entsel))时得到的列表是AutoCAD识别为图元的列表,您可以修改该列表以修改图元。
以下是我曾经帮助过我的:
http://www.jefferypsanders.com/autolispintr_ent.html
他几乎教会了我所知道的一切,直到我找到了AutoCAD LISP帮助文件和这个论坛。 有多种方法可以实现这一点,具体取决于以下几点:
[列表]
[*]是否希望LISP自动选择所有标注文字?
[/列表]
[列表]
[*]您希望用户选择每个维度文本,还是使用窗口选择方法?
[/列表]
[列表]
[*]要继续使用Visual LISP还是普通LISP
[/列表]
让我知道你希望如何继续,我会尽我所能帮助你
李 我很好奇(李)
使用vla get Textposition创建变量,vlax variant value创建safearray,vlax safearray->list创建列表。您可以操纵此列表来创建新列表,以强制Z为零。
如何将新列表返回到使用vla put Textposition的变体?
(还是我的做法完全错了?) 拉里,你在正确的轨道上
(defun c:dimtxt(/ dEnt dimObj tPos)
(vl-load-com)
(while (and (setq dEnt (car (entsel "\nSelect Dimension: ")))
(eq "DIMENSION" (cdadr (entget dEnt))))
(setq dimObj (vlax-ename->vla-object dEnt))
(setq tPos (vlax-safearray->list
(vlax-variant-value
(vla-get-TextPosition dimObj))))
(vla-put-TextPosition dimObj
(vlax-3D-point (list (car tPos) (cadr tPos) 0.0))))
(princ))
然而,在测试时,这似乎并没有更新维度…,:呵呵: 哇,谢谢你的快速回复!我将在周末消化这些材料。 没有,但现在我知道如何使点列表成为变体。谢谢 与vanilla lisp相比,使用visual lisp有哪些优势?视觉更容易学习吗?
使用Visual LISP可以实现更多功能,因为它允许更多地访问程序结构,而Vanilla LISP没有那么多功能(而且更旧)。
我要说的是,Vanilla LISP更容易学习,但当您了解一段时间后,Visual LISP更直观。
页:
[1]