有个客户想要以下功能,
1、将AUTOCAD中的数据读取出来
2、对两张AUTOCAD图进行比较,将不同的地方用颜色表示
分不够可以再给,如果哪位兄弟能帮忙搞定,我就把我自己做的一些控件免费奉上。

解决方案 »

  1.   

    1,遍历cad中的对象,不同对象的属性是不一样的
    2,除了一样的就是不一样的,先遍历a,在b中查找你说的太抽象,具体要哪些数据?
    cad中的对象有图层,块,实体等等多种
      

  2.   

    我这里有控件能够读取并显示AutoCAD的dwg文件,不知道你要的是这样的控件吗?
      

  3.   

    To CoolCHEN(☆晓风☆) :我就是想用你说的那种方法,但是怎么样能得到最后比较的结果,比如得到一张可以看的BMP图.To tonylk(=www.tonixsoft.com=) 呵呵,我当然要了,谢过 [email protected]各位大侠,如果能帮我解决这个问题,我可以另外再开帖给分.
      

  4.   

    是单独的应用程序来实现,还是作为在AutoCAD的基础上做二次开发啊?
    如果是做二次开发的话,你在得到比较结果后,直接 Plot 成图片文件就可以了啊。
      

  5.   

    用应用程序调用ole实现,可以直接plot吗,plot是一个函数还是什么?望指教
      

  6.   

    利用 AutoCAD Automatoin 来操作的话,你是可以调用 Plot 对象的 PlotToFile方法
    来把图形内容输出到JPG或者PNG之类的图形文件中。详细你的先看看CAD自带的VBA帮助部分,有关于 AutoCAD Automation 所有对象的详细说明。
      

  7.   

    具体我也没做过,不过你的意思我基本明白最好在cad的基础上进行二次开发,通过cad提供的activex操纵cad,楼上说的帮助中的vba很有用,有所有对象的属性、方法等用cad的application对象的open方法打开要比较的两张图,cad有个sdi的命令可以切换是多窗口还是单窗口,要比较两张图,肯定得设置成多窗口,cad2000以后的版本默认就是多窗口的在第一个窗口中遍历所有实体,并且记下你需要比较的属性
    比如:遍历到一实体,类型是 线,他的属性有两端点坐标,颜色,所在图层等
    如果类型是圆,属性可能就是圆心,直径,半径,颜色,所在图层等了
    cad的类型很多,有多边形,文字,块等等,拥有的属性都不相同,你去看vba帮助吧
    不同类型的实体所拥有的属性都是不一样的,而且我不知道你认为的不同是指哪些属性的不同。在遍历第二个窗口的图,判断类型,在一窗口中的相同类型的数组中查找,并比较你要找相同的属性,如果没有,用你希望的方式改变这个实体进行标识,比如改变颜色,或把他放到另外一个图层,所有的实体遍历完,你要的结果也就出来了放不同图层的好处是:可以通过关闭其他图层来进行显示 打印等acaddoc是当前文档  有acaddoc.PlotToDerive 可以打印到默认打印机
    acaddoc.PlotToFile 是打印到文件如果你对dxf文件格式熟悉的话,也可以把cad的dwg文件输出成dxf,更容易比较
      

  8.   

    我用ole做的比较,超级慢慢慢,请问楼上如何操作dxf