CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ObjectARX 开发指南

结果缓冲区数据类型 (.NET)

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

摘要: 这 结果缓冲区类型是一个镜像 在 ObjectARX SDK 中定义的 resbuf 结构。这 resbuf struct 为特定于 AutoCAD 的数据提供了一个灵活的容器。

Thetype 是一个镜像 ObjectARX SDK 中定义的结构的类。Struct 为特定于 AutoCAD 的数据提供了一个灵活的容器。ResultBufferresbufresbuf

Anclass 对象的使用方式与 achain 大致相同。您可以定义 a并用一系列数据对填充它。每对都包含一个数据类型说明和一个值。在托管 API 中,这些数据对是类的实例。此实用程序类的作用与结构的 and成员相同。Autodesk.AutoCAD.DatabaseServices.ResultBufferresbufResultBufferAutodesk.AutoCAD.DatabaseServices.TypedValuerestyperesvalresbuf

属性是一个 16 位整数值,指示属性的数据类型。可接受的值取决于实例的特定用途。例如,适用于 xrecord 定义的值不一定适用于 xdata。Theenum 定义了准确描述所有可能数据类型的代码。TypedValue.TypeCodeTypedValue.ValueTypeCodeResultBufferTypeCodeAutodesk.AutoCAD.DatabaseServices.DxfCodeResultBuffer

该属性映射到实例,理论上可以包含任何类型的数据。但是,数据必须符合指示的类型,以保证可用结果。TypedValue.ValueSystem.ObjectValueTypeCode

您可以通过将对象数组传递给其构造函数来预填充 a,也可以构造一个 empty,稍后调用该方法以追加新对象。下面的示例演示典型的构造函数用法:ResultBufferTypedValueResultBufferResultBuffer::Add()TypedValueResultBuffer

VB.NET
Using rec As New Xrecord()
    rec.Data = New ResultBuffer( _
        New TypedValue(CInt(DxfCode.Text), "This is a test"), _
        New TypedValue(CInt(DxfCode.Int8), 0), _
        New TypedValue(CInt(DxfCode.Int16), 1), _
        New TypedValue(CInt(DxfCode.Int32), 2), _
        New TypedValue(CInt(DxfCode.HardPointerId), db.BlockTableId), _
        New TypedValue(CInt(DxfCode.BinaryChunk), New Byte(){0, 1, 2, 3, 4}), _
        New TypedValue(CInt(DxfCode.ArbitraryHandle), db.BlockTableId.Handle), _
        New TypedValue(CInt(DxfCode.UcsOrg), New Point3d(0, 0, 0)))
End Using
C#
using (Xrecord rec = new Xrecord())
{
    rec.Data = new ResultBuffer(
        new TypedValue(Convert.ToInt32(DxfCode.Text), "This is a test"),
        new TypedValue(Convert.ToInt32(DxfCode.Int8), 0),
        new TypedValue(Convert.ToInt32(DxfCode.Int16), 1),
        new TypedValue(Convert.ToInt32(DxfCode.Int32), 2),
        new TypedValue(Convert.ToInt32(DxfCode.HardPointerId), db.BlockTableId),
        new TypedValue(Convert.ToInt32(DxfCode.BinaryChunk), new byte[] {0, 1, 2, 3, 4}),
        new TypedValue(Convert.ToInt32(DxfCode.ArbitraryHandle), db.BlockTableId.Handle),
        new TypedValue(Convert.ToInt32(DxfCode.UcsOrg),
        new Point3d(0, 0, 0)));
}

路过

雷人

握手

鲜花

鸡蛋

最新评论

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部