vernonlee 发表于 2022-7-6 23:31:44

帮助:如何继续

我使用这个宏脚本来运行一系列命令
 
命令包括:-
1) 缩放到视图位置(从脚本运行)
2) 根据用户选择将对象移动到固定距离(通过LISP)
 
如何使用erase命令继续此操作?
 
这是宏脚本
 
谢谢

BIGAL 发表于 2022-7-6 23:38:25

这听起来像是你把所有的小功能,并加入到一个序列的事件,你已经要求了一段时间。
 
有20个例程,可以根据需要组合使用。
 
我只想再说一次,是时候学会自己动手了,很抱歉我不再支持你了。

vernonlee 发表于 2022-7-6 23:46:02

没问题,比格尔。

YZ 发表于 2022-7-6 23:49:33

首先确定宏的擦除部分要做什么,然后很容易将它们缝合在一起。
 
是否要删除先前选定的宏?
 
Erase;Previous;;
 
是否要删除用户选择的内容?
 
Erase;/
 
你试过什么?你给论坛写信肯定有些事情不管用。请详细说明失败的原因,或者您希望擦除器如何工作。这样你会让我受益的。

vernonlee 发表于 2022-7-6 23:56:17

 
嗨,YZ。。谢谢你的回复。
 
抱歉,我不清楚我的问题。
我主要想了解如何在下面的宏脚本中继续执行下一个命令。
 
命令包括:-
1) 缩放到视图位置(从脚本运行)
2) 根据用户选择将对象移动到固定距离(通过LISP)
3) Erase命令
4) 结束
下面显示了宏脚本,但我不清楚用于在命令2完成后立即运行命令3(即擦除)的代码。
问题是命令2需要用户选择,因此在选择并按enter键后,擦除命令不会继续。
 
在这篇文章之前,我读过&尝试添加以下内容进行选择,但不太明白它是否有效。
 
\
\\
\\\
希望这能让你更清楚地了解我的问题。

YZ 发表于 2022-7-6 23:59:09

它可能非常产卵,但MML是什么?
 
宏就像命令行一样。因此,无论您键入什么来继续下一个命令,几乎总是您在宏中输入的内容。
 
是否希望用户选择不同的对象进行擦除?我想你不想抹掉那些你刚刚搬来搬去的东西吧?

vernonlee 发表于 2022-7-7 00:06:12

 
MML只是我用来运行LISP的命令。它基本上是将选定对象移动到LISP中指示的固定距离和方向。
 
顺便说一句,当我提到我在
\
\\
我指的是命令2的选择,而不是擦除命令。
 
如中所示
 
^C^C^Cscript;ZoomToView;^C^C(load"D:/Office/AutoCAD/lsp/MoveFixDistance.lsp");MML;///ERASE;
 
擦除命令在末尾,因此我不需要使用选择命令。

YZ 发表于 2022-7-7 00:11:47

我不太擅长口齿不清,所以对我的评论持保留态度。我可能会错过这里的重点。
 
在我看来,你似乎想知道你要选择多少对象?有时1,有时更多?然后你留下多少个“///”,每个代表一次鼠标点击。
 
你的操作方式有一个棘手的问题,那就是你需要准确地知道每次运行宏时你需要点击多少次鼠标,而且每次点击的次数都是一样的。
 
这将继续是一个让你头疼的问题,并且会对宏限制太多。
 
在运行lisp之前,可以尝试使用select命令。
12
 
出于某种原因使用select命令,您可以单击一次或多次,单击次数可以根据需要而定,直到右键单击以确认选择。
 
如果没有正确的故障排除,我想它会是这样的:
 
13

vernonlee 发表于 2022-7-7 00:18:32

 
我明白你的意思。我试试你的建议。
 
此外,当前的选择实际上是相同的。
那么,这是否意味着每个“\”都指向一个选择?如果是这样,如果我知道我将有5个选择,我将需要“\\”?是这样吗?
 
是否有窗口选择代码?
 
谢谢你的建议。

YZ 发表于 2022-7-7 00:21:40

用户输入的每个/暂停代表一次鼠标点击。
 
一个窗口可以用2“/”。
 
选择5可以用5“/////”。
 
但是,如果你错过了一次点击,或者窗口没有正确选择它们(即使只有10%的时间也可能发生),那么宏将不会等待你,它将继续前进。
 
不同之处在于SELECT命令-它将一直等到您单击鼠标右键或enter键,然后再完成选择集。这是一种更安全的编码方式,并且更熟悉默认命令的其他工作方式。
 
我推荐
14
页: [1] 2
查看完整版本: 帮助:如何继续