乐筑天下

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

关于自定义实体

[复制链接]

21

主题

97

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
181
发表于 2014-10-10 01:10:00 | 显示全部楼层 |阅读模式
大家好,以下是我参照网上自定义实体的代码改写的。主要是为块添加一个文字注记。在使用过程中,被添加的这个文字能很好的显示,但是有一个问题是,这个块中会额外生成一些像参数之类的文字,数量不定。我不知道这是为什么,请哪位朋友指点一下!
   public override bool WorldDraw(Drawable drawable, WorldDraw wd)
        {
            //如果为直线,则进行规则重定义来改变直线的外形
            if (drawable is BlockReference && Properties.Settings.Default.WordViewEd)
            {
                BlockReference pesBlk = drawable as BlockReference;
                if (pesBlk.XData == null && !WendaoPipesCADPro.XDataEditor.FieldExists(pesBlk.XData, "显示内容"))
                {
                    return false;
                }
                //绘制规则重定义过的属性,由下面的SetAttributes函数进行控制
                base.WorldDraw(pesBlk, wd);
                string showStr = WendaoPipesCADPro.XDataEditor.GetXDataFieldValue(pesBlk.XData, "显示内容");
                if (!pesBlk.Id.IsNull && showStr.Trim().ToUpper() != "")
                {
                    wd.SubEntityTraits.Color = Autodesk..Colors.EntityColor.LookUpAci(0, 0, 0);
                    wd.SubEntityTraits.LineWeight = LineWeight.LineWeight000;
                    var pipePoint = new ExtrudedSurface();
                    WdPoint3d wdPesPtTxtPt = new WdPoint3d(pesBlk.Position.ToArray()) + new WdPoint3d(0.6, 0.6, 0);
                    wd.Geometry.Text(new Point3d(wdPesPtTxtPt.ToArray()), new Vector3d(0, 0, 1), new Vector3d(1, 1, 0), 0.5, 0.8, 0, showStr);                    
                    pipePoint.WorldDraw(wd);  
                    pipePoint.Dispose();
                }
                return true;
            }
            return base.WorldDraw(drawable, wd);
        }
以下是效果图:

xrbjzrdngro.jpg

xrbjzrdngro.jpg


图中YS***中我添加的,但其他的它是系统自己生成的,一直想把它取消掉,但没有找到相应的办法解决,不知哪位朋友可以帮我想一下办法。
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2014-10-10 07:47:00 | 显示全部楼层
base.WorldDraw(pesBlk,wd)应该去掉吧
回复

使用道具 举报

21

主题

97

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
181
发表于 2014-10-10 08:43:00 | 显示全部楼层

没有这句,添加的文字不会显示。请问这个文字的对正方式应该怎么设置啊?
回复

使用道具 举报

21

主题

97

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
181
发表于 2014-10-10 09:02:00 | 显示全部楼层

抱歉,我说错了,应该是没有base.WorldDraw(pesBlk,wd)的话,块的样子就显示不出来。
回复

使用道具 举报

21

主题

97

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
181
发表于 2014-10-10 09:04:00 | 显示全部楼层

但文字就显示正确了,不再有多余的文字。块样显不出来。
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2014-10-10 10:10:00 | 显示全部楼层
太明白你的需求 属性块不就可以满足要求了?
回复

使用道具 举报

21

主题

97

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
181
发表于 2014-10-10 11:02:00 | 显示全部楼层

找到问题了,原来那个文字是我自定义线所造成的,线的定义条件设置不足,竟把块中的线也定义了。只是现在有个问题是文字的对正方式没有找到方法设置。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 19:55 , Processed in 0.560621 second(s), 80 queries .

© 2020-2025 乐筑天下

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