乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 73|回复: 6

[讨论]dxf文件操作

[复制链接]

16

主题

53

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
117
发表于 2009-10-11 00:14:00 | 显示全部楼层 |阅读模式
operFilePath=“D:\\1.dxf”;
doc=Autodesk..ApplicationServices.Application.DocumentManager.Open(operFilePath, false);
打开这个dxf文件后,进行一些绘图操作,然后如何保存成"D:\\1.dxf”;并且版本还是用1.dxf的原来的版本?
doc.CloseAndSave(operFilePath);会保存成1.dxf.dwg。并且版本不是1.dxf的原来的版本,而是当前cad的保存版本设置。
倒是想到一个办法,就是通过operDb.DxfOut(tempFilePath, 14, dwgSaveVer);或者operDb.SaveAs(tempFilePath, dwgSaveVer);
然后关闭当前打开的operFilePath文档,再删除operFilePath,然后将tempFilePath改名成operFilePath。
难道就没有别的办法了吗?
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2009-10-11 10:18:00 | 显示全部楼层
Document.CloseAndSave Method
Closes the document and saves it to fileName.
Document.CloseAndDiscard Method
Closes the document without saving it.
回复

使用道具 举报

16

主题

53

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
117
发表于 2009-10-11 17:41:00 | 显示全部楼层
谢谢!
已经有办法了,保存文档的时候,在CAD的选项里面有个另存为的设置,Document.CloseAndSave Method是按照这个设置来保存的,并且自动加上dwg.或dxf后缀。
现在还有个问题,能否有程序去读取这个选项的另存为的下拉列表,在界面上的combox下拉框中列出同样的选项,在combox中选择了之后,由程序去设置CAD的这个另存为选项?也就是不需要人去手动到cad里进行设置。
回复

使用道具 举报

16

主题

53

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
117
发表于 2009-10-11 19:23:00 | 显示全部楼层

另外,现在还有一个问题.我打开dwg文件,然后进行操作后,CAD的选项里面另存为的设置成dwg或dxf,都可以保存成功
打开dxf文件,然后进行操作后,CAD的选项里面另存为的设置成dwg,也可以保存成功
但是打开dxf文件,然后进行操作后,CAD的选项里面另存为的设置成dxf,保存出错!
但是如果dxf保存成另外一个不是已经打开的dxf文件,就可以保存!很奇怪,为什么打开的dxf,再保存自己就不可以了呢?
想了个办法,dxf先保存成临时文件,再修改临时文件的名称!
for (iDwg = 0; iDwg
lok.Dispose();
                //savepath = System.IO.Path.GetDirectoryName(operFilePath) + System.IO.Path.GetFileNameWithoutExtension(operFilePath);
                savepath = folderPath+System.IO.Path.GetFileNameWithoutExtension(operFilePath);
                //doc.CloseAndSave(savepath);
            }
FS.FileSystemObject fso=new FS.FileSystemObject();
try
                {
                    doc.CloseAndSave(savepath);
                }
                catch (System.Exception eRR)
                {
                    doc.CloseAndSave(temppath);
                    if (fso.FileExists(operFilePath))
                    {
                        fso.DeleteFile(operFilePath, true);
                    }
                    fso.MoveFile(temppath, operFilePath);
                }
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2009-10-11 20:24:00 | 显示全部楼层
试下db.CloseInput()?
回复

使用道具 举报

16

主题

53

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
117
发表于 2009-10-11 21:32:00 | 显示全部楼层
试过了,没用,无论把db.CloseInput(true)加在什么地方都没用,只要是打开dxf然后保存成dxf就不行。
回复

使用道具 举报

16

主题

53

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
117
发表于 2009-10-11 21:54:00 | 显示全部楼层

已经解决了,这样打开dxf,保存成dxf,dwg,dwt,打开dwg,保存成dxf,dwg,dwt都可以了,不报错了,保存版本和AutoCAD的设置时一致的。
for (iDwg = 0; iDwg
                Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
                Database db = doc.Database;
                //db.CloseInput(true);
                DocumentLock lok = doc.LockDocument();
               
                Utils.ZoomObjects(true);//范围缩放视图
               
               
                lok.Dispose();
                //db.Save();
                labelExecuteCondition.Text = "正在范围缩放" + System.IO.Path.GetFileName(operFilePath) + "视图,请等待……";
                labelExecuteCondition.Visible = true;
                finish = (int)((Double)(iDwg + 1) / (Double)(dwgCount) * 100);
                progressBar1.Value = finish;
                progressBar1.Visible = true;
                this.Update();
                //savepath = System.IO.Path.GetDirectoryName(operFilePath) + System.IO.Path.GetFileNameWithoutExtension(operFilePath);
                //savepath = folderPath+System.IO.Path.GetFileNameWithoutExtension(operFilePath);
                //savepath = "D:\\杂记\\1";
                savepath = operFilePath;
                doc.CloseAndSave(savepath);
}
到这里,我的东西就全做完了

gy32hjqrqxh.jpg

gy32hjqrqxh.jpg
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-14 13:19 , Processed in 0.545315 second(s), 69 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表