找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2176|回复: 21

[原创]:VC写的DWG浏览器试验品

[复制链接]
发表于 2002-6-11 12:19:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
VC写的DWG浏览器试验品
改成ARX不难做!
过段时间来完成。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-6-11 12:25:07 | 显示全部楼层
谢谢,完成后,给大家上传吧。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-6-11 12:30:12 | 显示全部楼层
XDSoft这个斑竹真好,谢谢您的关照。
刚才忘了传源程序。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-6-11 21:35:53 | 显示全部楼层
其实用这个控件不是很好,在ARX中有ADESK提供的函数。普通Windows程序可以使用公共接口。
如何取得DWG图形中的预览图片
提要: 在AutoCAD之外取得DWG预览图片的方法的必要设置
  
引言
本文叙述了在AutoCAD软件之外,即在不调用该软件的前提下,取得 DWG图形中的预览图片的几种方法。说明了有关的数据格式。  
控制预览文件的保存方法
在AutoCAD R13中,有一个系统变量RASTERPREVIEW控制着如何在DWG文件中保存预览图片文件。它的取值和含义如下表所示:  
  
  
取值         含义
0         不保留预览图片
1         保留BMP图片
2         保留WMF图片
3         同时保留BMP和WMF图片
分别保存DWG文件和预览图片
在应用R13编辑图形文件时,可以使用命令MAKEPREVIEW保存当前视窗中的图祥为BMP文件。BMP文件将保存在与绘图文件相同的子目录中并且使用相同的文件名。BMP图片的内容是当前视窗的内容,换言之,如果当前视窗显示的是图形的一部分,则BMP图形中将只显示此部分内容。  
使用这种方法的缺陷在于应用程序可以自动地保留BMP图形,但是如果应用程序不存在的时候,发生了图形的变动,则BMP与DWG文件将失去同步,从而失去预览文件的意义。  
编程提取DWG图形数据
有几种方式可以实现。  
  
•        使用ARX API函数:
    Adesk::Boolean  
acdbDisplayPreviewFromDwg(const char *pszDwgfilename, void *pPreviewWnd)  
  
•        使用ActiveX Automation接口:
    R14支持ActiveX Automation,增加DWGThumbnail控件,使得在VB/VBA中能够浏览R14/R13的DWG文件。  
  
•        使用Autodesk提供的DwgX Control
    DwgX Control提供了更为广泛的Automation API函数,甚至能够象DWG Unplugged的开发者一样,访问DWG文件的格式得到AcDbDatabase *s的数据。利用DwgX Control显示的是DWG文件内容而不仅仅是预览的光栅图象。当然,DwgX Control必须需要Autodesk View1.2以上版本,已经正确安装,并且在后台运行。这一工具,用户可以在http://www.autodesk.com网页上自由下载。  
  
•        从DWG文件中直接提取预览图片数据
    下面给出预览图片在DWG文件中的存放格式。这一信息有可能会在以后的版本中有所修改。  
  
R13/14 DWG文件中预览图片的数据格式
如果设DWG文件的起始偏移量为0,则在第13字节处是一个长整数类型的指针,指向预览图片特征字段(sentinel)的开始位置。特征字段的长度为16字节。  
在特征字段之后,是一个4字节的长整数,它说明的是除特征字段之外整个预览图片数据的长度。  
再向下,是说明预览图片数量的一个单字节整数。如前文所述,在DWG文件中可以选择不保存预览图片,保存BMP和/或WMF预期览图片等,这一情况就由预览图片数量字节表示。  
根据预览图片数量的不同,后面是一至三组数据描述块,每一块由9个字节组成,第一个字节是图片的类型,2-5字节是图片的其实位置,6-9字节是图片的大小。  
图片类型字节可以取值1,2或3。取值为1时说明是图形的描述内容,它的长度至少需要有80字节,即使实际使用的部分不足80字节,系统也会为他保留80字节。当取值为2时说明是BMP图片。在DWG文件中保存的BMP图片可是任何满足BMP规范的图象文件数据,但是不保存BITMAPFILEHEADER数据。AuotCAD系统保存的BMP图象数据是256色图象数据并使用BI-_RLE8格式压缩。图片类型字节取值为3时说明是WMF文件,它带有22字节长的Aldus文件头。  
在数据描述块的后面是所有既存的预览图片数据,随后跟随的是16字节按位取反的特征字节。  
    +-------------------------------------------------------------------+  
    | thumnail sentinel - 16 bytes                                      |  
    +-------------------------------------------------------------------+  
    | size of thumnail data - 4 bytes                                   |  
    +-------------------------------------------------------------------|  
    | number of thumbnail objects - 1 byte                              +  
    +-------------------------------------------------------------------+  
    | array of thumbnail | type of object - 1byte                       |  
    | object descriptors +----------------------------------------------+  
    |                    | offset of object from start of dwg - 4 bytes |  
    | (0 thru n - 1)     +----------------------------------------------+  
    |                    | size of object - 4 bytes                     |  
    +--------------------+----------------------------------------------+  
    | thumbnail data for objects 0 thru n - 1                           |  
    +-------------------------------------------------------------------+  
    | inverse thumbnail sentinel                                        |  
    +-------------------------------------------------------------------+  
