1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
        private void InsertImage()
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Filter = "jpg 文件(*.jgp)|*.jpg";
 
            if (ofd.ShowDialog() != DialogResult.OK)
            {
                return;    
            }
 
            Image tmpImage = null;
            try
            {
                tmpImage = Image.FromFile(ofd.FileName);
            }
            catch(Exception exp)
            {
                MessageBox.Show(exp.Message);
                return;
            }
 
            if (tmpImage == null)
                return;
 
            double dW = tmpImage.Width;
            double dH = tmpImage.Height;
            tmpImage = null;
 
            // 图片文件的插入点。
            MxDrawPoint point = (MxDrawPoint)(axMxDrawX1.GetPoint(false,0,0, "\n 指定插入点:") );
            if (point == null)
                return;
 
 
            string sFilePath = ofd.FileName;
            string sFileName = sFilePath;
 
 
            MxDrawDatabase   database = (MxDrawDatabase)(axMxDrawX1.GetDatabase() );
            MxDrawDictionary dict = database.GetNamedObjectsDictionary();
            if (dict == null)
                return;
 
            MxDrawDictionary imageDict = (MxDrawDictionary)(dict.GetAt("ACAD_IMAGE_DICT"false) );
            if(imageDict == null)
            {
                // 增加一个字典对象。
                imageDict = (MxDrawDictionary)(dict.AddObject("ACAD_IMAGE_DICT""McDbDictionary") );
            }
 
            if (imageDict == null)
                return;
 
            MxDrawRasterImageDef imgedef = (MxDrawRasterImageDef)(imageDict.GetAt(sFileName, false) );
            if(imgedef == null)
            {
                imgedef = (MxDrawRasterImageDef)(imageDict.AddObject(sFileName, "McDbRasterImageDef"));
                if (imgedef == null)
                    return;
            }
            imgedef.SourceFileName = sFileName;
 
            MxDrawBlockTableRecord curSpace = database.CurrentSpace();
            MxDrawVector3d uCorner = new MxDrawVector3d();
            uCorner.x  = dW;
 
            MxDrawVector3d vOnPlane = new MxDrawVector3d();
            vOnPlane.y = dH;
 
            curSpace.AddImage(point.x,point.y,uCorner.x,uCorner.y, vOnPlane.x,vOnPlane.y, imgedef.ObjectID);
 
            MxDrawApplication app = new MxDrawApplication();
            app.ZoomAll();
        }

CAD插入jpg的更多相关文章

  1. CAD插入块后坐标不匹配

    有两张图,将一张图复制(CTRL+V),再另一张图中粘贴到原坐标(pasteorig),两张图可以很好匹配,但将一张图以外部参照的方式插入另一张图却发现图形无法匹配.因为没有看到图纸,所以我也没法准确 ...

  2. CAD插入图片

    在CAD设计绘图时,需要插入外部图片,可以设置图片的缩放比例.旋转角度.图片显示文件名等属性. 主要用到函数说明: _DMxDrawX::DrawImageMark 绘图制一个图象标记对象.详细说明如 ...

  3. CAD插入背景图片(网页版)

    把图片作为背景图片可见但是不能编辑操作. 主要用到函数说明: _DMxDrawX::DrawImageToBackground 绘光栅图到背景.详细说明如下: 参数 说明 BSTR sFileName ...

  4. CAD插入图块前修改图块文字

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...

  5. CAD插入非等比例的图块

    主要用到函数说明: _DMxDrawX::InsertBlock 向控件数据库中插入一个图块,不用它插入匿名块.详细说明如下: 参数 说明 BSTR pszDwgFileName 图块定义的dwg 文 ...

  6. 在CAD中插入谷歌地球卫星地图

    本文主要介绍如何在CAD中插入谷歌地球卫星地图,作为参照光栅图像.谷歌地球卫星地图使用“迈高图-地图数据下载器”(以下简称:迈高图)下载.迈高图会给出相关插入参数(插入点和缩放比例),保证插入卫星地图 ...

  7. C#实现在CAD图纸中插入另一个DWG图块的代码

    C#实现在CAD图纸中插入另一个DWG图块的代码 PromptPointResult ppr = ed.GetPoint("请选择插入点:"); Point3d pt = ppr. ...

  8. word/excel/cad中插入二维码

    1.有需求为在word文档中插入二维码,寻访度娘后,大部分人推荐使用QRmaker制作. 2.找寻QRmaker,网上很多都是1.1版本,后来才知道这个版本有问题(对中文支持不好),偶然得到1.3的版 ...

  9. CAD把一个DWG文件中的多个图框一次性全部插入到打开的DWG文件中

    主要用到函数说明: _DMxDrawX::InsertBlock 向控件数据库中插入一个图块,不用它插入匿名块,详细说明如下: 参数 说明 BSTR pszDwgFileName 图块定义的dwg 文 ...

随机推荐

  1. 多个线程对hashmap进行put操作的异常

    多个线程对hashmap进行put操作的异常 Exception in thread "Thread-0" java.lang.ClassCastException: java.u ...

  2. 第5章 Cisco测试命令和TCP/IP连接故障处理

    第5章 Cisco测试命令和TCP/IP连接故障处理 一.故障处理命令 1.show命令: 1) 全局命令: show version :显示系统硬件和软件版本.DRAM.Flash show sta ...

  3. Solid Edge如何估算零件的质量,重心等物理性质

    点击检查-物理性质,勾选"显示符号"即可显示质心和形心(先点击更新,更新每个零件的密度).   最后得到质心和形心    

  4. unpe13e 学习备忘1

    转其他地方.  http://blog.sina.com.cn/s/blog_a43aba560101a2s5.html 运行书本中的程序.1,首先,下载源码:unpv13e.tar.gz2,然后,编 ...

  5. 数组和字符串长度length

    数组.length 字符串.length() list list.size();map map.size();set set.size();1 java中的length属性是针对数组说的,比如说你声明 ...

  6. 63.ExtJs事件(自定义事件、on、eventManager)示例

    转自:https://blog.csdn.net/leadergg/article/details/5927614?utm_source=blogxgwz5 ExtJs事件(自定义事件.on.even ...

  7. SpringMVC+Jquery实现Ajax

    一.什么是Ajax? Ajax:异步的JavaScript和Json(这里XML改为了Json): 作用:用于完成网页局部刷新功能(修改少量数据只用局部刷新,不用再整个网页重新加载): 二.Sprin ...

  8. Akka源码分析-Router

    akak中还有一个比较重要的概念,那就是Router(路由).路由的概念,相信大家都不陌生,在akka中,它就是其他actors的一个代理,会把消息按照路由规则,分发给指定的actor.我一般喜欢把R ...

  9. CSS发布时间

    * 1996年W3C正式推出了CSS1.* 1998年W3C正式推出了CSS2.* CSS2.1是W3C现在正在推荐使用的.* CSS3现在还处于开发中.

  10. sikuli--前端自动化操作的神器

    前端自动话操作应用很广泛,从网购秒杀活动实现自动化抢购,到区块链货币高频交易前端脚本编写(非合作交易所不提供api的情况下). 自动化的流派分为2类,一类是对DOM对象进行解析的,这个是主流,但是受特 ...