一对函数,以及),使 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-1-8 19:32
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.