明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5094|回复: 11

关于cad图形存储为图形文件求救

  [复制链接]
发表于 2005-4-4 10:18:00 | 显示全部楼层 |阅读模式
<BLOCKQUOTE>
哪位大哥能不能帮小弟解决一下这个问题啊


是这样我想用arx编程实现在cad里将当前图形另外生成一个象bmp,tiff这样的文件(这个文件我另外有用的),我知道每个dwg和dxf文件都保存有该文件在cad中的最后一个图形位图,但怎样调用它去保存并自动生成一个bmp那样的文件呢?真伤脑筋啊

</BLOCKQUOTE>
发表于 2005-4-4 10:47:00 | 显示全部楼层

[原创]

这位朋友你好!


                         其实这是一个很简单得问题!只要在命令行里面输入export即可,AutoCAD即可跳出对话框,想把AutoCAD图形用什么图形格式输出,就可以用什么图形输出!


                         呵呵!
 楼主| 发表于 2005-4-4 13:14:00 | 显示全部楼层
这个我是知道的,但这要客户自己操作,我想要的是在后台自动处理生成bmp等图形文件,这些文件还要被用来编程插入到另外的一种文件当中
发表于 2005-4-4 17:38:00 | 显示全部楼层
直接用ARX送个bmpout命令过去..bmpout是众多export命令的一种. 今天把自己手上一个大bug解决了, 很高兴, 多写几个代码吧.. void your_command()
{
CString szCommand;
CString szFName = "your_file_name_and_path"; // 输出.bmp文件路径+全名 szCommand.Format("filedia 0\n");
acDocManager->sendStringToExecute(
acDocManager->mdiActiveDocument(), szCommand);
// FILEDIA系统变量设0, 指定不显示文件对话框, 因为CAD默认此变量为1, bmpout命令会跳出file save as对话框 // 也可以acedSetVar配合resbuf达到同样效果, 但是偶比较懒.. szCommand.Format(("bmpout %s\nall \n", szFName);
acDocManager->sendStringToExecute(
acDocManager->mdiActiveDocument(), szCommand);
// 第一个\n代表输入要存为的文件名后必须按回车, 因为文件名允许空格
// 后面的all是bmpout的一个参数, 正常命令下输入文件名后CAD等待用户选择要输出到图像文件的实体, 用all表示全选. szCommand.Format("filedia 1\n");
acDocManager->sendStringToExecute(
acDocManager->mdiActiveDocument(), szCommand);
// 把FILEDIA变量回复为系统默认值
} 当然, 如果你用一个szCommand把所有的命令都连起来一口气发过去也是没有问题的.. (...虽然老是用ARX叫CAD命令是不好的习惯, 但sendStringToExecute()果然还是界面类的无敌指令啊..) 两个潜在问题: 1. 如果要输出的文件名已存在, 那么CAD会问要不要覆盖文件, 送过去的指令就不匹配了. 可以在输出之前检查文件是否已存在.. 2. bmp输出默认只输出当前窗口内可见的图, 就是说如果当前窗口只看到全图纸的一部分, 就只能输出这一部分到bmp. 如果需要全图纸输出, 要在执行bmpout前执行zoom all. (难道CAD bmpout是借用print screen的..哈)
 楼主| 发表于 2005-4-4 18:17:00 | 显示全部楼层
小弟不胜感谢


这位大哥我还想问一下cad里还有一个指令saveimg它是将当前图形经过渲染再保存保存成bmp、tiff等图形文件,如果调用那个指令是不是就可以避免你说的第二种情况了呢?但不知道经cad渲染过的图与原来相比有什么变化呢?
 楼主| 发表于 2005-4-4 18:29:00 | 显示全部楼层
还有对于第一个问题有哪位大哥知道怎么解决吗?假如我知道有一个同名文件在那里,该怎么发送指令使它覆盖呢?
发表于 2005-4-5 09:28:00 | 显示全部楼层
...倒, saveimg是不是直接输出整个图纸你自己到CAD上去试一下不就得了..


       


...可惜它不是..你还是要手动定义输出窗口大小..


saveimg是专门给3D渲染图用的输出指令, 对2D图没有特殊效果, 初始化慢, 而且对话框输入隐藏运行很麻烦...(还是干脆就不能后台运行, 这个不是很清楚..)


同名文件..在指令中间多发一个y表示同意覆盖..bmpout %s\ny all \n
 楼主| 发表于 2005-4-5 13:29:00 | 显示全部楼层



呵呵,小弟是菜鸟,先谢谢了,有什么问题再来问,希望各位大哥不吝指教
发表于 2005-4-11 15:55:00 | 显示全部楼层
收到 pandoram 大侠的帮助。谢谢!
发表于 2005-4-11 17:31:00 | 显示全部楼层
本帖最后由 作者 于 2005-4-11 21:01:38 编辑

太感谢pandoram啦!



这个问题我都愁了快一星期了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 12:48 , Processed in 0.288320 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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