一对函数,以及),使 ObjectARX 应用程序能够检查和更改 AutoCAD 系统变量的值。这些函数使用字符串来指定变量名称(大写或小写),并使用变量类型和值的(单个)结果缓冲区。在这种情况下,需要结果缓冲区,因为 AutoCAD 系统变量有多种类型:整数、实数值、字符串、二维点和三维点。acedGetVar()acedSetVar( 以下示例代码片段可确保后续 FILLET 命令使用的半径至少为 1。 struct resbuf rb, rb1;
acedGetVar("FILLETRAD", &rb);
rb1.restype = RTREAL;
rb1.resval.rreal = 1.0;
if (rb.resval.rreal < 1.0)
if (acedSetVar("FILLETRAD", &rb1) != RTNORM)
return BAD; // Setvar failed.
在此示例中,在应用程序中声明结果缓冲区时,结果缓冲区将作为自动变量分配。应用程序不必像动态分配的缓冲区那样显式管理缓冲区的内存使用。 如果 AutoCAD 系统变量是字符串类型,则为字符串分配空间。应用程序负责释放此空间。可以通过调用标准 C 库函数来执行此操作,如以下示例所示:acedGetVar()free() acedGetVar("TEXTSTYLE", &rb);
if (rb.resval.rstring != NULL)
// Release memory acquired for string:
free(rb.resval.rstring);
|
|Archiver|CAD开发者社区
( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2025-10-29 17:07
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.