栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

cad.net二次 属性块

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

cad.net二次 属性块

CAD 二次开发–属性块 Block和BlockReference
https://my.oschina.net/u/4335170/blog/3335912

AutoCAD二次开发(.Net)之块的操作(获取名称、修改名称)
https://blog.csdn.net/qq_21489689/article/details/78928349

C#.Net实现AutoCAD块属性提取
http://www.voidcn.com/article/p-hljugijg-bwv.html

CAD 二次开发–属性块 Block和BlockReference
https://www.cnblogs.com/mqxs/p/11977207.html

AutoCAD.NET 二次开发–插入外部文件中的块
https://zhuanlan.zhihu.com/p/32393930

插入块参照
https://www.cnblogs.com/sly-tongtong/p/4253525.html
引入外部快并插入块参照
https://www.cnblogs.com/lionmxs/articles/10304318.html

“块定义”与“块参照”的区别
https://blog.csdn.net/booster123456789/article/details/9956549

读取DWG文件将全部实体变为一个块
https://blog.csdn.net/qq_41721686/article/details/100895546?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160609398219725225001151%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=160609398219725225001151&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v28-14-100895546.first_rank_ecpm_v3_pc_rank_v2&utm_term=cad+%E4%BA%8C%E6%AC%A1%E5%BC%80%E5%8F%91+%E7%94%BB%E8%A1%A8&spm=1018.2118.3001.4449

块表的创建(一、二)
https://wenku.baidu.com/view/9462ea795acfa1c7aa00cc36.html
https://wenku.baidu.com/view/03eb3606b52acfc789ebc936.html

基于C#的AutoCAD二次开发之块操作(画了一个半圆,可以添加一些文字)
https://blog.csdn.net/qq_41441896/article/details/104189903?utm_medium=distribute.pc_relevant.none-task-blog-OPENSEARCH-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-1.control

autocad.net中blocktable,blocktablerecord,blockreference,modelspace,paperspace,layout,viewport的关系
(包括了选择集、视口等等)
https://www.cnblogs.com/swtool/p/SWTOOL_00016.html

[CommandMethod("test")]
        public static void test()
        {
            Document doc = Application.DocumentManager.MdiActiveDocument;
            Database db = doc.Database;
            Editor ed = doc.Editor;
            //定义所有的视口ID集合
            ObjectIdCollection viewportIDs = new ObjectIdCollection();
            viewportIDs = db.GetViewports(true);
            List objectsIdsErase = new List();
            PromptEntityOptions peo = new PromptEntityOptions("n请选择一个视口!");
            peo.SetRejectMessage("n当前选择的图元不是视口!");
            peo.AddAllowedClass(typeof(Viewport), true);
            PromptEntityResult per = ed.GetEntity(peo);
            if (per.Status != PromptStatus.OK)
                return;
            using (Transaction tr = db.TransactionManager.StartTransaction())
            {
                //获取当前空间的块表记录
                BlockTableRecord btr = (BlockTableRecord)tr.GetObject(db.CurrentSpaceId, OpenMode.ForRead);
                //获取当前空间中的当前布局
                Layout lay = (Layout)tr.GetObject(btr.LayoutId, OpenMode.ForRead);
                //布局名称
                ed.WriteMessage("nLayoutName:" + lay.LayoutName);
                //布局ID
                ed.WriteMessage("nId:" + lay.Id.ToString());
                ed.WriteMessage("nObjectId:" + lay.ObjectId.ToString());
                ed.WriteMessage("nbtr.LayoutId:" + btr.LayoutId);
                //当前空间ID
                ed.WriteMessage("nCurrentSpaceId:" + lay.BlockTableRecordId.ToString());
                //通过选择集方式访问视口对象
                Viewport vp = (Viewport)tr.GetObject(per.ObjectId, OpenMode.ForRead);
                ed.WriteMessage("nViewPort OwnerId:" + vp.OwnerId);
                ed.WriteMessage("nLayout OwnerId:" + lay.OwnerId);
                ed.WriteMessage("nbtr OwnerId:" + btr.OwnerId);
                
                //取得图纸空间中所有浮动视口对象
                Viewport Vports = (Viewport)tr.GetObject(db.PaperSpaceVportId, OpenMode.ForRead);
                foreach (ObjectId id in viewportIDs)
                {
                    //通过遍历视口ID方式访问视口对象
                    Viewport vp1 = id.GetObject(OpenMode.ForRead) as Viewport;
                }
                Matrix3d PsToMsTransForm = PaperToModel(vp);
                //取得当前图形中所有的BlockTable
                BlockTable bt = (BlockTable)db.BlockTableId.GetObject(OpenMode.ForRead);
                //取得当前图形中所有的BlockTable
                BlockTable bt_other = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForRead);
                //取得当前空间的所有块表记录
                BlockTableRecord btr_CurrentSpace = (BlockTableRecord)tr.GetObject(db.CurrentSpaceId, OpenMode.ForRead);
                ed.WriteMessage("n" + btr_CurrentSpace.Name);
                //取得模型空间中所有的块表记录
                BlockTableRecord btr_model = (BlockTableRecord)bt["*Model_Space"].GetObject(OpenMode.ForRead);
                ed.WriteMessage("n" + btr_model.Name);
                //取得图纸空间中所有的块表记录
                BlockTableRecord btr_paper = (BlockTableRecord)bt["*Paper_Space"].GetObject(OpenMode.ForRead);
                ed.WriteMessage("n" + btr_paper.Name);
                //取得块名为TestBlock的记录
                BlockTableRecord btr_block = (BlockTableRecord)bt["TestBlock"].GetObject(OpenMode.ForRead);
                ed.WriteMessage("n块名为:{0},块属于{1}" , btr_block.Name,btr_block.OwnerId);
                tr.Commit();
            }
        }

database是第1级,就是相当于一个DWG文件,它下面主要包含symbol table和各种dictionary
symbol table是第2级,它包含blocktable、dimstyletable、layertable等
dictionary是第2级,它下面包含第3级有名词典,它包含所有acad_color、acad_layout、acad_group等第4级词典
blocktablerecord是第4级,为块定义,包含ModelSpace、PaperSpace、PaperSpaceX,以及所有其它的块定义
blockreference是第5级,它是第4级中常规的块定义插入到Space中的具体体现,只属于ModelSpace、PaperSpace、PaperSpaceX这几个特殊的blocktablerecord
entity也是属于第5级,同blockreference是一个级别,只属于ModelSpace、PaperSpace、PaperSpaceX这几个特殊的blocktablerecord;但是entity同时也是常规块中的一部份
layout1、布局1也是第5级属于acad_layout


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/911535.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号