修改属性块的比例问题
对于属性块,在autocad中块的属性面板中修改其XYZ的比例时,其属性标注的大小、位置会随着比例变化。但是在程序中修改BlockReference的ScaleFactors后,其属性标注的大小及位置并不改变。之后,遍历BlockReference的AttributeCollection,获取到每个AttributeReference。这里可以设置AttributeReference的高度,但是其Position或者AligmentPoint却无法通过程序改变。请教各位大神,要怎么通过程序改变AttributeReference的位置?
public bool LockPositionInBlock { get; }
Autodesk.AutoCAD.DatabaseServices.AttributeReference 的成员
public bool LockPositionInBlock { set; get; }
Autodesk.AutoCAD.DatabaseServices.AttributeDefinition 的成员 sieben 发表于 2012-11-23 22:54 static/image/common/back.gif
public bool LockPositionInBlock { get; }
Autodesk.AutoCAD.DatabaseServices.AttributeReference 的 ...
多谢,问题解决了。不过不知道你看的是哪个版本的帮助,我用的autocad map 3d 2012,和你的还有点差别。
我定义的属性块中有些属性的位置是锁定的,有些没锁定,有些设置了对齐方式,另外的没有。具体实现代码如下:
AttributeReference.LockPositionInBlock = false;
try
{
AttributeReference.Alignment = AttributeReference.Alignment.ScaleBy(TansScale,BlockReference.Position);
}
catch
{
AttributeReference.Position= AttributeReference.Position.ScaleBy(TansScale,BlockReference.Position);
}
AttributeReference.LockPositionInBlock = true;
高手 能不能来段完整的?小弟正被这问题困扰着呢!
备忘:
double scale =2; //需要放大 or缩小的倍数
BlockReference br = ent as BlockReference;
Matrix3d sMtx = Matrix3d.Scaling(scale, br.Position);
br.TransformBy(sMtx);
页:
[1]