乐筑天下

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

更改多行文字的对齐方式,但保留实际文字位置

[复制链接]

1

主题

1

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2015-8-27 10:21:10 | 显示全部楼层 |阅读模式
嗨!
我构建了一个AutoCAD插件,它用一个属性块替换了一些DBText和MTextObject。我的问题:一些MTexts的对齐设置为“左上”,一些设置为“左下”。
替换MTexts的块的设计使其与文本位置完美匹配,如果它设置为“左下”-因为大多数MTexts对象都是这样绘制的;我想将所有MTexts对齐更改为“左下”,因此我可以对所有MTexts对象使用相同的块。
当我在AutoCAD中更改对齐方式时,实际的文本位置保持不变-对齐属性设置为新值,文本移动到新位置,因此字母的位置保持不变同样的
有人能让我开始如何做到这一点吗?我不知道如何解决这个问题...下面我附上了一个小测试命令来更改。MTexts的附件。
  1.         [CommandMethod("MTextJustificationTest")]
  2.         public void MTextJustificationTest()
  3.         {
  4.             Database db = Autodesk.AutoCAD.ApplicationServices.Core.Application.DocumentManager.MdiActiveDocument.Database;
  5.             Editor ed = Autodesk.AutoCAD.ApplicationServices.Core.Application.DocumentManager.MdiActiveDocument.Editor;
  6.             Point3d startPos = new Point3d();
  7.             using (Transaction tr = db.TransactionManager.StartTransaction())
  8.             {
  9.                 TypedValue[] filterDxf = new TypedValue[]
  10.                 {
  11.                     new TypedValue((int)DxfCode.Start,"MTEXT")
  12.                 };
  13.                 SelectionFilter selectionFilter = new SelectionFilter(filterDxf);
  14.                 PromptSelectionResult psr = ed.SelectAll(selectionFilter);
  15.                 SelectionSet selectionSet = psr.Value;
  16.                 foreach (var objId in psr.Value.GetObjectIds())
  17.                 {
  18.                     MText mText = tr.GetObject(objId, OpenMode.ForWrite) as MText;
  19.                     if (mText.Attachment != AttachmentPoint.BottomLeft)
  20.                     {
  21.                         startPos = mText.Location;
  22.                         // How to get the _real_ text position?
  23.                         mText.Attachment = AttachmentPoint.BottomLeft;
  24.                     }
  25.                 }
  26.                 tr.Commit();
  27.             }
  28.         }

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

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

使用道具 举报

129

主题

422

帖子

5

银币

中流砥柱

Rank: 25

铜币
936
发表于 2015-8-30 01:38:01 | 显示全部楼层
我忍不住会告诉你,我用.Net处理文本样式和属性已经试了一百次了,但总是有一些小错误,绘图中的一些东西,或者代码中的东西,或者任何让它成为战利品的东西。我决定继续为他们使用autolisp函数。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-2-5 00:51 , Processed in 0.274532 second(s), 67 queries .

© 2020-2025 乐筑天下

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