AcDbAttribute

 

AcDbAttribute类表示AutoCAD中的ATTRIB实体。ATTRIB实体与INSERT实体(AcDbBlockReference对象)关联。

 

继承自

AcDbText

 

包含文件

dbents.h

 

提示

要设置所有的非AcDbAttribute特定属性如位置、文本字符串、文本高度、文本旋转、及其他。对于属性,使用从AcDbText派生的方法。

 

参见

AcDbObject, AcDbEntity, AcDbBlockReference, AcDbAttributeDefinition

 

成员

 

AcDbAttribute建构器和析构器

AcDbAttribute::~AcDbAttribute 函数

~AcDbAttribute();

析构器。

 

AcDbAttribute::AcDbAttribute 函数

AcDbAttribute(

const AcGePoint3d& position,

const char* text,

const char* tag,

AcDbObjectId style = AcDbObjectId::kNull);

position

输入属性的定位点

text

输入属性的文本字符串

tag

输入属性的标签字符串

style

输入被属性参考的AcDbTextStyleTableRecord的对象ID

此建构器使用传递的参数初始化属性对象。“`”和标签字符串的拷贝将被使用,因此调用者负责分配传递的字符串的内存。如果使用style,则style必须为一个有效的AcDbTextStyleTableRecord对象ID

另外,域长度(field length)初始化为0,标记(flags)初始化为0(即,非常数、可见、不预设、及不可校验),以及执行一个默认的新的AcDbText对象的所有初始化(除了文本和位置)。


AcDbAttribute();

默认建构器。域长度(field length)初始化为0,标记(flags)初始化为0(即,非常数、可见、不预设、及不可校验),标签(tag)初始化为0,另外,执行一个默认的新的AcDbText对象的所有初始化。

 

AcDbAttribute编辑函数

AcDbAttribute::setAttributeFromBlock 函数

Acad::ErrorStatus

setAttributeFromBlock(

const AcDbAttributeDefinition * pAttdef,

const AcGeMatrix3d& blkXform);

pAttdef

指向作为一个数据模板的属性定义实体的指针

blkXform

指向块变换矩阵的指针,这个矩阵由将作为属性宿主的blockReferenceAcDbBlockReference::blockTransform()方法返回。

使用pAttdef作为属性文本、实体和开始几何体的属性的模板(换言之,它从属性定义将此信息复制至属性中)。然后应用blkXform变换位置、比例和倾斜角,与INSERT命令执行结果相同。

最终结果与使用INSERT命令相同,如果成功返回Acad::eOk


Acad::ErrorStatus

setAttributeFromBlock(

const AcGeMatrix3d& blkXform);

blkXform

指向块变换矩阵的指针,这个矩阵由将作为属性宿主的blockReferenceAcDbBlockReference::blockTransform()方法返回。

应用blkXform至属性的几何的数据以变换位置、比例和倾斜角,与INSERT命令执行结果相同。属性的文本和实体属性数据不改变。

如果成功返回Acad::eOk

 

AcDbAttribute::setFieldLength 函数

Acad::ErrorStatus

setFieldLength(

Adesk::UInt16 length);

length

输入域长度值(field length value

设置length为属性的域长度值。这个值当前在AutoCAD中不使用。

域长度值对应DXF群组码73

如果成功返回Acad::eOk,如果传递的数据非法则返回Acad::eInvalidInput

 

AcDbAttribute::setInvisible 函数

Acad::ErrorStatus

setInvisible(

Adesk::Boolean invisible);

invisible

输入布尔值,表示属性是否可见

此函数设置属性的可见标记。如果invisibleAdesk::kTrue,则属性对象设为不可见。如果invisibleAdesk::kFalse,则属性对象设为可见。

此函数对应DXF群组码70中的位1(即,如果位1被设置,则属性不可见)。

如果成功返回Acad::eOk,如果传递的数据非法则返回Acad::eInvalidInput

 

AcDbAttribute::setTag 函数

Acad::ErrorStatus

setTag(

const char* newTag);

newTag

输入新的标签字符串

此函数设置属性的标签为newTag字符串的一份拷贝。如果炸开拥有属性的AcDbBlockReference,则标签字符串是标识符,因此属性转换回作为部分原始参考的块定义的AcDbAttributeDefinition

标签字符串对应DXF群组码2

如果成功返回Acad::eOk,如果传递的数据非法则返回Acad::eInvalidInput

 

AcDbAttribute杂项函数

AcDbAttribute::getClassID 函数

virtual Acad::ErrorStatus

getClassID(

CLSID* pClsid) const;

pClsid

未说明

Description to come

 

AcDbAttribute查询函数

AcDbAttribute::fieldLength 函数

Adesk::UInt16

fieldLength() const;

返回属性的域长度值。这个值不能当前在AutoCAD中使用。

域长度值对应DXF群组码73

 

AcDbAttribute::isConstant 函数

Adesk::Boolean

isConstant() const;

如果属性对象设为常数则返回Adesk::kTrue

此函数对应DXF群组码70中的位2(即,如果位2被设置,则属性将使用预设置值并不提示用户输入)。

注意:AutoCAD自身从不创建一个常AcDbAttribute对象。AutoCAD 在被参考的AcDbBlockTableRecord中基于AcDbAttributeDefinition对每个AcDbBlockReference创建AcDbAttribute对象。如果遇到一个常AcDbAttributeDefinition,则AutoCAD使用AcDbAttributeDefinition自身代替创建一个匹配的AcDbAttribute

 

AcDbAttribute::isInvisible 函数

Adesk::Boolean

isInvisible() const;

如果属性设为不可见则返回Adesk::kTrue

此函数对应DXF群组码70中的位1(即,如果位1被设置,则属性不可见)。

 

AcDbAttribute::isPreset 函数

Adesk::Boolean

isPreset() const;

如果属性对象有一个预设值且不提示用户输入,则返回Adesk::kTrue

此函数对应DXF群组码70中的位4(即,如果位4被设置,则属性将使用预设值且不提示用户输入)。

 

AcDbAttribute::isVerifiable 函数

Adesk::Boolean

isVerifiable() const;

如果属性对象设为校验用户输入,则返回Adesk::kTrue

此函数对应DXF群组码70中的位3(即,如果位3被设置,则属性将要求用户输入校验)。

 

AcDbAttribute::tag 函数

char *

tag() const;

此函数返回属性的一个标签字符串的指针。

此函数设置属性的标签为newTag字符串的一份拷贝。如果炸开拥有属性的AcDbBlockReference,则标签字符串是标识符,因此属性转换回作为部分原始参考的块定义的AcDbAttributeDefinition

此函数的调用者负责释放返回的字符串使用的内存。可使用acutDelString()函数实现这个功能。

标签字符串对应DXF群组码2