CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 文档中心

关于定义外部命令

2023-1-9 01:30| 发布者: admin| 查看: 1234| 评论: 0|来自: AutoCAD

外部命令可在运行 AutoCAD 或基于 AutoCAD 的产品时启动其他程序或实用程序。

运行 AutoCAD 或基于 AutoCAD 的产品时,可以调用其他程序或实用程序,如下所示:

  • Windows 系统命令和实用工具,例如 starttypedircopy
  • 应用程序,例如文本编辑器或字处理器
  • 数据库管理程序、电子表格和通信程序
  • 用户提供的程序,例如批处理 (BAT) 或独立的可执行 (EXE) 文件
注: 外部命令仅在 Windows 上的 AutoCAD 中受支持。AutoCAD LT 不支持外部命令。

可以通过在 ASCII 文字编辑器中编辑 acad.pgp 来添加命令定义。acad.pgp 的第一部分用于定义外部命令。除 acad.pgp 中的命名别名外,您还可以查找注释行,这些注释行的前面带有分号 (;) 并且允许用户添加关于文件或命令别名的文字信息。

定义外部命令时,需要指定要在操作系统提示中使用的命令名,以及传递给操作系统的可执行命令字符串。外部命令部分中的每行都包括以逗号分隔的五个字段,如下所示:

command,[executable/shell request],bit flag[,[*]prompt[,return_code]] 
command

在操作系统提示下输入的命令。如果该名称是内部 AutoCAD 命令名,则被忽略。命令名不区分大小写。

可执行文件/shell 申请

输入命令名时发送到操作系统的常量字符串。可以是能在操作系统提示中执行的任何命令。字符串可以包含命令行开关或参数。此字符串是否区分大小写取决于您想要执行的应用程序。

位标志

所需的位码参数。按任意组合相加这些整数值以得到所需结果。

0 启动应用程序并等待结束。

1 不等待应用程序结束。

2 以最小化模式运行应用程序。

4 “隐藏”地运行应用程序。

8 将参数字符串括在引号中。

位值 2 和 4 是互斥的,如果同时指定了这两个位值,那么只使用 2 位。因为程序在应用程序运行完成之前不能使用,所以应避免使用不带值 1 的值 2 或 4。

位值 8 使 del 这类命令可以正确处理包含空格的文件名。这将导致不能向这些命令传递用以空格分隔的文件名列表。如果想使用多文件支持,则不要使用位值 8。

prompt

可选字段。它指定在程序的命令提示下显示的提示。此提示的响应被添加到 executable 字段提供的字符串后面。如果提示字段的第一个字符是星号 (*),则响应可以包含空格而且用户必须按 Enter 键结束响应。否则,可以使用空格键或 Enter 键结束响应。如果未指定 prompt,则不需要输入。但如果要提供返回码或提示行需要后续空格,则必须添加逗号。

return_code

可选的位码参数。可将这些整数值按任意组合相加以得到所需的结果。例如,如果需要值 1 2 ,可用 3 作为返回码。值的定义如下(代码 04 对窗口环境无意义,因此不包括在此列表中):

1 加载 DXB 文件。终止命令后,AutoCAD 或基于 AutoCAD 的产品将把名为 $cmd.dxb 的 DXB 文件加载到图形中。加载 DXB 文件后,“$cmd.dxb”文件被删除。此动作产生的结果与 DXBIN 命令相同。

2 用 DXB 文件构造块定义。程序从名为 $cmd.dxb 的 DXB 文件创建块定义。prompt 字段的响应用作块名,此名称必须是当前图形中不存在的有效块名,因此,这种模式不能重定义以前定义的块。程序加载 DXB 文件后,$cmd.dxb 文件将被删除。默认 INSERT 命令名被设定为新定义的块的名称。

操作系统命令

定义外部命令时,startcmd 操作系统命令非常有用。如果指定的 executable 字符串不使用 startcmd 命令,则必须关闭该窗口才能继续使用程序。

start 命令启动独立的窗口并运行指定的程序或命令。如果使用的 start 不带任何参数,则它将为操作系统打开新的命令提示窗口。start 命令有许多影响新窗口显示的命令行开关。要启动单机版应用程序,请使用不带任何命令行开关的 start 命令。start 命令也可用于启动与某个应用程序相关联的文档。例如,可以用 start 命令直接打开用字处理器创建的文档或 HTML 文件。

cmd 命令将为操作系统打开命令提示窗口,此操作系统作为 AutoCAD 或基于 AutoCAD 的产品的壳。必须关闭此窗口,控制权才能返回给操作系统提示。/c/k 命令行开关对外部命令相当有用。/c 命令行开关执行指定的命令,然后停止(窗口关闭)。/k 命令行开关执行指定的命令,然后继续(窗口保持打开)。使用 /k 命令行开关时,用户必须关闭命令窗口(使用 exit 命令)。

通常,使用 start 来创建新窗口或启动与程序相互独立的应用程序。而使用 cmd 来运行不创建独立窗口的批处理文件或命令脚本,或者创建必须关闭才能将控制权返回给程序的窗口。有关这些命令和开关的详细信息,请参见操作系统命令文档。

自定义命令

下例定义了三个新命令:RUN、LISTSET 和 DXB2BLK。

RUN, cmd /c,0,*Batch file to run: ,
LISTSET,cmd /k SET,0
DXB2BLK,cmd /c DXBCOPY,0,DXB file: ,2

RUN 命令用于运行批处理文件或命令脚本。后跟 /c 命令行开关的 cmd 命令打开命令窗口,运行批处理文件,然后关闭。

LISTSET 命令用于显示操作系统的当前环境变量设置。因为此样例使用 cmd /k(而不是 start),所以必须关闭命令窗口才能返回程序。要使此窗口保持活动,请使用 start /realtime。有关这些命令和开关的详细信息,请参见操作系统命令文档。

DXB2BLK 命令用于从指定的 DXB 文件创建块定义。DXB 文件将所有对象转换为直线。此过程有一个非常有用的附带作用:它提供了一种将文字对象分解为直线的简单方法。

DXB2BLK 将指定的 DXB 文件名传递给 dxbcopy 批处理文件,此批处理文件会将该文件名复制到名为 $cmd.dxb 的文件。然后,程序将从指定的 DXB 文件创建块。答复 DXB 文件提示的名称被用作新块的名称。要创建 dxbcopy.cmd 文件,请在操作系统提示下输入以下内容:

echo copy %1.dxb $cmd.dxb > dxbcopy.cmd

此操作将在当前目录中创建 dxbcopy.cmd 文件。将此文件移至 DOS 路径下的目录中,或者在 acad.pgp 文件中明确指定此文件的位置。例如,如果 dxbcopy.cmd 文件位于 D:\cad 中,请在 acad.pgp 文件的外部命令部分输入以下内容。

DXB2BLK, cmd /c D:\CAD\DXBCOPY,0,DXB file: ,2

路过

雷人

握手

鲜花

鸡蛋

最新评论

AutoLISP AutoCAD二次开发

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-5-7 01:57

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部