•        BITMAPFILEHEADER
这是由Windows系统规定的数据类型,它的长度为14字节,具体定义是:  
Type BITMAPFILEHEADER  
bfType As Integer  
bfSize As Long  
bfReserved1 As Integer  
bfReserved2 As Ingeger  
bfOffBits As Long  
End Type  
•        预览文件的特征字段
在DWG文件中,预览图片的特征字段长度为16字节,它的内容为:OX1F,OX25,OX6D,OX07,OXD4,OX36,OX28,OX28,OX9D,OX57,OXCA,OX3F,OX9D,OX44,OX10,OX2B

以上对R14DWG的描述,同样适合R2000及以上
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-6-11 21:43:47 | 显示全部楼层
斑竹真是好人,网上的许多朋友都问这个问题呢,像我这样的菜鸟太多了,太需要您的帮助了。
用控件的原因是我的能力太差了。
谢谢masterhe
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-6-13 10:40:18 | 显示全部楼层
masterhe:
您好!
我没找到Autodesk提供的DwgX Control
您能帮我们这些菜鸟找一下吗,目前,我们用DWGThumbnail是无可奈何的出路,• 使用ARX API函数:
Adesk::Boolean
acdbDisplayPreviewFromDwg(const char *pszDwgfilename, void *pPreviewWnd)

我和一些网友试过了,用不起来,尤其是不装AutoCad的机器。
您能否出手呢?


谢谢您和各位斑竹。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-6-13 13:16:24 | 显示全部楼层
这个类你试试看,一个Debug版一个Release版

重新上传
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-6-18 10:13:55 | 显示全部楼层
masterhe 斑竹,您好!您说的Autodesk View1.2是?我下载了 Volo View Express Volo程序,但是我用它提供的activx控件会出错,不能load一个dll和一个class
提示:Failed to get class object for CLSID:{6C9FD3E6-78FA-11D2-9208-0060B0870404}
Failed to load module::D:\PROGRA~1\AutoDE~1\aximpv.dll
在Volo View里面的文档上就是用了该控件,AvViewX
您用过没?它要怎么用?

还有我下载您提供的附件,但是不能解开,说文件数据损坏
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-6-18 12:36:37 | 显示全部楼层
上边的库我已重新上传,我下载后试了一下是好的。
Volo View Express Volo我用过挺不错了,毕竟是AutoDESK自己的东东。你运行不正确可能是安装的问题。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-6-18 18:32:28 | 显示全部楼层
我个人认为对于做软件的人来讲,目前用thumb..控件是最优的选择,不要把时间浪费了,Volo View 本身很好,但对编程来讲也不是最好的,
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-6-19 09:40:31 | 显示全部楼层
我的目的是要在没有安装acad得机器上浏览DWg文件有差不多acad得效果,如放大缩小、图层控制,平移等,所以我觉得volo view 比较好,但是就要附带很多东东,不知不安装而直接拷贝写文件可不可以?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-6-19 12:12:55 | 显示全部楼层

能不能把源码贴出来看看啊?

能不能把源码贴出来看看啊?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-6-19 22:24:03 | 显示全部楼层
最初由 梦宁 发布
[B]我的目的是要在没有安装acad得机器上浏览DWg文件有差不多acad得效果,如放大缩小、图层控制,平移等,所以我觉得volo view 比较好,但是就要附带很多东东,不知不安装而直接拷贝写文件可不可以? [/B]

可以,但是有n个文件需要你自己注册,太累
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-6-20 01:36:57 | 显示全部楼层
用控件吧,梦宁
invisox.ocx 如放大缩小、图层控制,平移等都可实现
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-6-20 08:39:57 | 显示全部楼层
dwjnet  您好!谢谢您!我下载了您提供的控件,但是不能注册,所以不能使用。它是否需要其他的文件或要怎样使用,谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-15 22:20 , Processed in 0.236718 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表