找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2002|回复: 15

[求助]:请问不打开dwg文件能否读取图形中扩展记录的内容?

[复制链接]
发表于 2007-3-14 18:09:23 | 显示全部楼层 |阅读模式

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

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

×
请问各位高手如何在不打开AutoCAD的情况下读取CAD图形中的内容?如果能的话采用何种方式实现?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2007-3-14 18:16:15 | 显示全部楼层
除非你知道DWG文件格式或者是使用第三方的工具软件。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-3-15 09:01:02 | 显示全部楼层
在ARX中是可以做到的,如果是在AutoCAD的外面我想通过COM接口也应该是可以做到的,但也要求你要熟悉DWG文件的数据结构
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-3-15 09:33:12 | 显示全部楼层
直接使用arx的长事务机制即可完成,不仅仅可以访问,还可以不打开文件修改数据库的东东
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-15 13:34:08 | 显示全部楼层
长事务管理需要在AutoCAD环境下才能使用,我需要的是在不打开AutoCAD或者是没有AutoCAD的情况下读取DWG文件格式的数据,用openDWG听说可以,但好像很难吧!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2007-3-19 14:19:23 | 显示全部楼层
最初由 lequanliu 发布
[B]长事务管理需要在AutoCAD环境下才能使用,我需要的是在不打开AutoCAD或者是没有AutoCAD的情况下读取DWG文件格式的数据,用openDWG听说可以,但好像很难吧! [/B]

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

使用道具 举报

 楼主| 发表于 2007-3-20 10:09:10 | 显示全部楼层
楼上的,我现在的想法改了,我想把AutoCAD作为一个后台程序来运行,自己编写一个独立的程序,启动AutoCAD,然后通过向AutoCAD发送消息,AutoCAD扑获消息后执行相应的命令来读取图形文件中的数据。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-3-20 19:14:41 | 显示全部楼层
这种做法不是很理想,存在的问题很多。简单的问题复杂化了,或许是我多虑了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-20 20:29:23 | 显示全部楼层
请问RedCAD:
我现在正在自己开发一个图形文件的版本管理器,需要读取CAD中的一些信息,如明细表、扩展数据等。需要和AutoCAD交互,怎样做更好一些呢?openDWL,,realDWG可以实现但目前还用不上。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-3-21 12:54:44 | 显示全部楼层
真是很抱歉,我都是AutoCAD里面摆弄些小东西,在外面独立于AutoCAD 去读取DWG文件到还是没有尝试过,但听好多同志们说openDWG的DirectX是可以做到的。我也没有搞过这方面的研究。希望有着方面研究的同志们能献良策。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-21 15:34:45 | 显示全部楼层
谢谢RedCAD的热情回复,我的问题已经有了思路,就是在独立程序中向AutoCAD发送消息,AutoCAD接收到消息后进行相应处理,然后把读出的数据发送给外部程序。目前已可以实现消息的通信。方式如下:
//外部程序发送消息给AutoCAD
        HWND pWnd = NULL;
        pWnd =::FindWindowEx(NULL,NULL,NULL,"我的程序");
        if(pWnd)  {
                AfxMessageBox("找到了CAD程序");
                ::SendMessage(pWnd, WM_SETTEXT, NULL, NULL); //发送消息
                return ;
        }
//AutoCAD接收到消息进行相关处理
procOld = (WNDPROC)::SetWindowLong(acedGetAcadFrame()->GetSafeHwnd(), GWL_WNDPROC, (LONG)NewAcadWndProc);        
LRESULT CALLBACK NewAcadWndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
        switch(iMsg)
        {
        case WM_MOUSEMOVE:
                //lParam = MAKELPARAM(200,200);      //禁止移动光标
                break;
        case WM_LBUTTONDOWN:
                AfxMessageBox("WM_LBUTTONDOWN");      //响应鼠标左键
                break;
        case WM_MOUSEWHEEL:
                AfxMessageBox("WM_MOUSEWHEEL");      //响应鼠标滚动
                break;
        case WM_SETTEXT:
                if (wParam==0Xa001)
                {
                       
                }
                AfxMessageBox("WM_SETEXT");      //test
                break;
        default:
                break;
        }
        return ::CallWindowProc(procOld, hwnd, iMsg, wParam, lParam);
}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2007-4-4 11:42:16 | 显示全部楼层
采用windows消息和共享内存的方式可基本实现对dwg文字信息的读取,autocad做后台隐藏运行。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-24 10:28 , Processed in 0.549404 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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