创建 AutoCAD 命令
ObjectARX 应用程序通常定义一个或多个命令,用户可以从 AutoCAD 命令提示符调用这些命令。对于工具应用程序,只需一个命令即可创建工具目录、工具选项板和工具。首次加载应用程序时,此命令仅使用一次。命令成功创建工具组件后,AutoCAD 会将其信息以及 ObjectARX 模块的路径保存到 ATC 文件中。此后,“工具选项板”框架在初始化“工具选项板”窗口时加载应用程序。您的工具和选项板将成为“工具选项板”窗口默认配置的一部分,直到它们被移除。 对于此项目,您将创建一个名为 CREATESIMPLE 的新 AutoCAD 命令。您可以通过单击 ObjectARX 向导的 ObjectARX 命令按钮,然后从 ARX 命令列表网格的右键单击菜单中选择 “New”(新建)来定义此命令。或者,如果您没有使用 ObjectARX 向导,则可以按照 ObjectARX 应用程序基础知识中所述创建已注册的命令。 使用 AcadToolImpl 创建刀具实例
现在,您拥有一个工作工具选项板,其中包含启动LINE命令的单个工具。若要添加更多工具,只需对以下任一方法进行其他调用:
要使用 ,必须已创建形状目录。您可以通过调用 来执行此操作。有关使用这些函数的信息,请参阅添加浮出控件部分。CreateFlyoutToolATC()CreateShapeCatalogATC() 该函数提供了一个可选参数 ,允许您通过提供图像文件名来覆盖库存工具的默认图标图像设置。该函数的可选参数允许您覆盖工具的默认名称。CreateToolATC()szToolImageOverrideCreateFlyoutToolATC()szToolNameOverride 由于此示例应用程序未使用 COM 对象的属性,因此不会遇到未初始化变量的问题。但是,大多数工具选项板应用程序创建的工具都依赖于自定义数据。要初始化包含自定义工具数据的成员变量,coclass 需要覆盖该方法。您应该在方法中执行初始化,而不是在 coclass 构造函数中执行初始化,因为构造函数仅用于创建库存工具。AcadToolImpl::New() New() 重写 New() 方法
以下清单显示了完成的命令处理程序代码: CComObject<CSimpleTool> tool; // Don't redefine the stock tool if it's already in the catalog if (AcTcGetManager()->FindStockTool(tool.GetObjectCLSID()) != NULL) return;if (SUCCEEDED(tool.New())) {AcTcCatalog* pCatalog = tool.CreateStockToolATC(_T(“SimpleCatalog”)); AcTcPalette* pPalette = tool.CreatePaletteATC(pCatalog, _T(“SimplePalette”)); tool.CreateCommandToolATC(pPalette, “Line”, “IDB_TOOL1”, “_LINE “); AcTcGetManager()->LoadCatalogs(); // Refresh the palette in // AutoCAD} 通过调用 ,可以将工具的属性设置为默认值。然后,可以在创建工具之前将部分或全部属性重置为专用值。New() 父主题: |
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2024-12-15 11:29
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.