乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 99|回复: 5

Mleader Mtext Attachment/Alignment?

[复制链接]

85

主题

404

帖子

7

银币

中流砥柱

Rank: 25

铜币
751
发表于 2018-8-6 13:18:13 | 显示全部楼层 |阅读模式
遇到程序创建的MLeaders的麻烦,如果角度是从右到左,则引线将交叉文本,我试图避免这种情况。如果用户抓地力编辑了引线,它会自动更正其自身。我无法使用MgdDbg snoop来查找两者之间的更改,因为它由于某种原因在MLeaders上崩溃 Leader creation code:// create the MLeader。
MLeader label = new MLeader();。
标签,SetDatabaseDefaults();。
标签,ContentType = ContentType.MTextContent;。
标签,层 = 层名;。
int ldNum = label.AddLeader();。
int idx = label.AddLeaderLine(ldNum);。
标签,AddFirstVertex(idx,leaderPoint);。
#if ACAD_APP。
标签,AddLastVertex(idx, textPoint);//。
#endif。
标签,SetLastVertex(idx, textPoint);。

文本的新 Mtext。
MText mText = new MText();。
mText.SetDatabaseDefaults();。
mText.Contents = labelString;。
mText.Rotation = rotation;。
mText.TextHeight = textHeight;。
mText.TextStyleId = Styles.GetTextStyleID(AID_Strings.PipeSizeTextStyle);。
mText.SetAttachmentMovingLocation(AttachmentPoint.MiddleCenter);。

标签,MText = mText;。

// 将引线添加到 currspace。
BlockTableRecord curSpace =。
(BlockTableRecord)tr.GetObject(Active.Database.CurrentSpaceId, OpenMode.ForWrite);。
curSpace.AppendEntity(label);。
断续器AddNewlyCreatedDBObject(label, true);。
我已经在 MLeader 事件中查找了刷新方法或要调用的内容,但找不到任何内容。 在附加的示例绘图中,两个引线都是用代码创建的,下部引线只是握柄编辑。有什么想法吗?。

fxe5ki3z02n.gif

fxe5ki3z02n.gif

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复

zdjzma453da.gif

zdjzma453da.gif
回复

使用道具 举报

51

主题

613

帖子

9

银币

中流砥柱

Rank: 25

铜币
815
发表于 2018-8-6 14:23:13 | 显示全部楼层
仅当您选择夹点或执行重新生成时,mleader是否会自行更正?
回复

使用道具 举报

85

主题

404

帖子

7

银币

中流砥柱

Rank: 25

铜币
751
发表于 2018-8-6 14:24:44 | 显示全部楼层
仅适用于夹点编辑。Regen没用,虽然我试过了
这几乎像是需要重新计算什么的。
回复

使用道具 举报

51

主题

613

帖子

9

银币

中流砥柱

Rank: 25

铜币
815
发表于 2018-8-6 14:54:57 | 显示全部楼层
改变AttachmentPoint是否表现出相同的“翻转”动作?

mText.SetAttachmentMovingLocation(AttachmentPoint.MiddleCenter);

mText.SetAttachmentMovingLocation(AttachmentPoint.MiddleRight);
回复

使用道具 举报

85

主题

404

帖子

7

银币

中流砥柱

Rank: 25

铜币
751
发表于 2018-8-6 15:54:21 | 显示全部楼层
mText.SetAttachmentMovingLocation(AttachmentPoint.MiddleCenter);显示相同的翻转行为,它只是将文本翻转到夹点的另一侧
我实际上对该行进行了注释,得到了相同的结果。我想这是我以前试图整理这个问题的一个残余。我可能会把它拿走
我不知道这是AutoCAD的MLeader实现中的一些古怪之处,还是我搞砸了
编辑:已解决。(sorta)
从Kean那里看这篇文章,我根据相关点的X值设置了狗腿向量。有趣的是,BricsCAD不喜欢这样,所以我把它放在了#IF语句中。代码现在看起来是这样的:
//文本的新多行文本
MText:MText=new-MText()
mText.SetDatabaseDefaults()
多行文字。内容=标签串
多行文字。旋转=旋转
多行文字。TextHeight=TextHeight
多行文字。TextStyleId=Styles.GetTextStyleID(AID_Strings.PipeSizeTextStyle)
//创建MLeader
MLeader标签=新的MLeader()
label.SetDatabaseDefaults()
标签。ContentType=ContentType.MTextContent
标签。层=层名称
int-ldNum=label.AddLeader()
int-idx=label.AddLeaderLine(ldNum)
label.AddFirstVertex(idx,leaderPoint)
#if ACAD_APP//wird kludge修复程序适用于Autodesk
标签。AddLastVertex(idx,textPoint)
<div>Vector3d dl=新的Vector3d((textPoint.X>=leaderPoint.X?1:-1),0,0)
标签。SETDOGLOG(idx,dl)
#endif
标签。SetLastVertex(idx,textPoint)
标签。多行文字=多行文字
//将mleader添加到currspace
BlockTableRecord curSpace=
(BlockTableRecord)tr.GetObject(Active.Database.CurrentSpaceId,OpenMode.ForWrite)
curSpace.AppendEntity(标签)
tr.addNewlyCreatedBobObject(标签,true)
回复

使用道具 举报

5

主题

29

帖子

1

银币

初来乍到

Rank: 1

铜币
49
发表于 2019-7-1 09:43:38 | 显示全部楼层
到目前为止,我有一个类似的问题,如果我在“tr”后面加上下面一行。AddNewlyCreatedDBObject(label,true);"我的领导总是水平的。有没有可能通过移动AttchmentPoint来解决您的问题。添加新对象后的MiddleCenter?
"标签。TextAttachmentDirection = TextAttachmentDirection。AttachmentHorizontal”
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2024-11-22 08:41 , Processed in 0.160059 second(s), 67 queries .

© 2020-2024 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表