CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ObjectARX 开发指南

自定义图元的对齐定义

2022-12-31 16:55| 发布者: admin| 查看: 327| 评论: 0|来自: AutoCAD

动态块支持自动将块实例与相邻对象对齐的对齐参数。例如,如果以与X轴成一定角度绘制墙,则由其对齐夹点拖动的门块实例可以自行旋转以与墙的角度齐平。

AutoCAD 实体通过向动态块实例提供对齐信息来实现此行为。自定义实体应用程序可以通过实现协议扩展并将其与其自定义 AcRx 类相关联来提供自己的对齐数据。当用户通过块实例的对齐夹点将块实例拖动到自定义实体时,AcRx 框架会查询已注册的实现。在找到的每个实现上,都会调用::函数。AcDbAlignmentAcDbAlignmentAcDbAlignmentgetAlignment()

该函数必须返回满足自定义实体要求的对齐点和对齐向量。实现应用程序负责测试传递给函数的实体,以确定它是否应处理该实体。如果是这样,应用程序将向框架提供对齐点和矢量,框架使用此信息将拖动的块旋转到指示的角度。getAlignment()getAlignment()

例如,假设前面提到的墙是实现扩展的自定义实体。如果用户将门块拖到墙对象上,框架将遍历现有实现并调用每个实现。调用 wall 应用程序的版本时,它首先检查实体参数,以查看它是否是其 wall 对象的实例。如果是,应用程序将检查描述门的法向量的参数。如果法线向量指示门与墙不在同一平面上,则墙应用程序会将控制权返回给框架。AcDbAlignmentAcDbAlignmentgetAlignment()

另一方面,如果门和墙位于同一平面上,则墙应用程序将检查光标位置参数,并计算墙几何图形中的哪个点作为最合适的“捕捉”位置。然后,它返回该点,以及反映该点处墙几何体的 WCS 角度的矢量。门块对象接收此信息并提供捕捉到墙壁的角度。


路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2024-5-19 15:26

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部