CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ObjectARX 开发指南

上下文数据

2023-1-1 02:18| 发布者: admin| 查看: 273| 评论: 0|来自: AutoCAD

该函数为上下文数据提供参数。(这是 未提供的另一个功能。参数是指向结果缓冲区链接列表的指针,其中包含实体的容器块的名称。列表按从低到高的顺序排列。换句话说,列表中的第一个名称是包含所选图元的块的名称,列表中的姓氏是直接插入到图形中的块的名称。下图显示了此列表的格式。acedNEntSelP()refstkresacedEntSel()refstkres

如果所选实体不是嵌套实体,则为指针。这是测试是否需要转换实体坐标的便捷方法。(因为作为未嵌套实体的单位矩阵返回,将其应用于此类实体的坐标不会造成伤害,但会花费一些不必要的执行时间。entresrefstkresNULLxformres

使用上一个示例中的声明,可以通过以下代码找到立即包含用户选择实体的块的名称(在调用中,参数用于交互式选择)。acedNEntSelP()acedNEntSelP()pickflagFALSE

status = acedNEntSelP(NULL, usrent, usrpt, FALSE, matrix, 
    &containers); 
if ((status != RTNORM) || (containers == NULL)) 
    return BAD; 
containent[0] = containers->resval.rlname[0]; 
containent[1] = containers->resval.rlname[1]; 

可以通过如下序列找到最外层容器(即最初插入到图形中的图元)的名称:

// Check that containers is not already NULL.
rb = containers; 
while (rb != NULL) { 
    prevrb = rb; 
    rb = containers->rbnext; 
} 
// The result buffer pointed to by prevrb now contains the
// name of the outermost block.

在以下示例中,当前坐标系为 WCS。使用 AutoCAD,创建一个名为 SQUARE 的块,该块由四条线组成。

命令:

指定第一个点:1,1

指定下一个点或[撤消]:3,1

指定下一个点或[撤消]:3,3

指定下一个点或[关闭/撤消]:1,3

指定下一个点或 [关闭/撤消]:c

命令: -

输入块名称或 [?]:正方形

指定插入基点:2,2

选择对象:选择刚刚绘制的四条线

选择对象:输入

然后将块插入绕Z轴旋转 45 度的 UCS 中。

命令:ucs

输入选项 [新建/移动/正交图形/上一页/恢复/保存/删除/应用/?/世界] <世界>:z

指定绕 Z 轴的旋转角度 <90>:45

命令: -插入

输入块名称或 [?]:正方形

指定插入点或 [缩放/X/Y/z/旋转/PScale/PX/PY/PZ/p]:7,0

输入 X 比例因子,指定对角,或 [角/XYZ] <1>:输入

输入 Y 比例因子<使用 X 比例因子>:输入

指定旋转角度 <0>:输入

如果 ObjectARX 应用程序调用(or),并且用户选择正方形的左下角,则这些函数会将参数设置为等于所选行的名称。他们将拾取点 () 设置为 (6.46616,-1.0606,0.0) 或附近的点值。它们返回转换矩阵 (),如下图所示。最后,他们将容器实体列表 () 设置为指向包含块 Square 实体名称的单个结果缓冲区。acedNEntSelP()acedNEntSel()entresptresxformresrefstkres


路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2024-5-19 13:53

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部