乐筑天下

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

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

[复制链接]

1

主题

5

帖子

1

银币

初来乍到

Rank: 1

铜币
9
发表于 2005-4-4 10:18:00 | 显示全部楼层 |阅读模式
[B]
哪位大哥能不能帮小弟解决一下这个问题啊
是这样我想用arx编程实现在cad里将当前图形另外生成一个象bmp,tiff这样的文件(这个文件我另外有用的),我知道每个dwg和dxf文件都保存有该文件在cad中的最后一个图形位图,但怎样调用它去保存并自动生成一个bmp那样的文件呢?真伤脑筋啊
[/B]
回复

使用道具 举报

0

主题

2

帖子

2

银币

初来乍到

Rank: 1

铜币
2
发表于 2005-4-4 10:47:00 | 显示全部楼层
这位朋友你好!
                         其实这是一个很简单得问题!只要在命令行里面输入export即可,AutoCAD即可跳出对话框,想把AutoCAD图形用什么图形格式输出,就可以用什么图形输出!
                         呵呵!
回复

使用道具 举报

1

主题

5

帖子

1

银币

初来乍到

Rank: 1

铜币
9
发表于 2005-4-4 13:14:00 | 显示全部楼层
这个我是知道的,但这要客户自己操作,我想要的是在后台自动处理生成bmp等图形文件,这些文件还要被用来编程插入到另外的一种文件当中
回复

使用道具 举报

3

主题

97

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
109
发表于 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的..哈)
回复

使用道具 举报

1

主题

5

帖子

1

银币

初来乍到

Rank: 1

铜币
9
发表于 2005-4-4 18:17:00 | 显示全部楼层
小弟不胜感谢
这位大哥我还想问一下cad里还有一个指令saveimg它是将当前图形经过渲染再保存保存成bmp、tiff等图形文件,如果调用那个指令是不是就可以避免你说的第二种情况了呢?但不知道经cad渲染过的图与原来相比有什么变化呢?
回复

使用道具 举报

1

主题

5

帖子

1

银币

初来乍到

Rank: 1

铜币
9
发表于 2005-4-4 18:29:00 | 显示全部楼层
还有对于第一个问题有哪位大哥知道怎么解决吗?假如我知道有一个同名文件在那里,该怎么发送指令使它覆盖呢?
回复

使用道具 举报

3

主题

97

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
109
发表于 2005-4-5 09:28:00 | 显示全部楼层
...倒, saveimg是不是直接输出整个图纸你自己到CAD上去试一下不就得了..
        
...可惜它不是..你还是要手动定义输出窗口大小..
saveimg是专门给3D渲染图用的输出指令, 对2D图没有特殊效果, 初始化慢, 而且对话框输入隐藏运行很麻烦...(还是干脆就不能后台运行, 这个不是很清楚..)
同名文件..在指令中间多发一个y表示同意覆盖..bmpout %s\ny all \n
回复

使用道具 举报

1

主题

5

帖子

1

银币

初来乍到

Rank: 1

铜币
9
发表于 2005-4-5 13:29:00 | 显示全部楼层

呵呵,小弟是菜鸟,先谢谢了,有什么问题再来问,希望各位大哥不吝指教
回复

使用道具 举报

8

主题

28

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2005-4-11 15:55:00 | 显示全部楼层
收到         pandoram        大侠的帮助。谢谢!
回复

使用道具 举报

0

主题

1

帖子

1

银币

初来乍到

Rank: 1

铜币
1
发表于 2005-4-11 17:31:00 | 显示全部楼层

太感谢pandoram啦! 这个问题我都愁了快一星期了!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-2-5 07:53 , Processed in 0.299789 second(s), 83 queries .

© 2020-2025 乐筑天下

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