命令-s (AutoLISP)
执行 AutoCAD 命令和提供的输入 支持的平台:Windows 和 Mac OS 签名(command-s [cmdname [arguments ...]])
返回值类型:无 nil当命令在提供的参数上执行完毕时,由函数返回。当函数未能成功完成时,将返回 An。*error* 言论有关详细信息,请参阅本主题后面的部分。 例子以下示例演示如何执行 AutoCAD CIRCLE 命令并创建直径为 2.75 的圆。 Command: (command-s "._circle" "5,4" "_d" 2.75) nil 下面的示例演示如何提示用户输入圆的中心点。 Command: (setq cPt (getpoint "\nSpecify center point: ")) (5.0 4.0 0.0) Command: (command-s "._circle" cPt "_d" 2.75) nil 以下是使用 command-s 函数提示用户输入的无效用法。 Command: (command-s "._circle" (getpoint "\nSpecify center point: ") "_d" 2.75) 与函数的区别Command该函数是该函数的一个变体,它对命令令牌内容有一些限制,但比命令快,并且由于内部逻辑差异,可以在处理程序中使用。command-scommand*error* 命令令牌是提供给函数的单个参数。这可以是字符串、实数、整数、点、实体名称、列表等。以下示例显示了 AutoCAD LINE 命令和三个命令标记:command-s (command-s "._line" "0,0" "5,7" "") “-s”后缀代表所提供命令令牌的“子例程”执行。在此表单中,AutoCAD 直接从 AutoLISP 调用,在与主文档命令处理器不同的临时命令处理器中处理提供的命令标记,然后返回,从而终止临时命令处理器。正在执行的命令必须在同一函数中启动和完成。command-s 相比之下,该函数仍然是所提供命令令牌的“协程”执行,其中 AutoLISP 一次计算一个令牌,将结果发送到 AutoCAD,然后返回以允许 AutoCAD 处理该令牌。然后,AutoCAD 会回调 AutoLISP,AutoLISP 会恢复对正在进行的表达式的评估。在此逻辑流程中,后续标记表达式可以查询 AutoCAD 以获取先前标记处理的结果并加以使用。command 总之,命令令牌处理的“协程”风格在功能上更强大,但在运行时可以使用它的时间受到限制。命令令牌处理的“子例程”样式可以在更广泛的上下文中使用,但会提前处理所有命令令牌,并且实际执行是非交互式的。对于同一组命令令牌,函数要快得多。command-s 已知注意事项使用该功能时,必须考虑以下几点:command-s
谨慎:尽管该函数与该函数类似,但如果输入 AutoLISP 表达式时已在进行 AutoCAD 命令,则使用 U 或 UNDO 回滚系统状态时应小心谨慎。在这种情况下,运行撤消的结果可能会导致正在进行的命令失败,甚至导致AutoCAD崩溃。command-scommand
*error*处理器如果 *error* 处理程序使用该函数,请考虑使用以下方法更新定义自定义处理程序的方式:command*error*
相关概念 |
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2024-12-15 12:52
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.