CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ObjectARX 开发指南

世界画() 函数

2022-12-31 15:43| 发布者: admin| 查看: 326| 评论: 0|来自: AutoCAD

函数是可绘制对象显示自身的主要机制。在此回调中,可绘制对象使用 theand接口告诉 AcGi 实现应在所有活动视口中如何表示此可绘制对象。对于特定于某些视口的信息,提供了回调(请参阅viewportDraw() 函数)。 worldDraw()AcGiSubEntityTraitsAcGiWorldGeometryviewportDraw()

该函数采用一个指针,用于为 AcGi 几何图形和特征对象 anobject.is 容器类。具体来说,包含另外两个对象:AcDbEntity::subWorldDraw()AcGiWorldDrawAcGiWorldDrawAcGiWorldDraw

  • AcGiWorldGeometry
  • AcGiSubEntityTraits

可以使用函数从内部访问对象,也可以使用函数访问对象。AcGiWorldGeometrysubWorldDraw()AcGiWorldDraw::geometry()AcGiSubEntityTraitsAcGiWorldDraw::subEntityTraits()

对象使用其绘图基元集将矢量写入 AutoCAD 的显示。基元是用于绘制图形实体的最低级指令。世界几何对象具有以下函数,用于在世界坐标中绘制基元,这些基元继承自:AcGiWorldGeometryAcGiGeometry

  • 圆弧
  • 折线
  • 多边形
  • 网孔
  • 发短信
  • 鑫线
  • 射线

绘制方法允许您指定另一个可绘制对象以用作几何图形的一部分。这可能是另一个实体或内存中的可绘制对象。AcGi 在此对象上使用与对象相同的 、 和逻辑。 setAttributes()worldDraw()viewportDraw()

对象使用其特征函数集设置图形属性值:AcGiSubEntityTraits

  • 颜色
  • 线型
  • 多边形填充类型
  • 选择标记
  • 线宽
  • 厚度
  • 打印样式名称(在打印过程中不应修改worldDraw()viewportDraw())

传递的对象应与相应的“图形模型”一样长。如果您希望重用,则应通过它委派对象,而不是使用。例如,下面的代码示例将产生错误:draw()worldDraw()draw()

MyCustomObject::subWorldDraw(AcGiWorldDraw* draw) {
    AcDbCircle circle;
    draw->geometry().draw(&circle);
}

相反,请使用

MyCustomObject::subWorldDraw(AcGiWorldDraw* draw) {
    AcDbCircle circle;
    circle.worldDraw(draw);
}

或者也许

MyCustomObject::subWorldDraw(AcGiWorldDraw* draw) {
//m_circle is a member of MyCustomObject
    draw->geometry().draw(&m_circle);
}

路过

雷人

握手

鲜花

鸡蛋

最新评论

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部