dalihua 发表于 2010-6-16 11:09:00

[原创]匿名块中,文字位置不能出现在指定位置

‘建立了一个匿名块,并在块中加入属性,标记其属性
’运行后,其他文字都正常,就是dbm属性位置不对,
假设文字位置是(-40,60),但实际的插入位置坐标大概是(-40,332)
十分苦恼,不知道哪里有问题
请各位高手指教

Set attributeObj = blkDef.AddAttribute(cd.DbmTextHeight, acAttributeModeInvisible, "插入耦合器类型", DbmBase, "耦合器类型", "Couple" & CStr(CoupleStyle))
'增加XXdB属性
ts.SetCurrentTextSty ("DbTextStyle")
Set attributeObj = blkDef.AddAttribute(cd.DbTextHeight, acAttributeModeNormal, "插入耦合器型号", DbBase, "耦合器型号", CStr(CoupleDb))
attributeObj.alignment = DbAlignment
attributeObj.TextAlignmentPoint = DbBase '重定义对齐点
attributeObj.Rotate DbBase, DbRoation
'增加TX-YF属性
ts.SetCurrentTextSty ("TFTextStyle")
Set attributeObj = blkDef.AddAttribute(cd.TfTextHeight, acAttributeModeNormal, "插入耦合器编号", TfBase, "耦合器编号", CStr(CoupleTF))
attributeObj.alignment = TfAlignment   '居中
attributeObj.TextAlignmentPoint = TfBase '重定义对齐点
attributeObj.Rotate TfBase, TfRoation
'增加dBm属性
ts.SetCurrentTextSty ("DbmTextStyle")
Set attributeObj = blkDef.AddAttribute(cd.DbmTextHeight, acAttributeModeNormal, "插入耦合器功率", DbmBase, "耦合器功率", CStr(CoupleDbm) & "dBm")
attributeObj.alignment = DbmAlignment '右下角
attributeObj.TextAlignmentPoint = DbmBase '重定义对齐点
attributeObj.Rotate DbmBase, DbmRoation
ThisDrawing.Regen True
'插入该匿名块
Set Dc.Couple = InsertAnonymousBlkRef(InserPoint, BeiShu)


dalihua 发表于 2010-6-16 22:31:00

<p>经过分析,是dBm的文字,好像是多行文字,所以与插入点之间的距离是mtext底部,但10db,或者t10-10F,都是一样创建的啊,为什么他们是单行文字呢</p>

dalihua 发表于 2010-6-16 23:38:00

经过试验,得出结论,当对齐方式是bottomright,bottom(left,middle)时候会出现这种情况,解决方式是把bottom去掉,直接用left,right,middle等!

houlinbo 发表于 2010-6-17 09:35:00

对,我也是这么做的
页: [1]
查看完整版本: [原创]匿名块中,文字位置不能出现在指定位置