当前位置:知识库 / C#开发 / 详情
在c#如何插入块图?
插入块图
C#开发|冯美娟|2018-12-13 10:40
回答:

主要用到函数说明:


MxDrawXCustomFunction::Mx_InsertBlockEx


插入块图,详细说明如下:


参数说明

CString sFileName

图块文件名

CString sBlkName

图块的块名

INT iRC = kReadAll

指定需要读取的内容,不需要读取的内容可以不读取,这样能提高读取dwg文件的速度,可以取如下值: enum ReadContent { kReadAll = 0xFFFFFFFF, // 取值为0自动变成kReadAll kReadNull = 0x0, // 下面数据都不读取 kReadExData = 0x1, kReadHandle = 0x2, kReadBlockRefPreviewIcon = 0x4, kReadBlockLayoutName = 0x8, kReadObjectsDictionary = 0x10, // 是否读对象字典,如果不读,字典下所有数据都不会读取. kReadGroupDict = 0x20, // 是否读取组字典 kReadLayoutDict = 0x40, kReadMlineStyleDict = 0x80, kReadImageDict = 0x100, kReadXrecord = 0x200, kReadDrawOrder = 0x400, kReadxData = 0x800, kReadExRecord = 0x1000, kReadExternalReference = 0x2000, kReadCustomEntity = 0x4000 // 是否读取自定义实体,如果该为项为真,则自动让kReadHandle值也为真,因为自定义实体需要名柄支持. };

CString sPassword = ""

文件读取密码

isUpdataSameNameBlock

如果插入的数据库的图块名与当前数据库的图块名同名,需要不需要重新更新该图块。默认不是会更新的


C#代码实现如下:


            MxDrawResbuf param = new MxDrawResbuf();
            param.AddString("G:\1.dwg");
            param.AddString("Test");
            param.AddLong(0);
            param.AddString("");
            param.AddLong(1);
            axMxDrawX1.CallEx("Mx_InsertBlockEx", param);

            axMxDrawX1.DrawBlockReference(0, 0, "Test", 1.0, 0.0);
            axMxDrawX1.ZoomAll();
            axMxDrawX1.UpdateDisplay();
相关问题
怎么获取光标相对窗口的坐标呢?
能不能修改原点坐标?
如何调用导角命令,并返回导角的圆弧对象?
如何调用移动命令?
如何读取属性块?
打碎块的使用场景有哪些呢?
可以支持多线程修改数据吗?
如何写块?
如何缩放实体到视区?
坐标原点怎么隐藏?
梦想CAD是专业的CAD插件(控件),可轻松在网页、手机及BS/CS程序中浏览编辑DWG文件,不需安装AutoCAD即可运行。经十余年累积已非常稳定可靠,有关键的空间搜索算法,并使用汇编优化,可同时处理50万级实体,有非常高的图形显示和处理效率。
联系我们
技术TEL:400-888-5703
185-8173-1060
客服 QQ: 3570505660
技术 QQ: 6884123
VIP服务购买
销售TEL:156-8136-8971
销售QQ:710714273
用户交流
梦想绘图资讯群Ⅰ:73281982
梦想绘图资讯群Ⅱ:112199959
MxCAD软件更新通知群Ⅰ:515771658
技术I:QQ
6884123
客服I:QQ
3570505660
销售QQ
710714273
联系电话400-888-5703