模型或图纸设置
我有一个lisp,可以在我选择一个点后绘制一些东西,比如一个参考点。如果我在模型中选择点,这些东西将在模型中绘制,如果我切换到纸,将在纸上绘制-就像在纸上选择点一样。如果我在模型或纸上工作,我想用我的lisp两种方式,但那些应该由lisp制作的东西总是在模型或纸上绘制-如何做到? 使用CTAB变量检查或设置当前选项卡:(getvar "CTAB")
(setvar "CTAB" "Model")
LAYOUTLIST功能将为您提供图形中可用的布局选项卡列表。
(layoutlist) (defun aspace nil
(vlax-get
(setq *acdoc*
(cond
( *acdoc* )
( (vla-get-activedocument
(vlax-get-acad-object)
)
)
)
)
(cond
( (eq AcModelSpace (vlax-get *acdoc* 'ActiveSpace))
'ModelSpace
)
( 'PaperSpace )
)
)
)
例子:
(vlax-invoke (aspace) 'addline '(0. 0. 0.) '(1. 1. 0.)) 考虑到通过PM收到的额外信息,我的答案是肯定的,可以在选项卡上取一个点,然后切换到另一个点,并将该点用作绘制操作的参考。请参见以下示例:
(setvar "CTAB" "Model")
(setq point1st (getpoint "\nIndicate insertion point: "))
(setvar "CTAB" (car (layoutlist)))
(command "_CIRCLE" "_non" point1st 5.0)
但是,我不知道如何暂停例行评估以允许用户指示新选项卡。您可以通过对话框或提示器(带有INITGET的GETSTRING)来实现这一点,尽管这对于很长的布局列表、很长的布局和/或基于布局的模式名称,甚至布局名称上的空格使用情况可能不可靠。
我希望其他人能给你一个更好的解决方案。
页:
[1]