请选择 进入手机版 | 继续访问电脑版
搜索
房产
装修
汽车
婚嫁
健康
理财
旅游
美食
跳蚤
二手房
租房
招聘
二手车
教育
茶座
我要买房
买东西
装修家居
交友
职场
生活
网购
亲子
情感
龙城车友
找美食
谈婚论嫁
美女
兴趣
八卦
宠物
手机

AutoCad 二次开发 .net 之相同块的自动编号

[复制链接]
查看: 85|回复: 0

7856

主题

1万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
31850
发表于 2019-11-9 10:21 | 显示全部楼层 |阅读模式
重要步伐:一、获得一个块的id:
AutoCad 二次开发 .net 之相同块的自动编号  游戏 1347657-20191108232147987-522905091
其中oId就是了。二、经过次oId获得块援用blkRef:
AutoCad 二次开发 .net 之相同块的自动编号  游戏 1347657-20191108232337956-394653285
三、经过它获得全数类似的块援用的id聚集:
AutoCad 二次开发 .net 之相同块的自动编号  游戏 1347657-20191108232356088-1881464204
四、经过步伐三的聚集获得全数的块援用获得聚集listBr:
AutoCad 二次开发 .net 之相同块的自动编号  游戏 1347657-20191108232414464-760525566
五、遍历listBr,建立DBText编号 ,肯定DBText在图中插入的位置,加入到聚集listDBText:
AutoCad 二次开发 .net 之相同块的自动编号  游戏 1347657-20191108232631688-1406971671
在做第五步伐前,先要获得TextStyleId:
AutoCad 二次开发 .net 之相同块的自动编号  游戏 1347657-20191108232428290-1400478262
末端经过扩大方式加入到模子空间:listDBText.ToSpace();ToSpace方式截图:
AutoCad 二次开发 .net 之相同块的自动编号  游戏 1347657-20191108232441143-1798166305
必要留意的地方:必定如果块界说,在利用dbText.AlignmentPoint之前必定要写排序方式这里用的是:dbText.HorizontalMode = TextHorizontalMode.TextMid;  完整代码:
AutoCad 二次开发 .net 之相同块的自动编号  游戏 ContractedBlock
AutoCad 二次开发 .net 之相同块的自动编号  游戏 ExpandedBlockStart
  1. using System;using System.Collections.Generic;using System.Linq;using System.Text;using Autodesk.AutoCAD.ApplicationServices;using Autodesk.AutoCAD.EditorInput;using Autodesk.AutoCAD.DatabaseServices;using Autodesk.AutoCAD.Runtime;using Autodesk.AutoCAD.Geometry;namespace MulitySortNum{    public class SortNum    {        private Document doc = Application.DocumentManager.MdiActiveDocument;        private Database db = Application.DocumentManager.MdiActiveDocument.Database;        private Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;        private string str = "LL";        public int index = 1;        [CommandMethod("NumSort1")]        public void NumSort1()        {            index = 1;            var propEnt = new PromptEntityOptions("请选摘要编号的一个块\n");            var propRes = ed.GetEntity(propEnt);            if (propRes.Status != PromptStatus.OK)            {                return;            }            var oId = propRes.ObjectId;            ObjectIdCollection objIds = null;            List listDBText = new List();            using (Transaction trans = db.TransactionManager.StartTransaction())            {               var blkRef = trans.GetObject(oId, OpenMode.ForRead) as BlockReference;                if (blkRef == null)                {                    Application.ShowAlertDialog("请挑选块界说");                    return;                }                var recId = blkRef.BlockTableRecord;                var blkTblRec = trans.GetObject(recId, OpenMode.ForRead) as BlockTableRecord;                objIds = blkTblRec.GetBlockReferenceIds(true, false);                                var txtStlTbl = trans.GetObject(db.TextStyleTableId, OpenMode.ForRead) as TextStyleTable;                var txtstyleId = txtStlTbl["Standard"];                List listBr = new List();                foreach (ObjectId objectId in objIds)                {                   var blkTempRef = trans.GetObject(objectId, OpenMode.ForRead) as BlockReference;                    listBr.Add(blkTempRef);                                    }                listBr.OrderByDescending(b => b.Position.Y).ToList().ForEach(blkTempRef =>                {                    DBText dbText = new DBText();                    dbText.TextString = str + "_" + index++;                    dbText.TextStyleId = txtstyleId;                    var pointMin = blkTempRef.Bounds.Value.MinPoint;                    var pointMax = blkTempRef.Bounds.Value.MaxPoint;                    dbText.HorizontalMode = TextHorizontalMode.TextMid;                    dbText.AlignmentPoint = pointMin + Vector3d.YAxis * 2 + Vector3d.XAxis * Math.Abs(pointMax.X - pointMin.X) / 2;                    listDBText.Add(dbText);                });                trans.Commit();            }            listDBText.ToSpace();        }    }}
复制代码
View Code

免责声明:假如加害了您的权益,请联系站长,我们会实时删除侵权内容,感谢合作!

本帖子中包含更多资源

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

x
回复

使用道具 举报

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

本版积分规则

Copyright © 2006-2014 妈妈网-中国妈妈第一,是怀孕、育儿、健康等知识交流传播首选平台 版权所有 法律顾问:高律师 客服电话:0791-88289918
技术支持:迪恩网络科技公司  Powered by Discuz! X3.2
快速回复 返回顶部 返回列表