找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2103|回复: 5

[求助] 求助各位兄弟,在ObjectDBX或者ObjectArx里面怎么设置文字居中

[复制链接]

已领礼包: 3个

财富等级: 恭喜发财

发表于 2018-2-2 10:18:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
情况是这样的,最近有一批Dwg文件——上万个,需要修改特定的文字内容,我初步写了个小程序(用的是ObjectDBX方式)倒是把里面文字内容给修改了,但是打开图一看文字全部往后偏移了——即使原图里面把文字对齐方式设置为正中也不行,故求助各位怎么在ObjectDBX或者ObjectArx里面设置文字居中呢?!对了,目前手头可用的AutoCAD为2014或2016版本!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 13个

财富等级: 恭喜发财

发表于 2018-2-2 16:30:52 | 显示全部楼层
既然已经能修改了,说明环境,编译,链接都正常,只能是代码里面的问题了,你不贴代码,给不了建议。建议把完整的工程贴上来,帮你调试看看。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3个

财富等级: 恭喜发财

 楼主| 发表于 2018-2-5 09:17:50 | 显示全部楼层
本帖最后由 dotinfo 于 2018-2-5 09:21 编辑

你好,替换的方法我是这么写的,劳烦你帮我看下哪里有毛病:
using (DotNetDBX.AutoCADConnector acadConnector = new DotNetDBX.AutoCADConnector())
{
    AutoCAD.AcadApplication acadApp;
    AXDBLib.AxDbDocument document;    AXDBLib.AcadText axDbTextObj;
    object textAlignmentPoint;

    progId = "ObjectDBX.AxDbDocument.20";
    acadApp = acadConnector.Application;
    document = (AXDBLib.AxDbDocument)acadApp.GetInterfaceObject(progId);
    document.Open(fullFileName);

    foreach (AXDBLib.AcadEntity entity in document.ModelSpace)
    {
        axDbTextObj = entity as AXDBLib.AcadText;

        if (axDbTextObj != null)
        {
            textAlignmentPoint = axDbTextObj.TextAlignmentPoint;

            if (axDbTextObj.TextString == "实际坐落")
            {                                            
                axDbTextObj.TextString = "xx市xx区xx路xx号";//这里的值取决于从Excel读出来的内容

                //据网上的网友说先要设置对齐方式,再设置对齐点这样才有效——实际上并没有效果
                axDbTextObj.HorizontalAlignment = AXDBLib.AcHorizontalAlignment.acHorizontalAlignmentCenter;
                axDbTextObj.VerticalAlignment = AXDBLib.AcVerticalAlignment.acVerticalAlignmentMiddle;
                axDbTextObj.Alignment = AXDBLib.AcAlignment.acAlignmentMiddleCenter;
                axDbTextObj.TextAlignmentPoint = textAlignmentPoint;
            }
        }
    }
}


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3个

财富等级: 恭喜发财

 楼主| 发表于 2018-2-7 21:25:32 | 显示全部楼层
另据观察,在AutoCAD窗口中把文字对象的宽度因子放大,再将其放回1.0文字就居中了,但在代码里面按同样思路设置ScaleFactor却依然没效果——这就很想不通了……
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-2-7 21:35:21 | 显示全部楼层
本帖最后由 newer 于 2018-2-7 21:36 编辑
你修改的文字,点夹点看,是不是夹点位置异常了?
在LISP论坛,以前讨论过,DBX下,有BUG,有过LISP的解决方案,你搜索看下。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3个

财富等级: 恭喜发财

 楼主| 发表于 2018-2-7 21:45:26 | 显示全部楼层

谢谢版主!那就不接着折腾了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-17 20:24 , Processed in 0.206242 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表