明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 6915|回复: 9

[求助]如何批量将dwg转换为dwf文件?

[复制链接]
发表于 2002-5-5 10:39 | 显示全部楼层 |阅读模式
有大量dwg需转换为dwf,哪位大侠能编一段vba程序一次转换完毕?
急需!
发表于 2002-5-5 10:41 | 显示全部楼层

可一写个程序,但为什么一定要VBA呢?

 楼主| 发表于 2002-5-5 16:11 | 显示全部楼层

vb也行

我只会vb,vba,陈老师可以帮忙写一个吗?让我也学习学习
发表于 2002-5-5 19:10 | 显示全部楼层

你可使用VBA来自动创建DWF文件

以下代码示范了怎样用VBA创建DWF文件。

Sub test()

Dim objDoc As AutoCAD.AcadDocument
Set objDoc = Documents.Open("sample\colorwh.dwg")
Set objPlot = objDoc.Plot
Dim blnRet As Boolean      
        '用ACAD.EXE文件所在的路径来替换d:\Tahoe
        '或者你可以使用findfile()函数来找到文件的位置
blnRet = objPlot.PlotToFile("c:\temp\temp.dwf", "d:\tahoe\plotters\DWF ePlot.pc3")  
'如果打印成功则blnRet为True
objDoc.Close False
End Sub
发表于 2002-5-5 19:15 | 显示全部楼层

但象你这种情况不必用程序来做

AutoCAD 2000i及2002已经具有批量生成DWF图形的功能。
你可以使用网上发布项来完成。该功能的位置:
文件菜单->网上发布...
你可以一步步地跟着走。
发表于 2002-5-7 15:02 | 显示全部楼层

Lisp很简单、易学,但,VB应用广一些,自然学的人多一些;会VB的人多一些,自然用V

Lisp很简单、易学,但,VB应用广一些,自然学的人多一些;会VB的人多一些,自然用VBA也就快上手一些。[br]
发表于 2002-5-8 11:02 | 显示全部楼层

VB可能不行。要用VBA,程序不会很复杂...

本帖最后由 陈伯雄 于 2002-5-8 11:02:02 编辑

大概过程是:
1〉记下用户指定的DWG文件全名,因为有多个,需要设法保存,例如用数组
2〉记下用户指定的目标路径
3〉引用DWFOut命令,转换全部图形到目标路径中
不过VBA引用AutoCAD命令的能力实在不如VLISP...
发表于 2002-5-8 17:32 | 显示全部楼层

VB也可以

只是在工程中要引用ACAD的运行库(在VBA中已自动引用),所有的访问要从application开始,如:autocad.application.activedocument.modelspace.item(0)
其它的思路差不多。
发表于 2002-5-9 22:31 | 显示全部楼层

这是一个类似的程序,略加修改应该能达到目的,好像是以前从Autodesk的网站上下载的

这是一个类似的程序,略加修改应该能达到目的,好像是以前从Autodesk的网站上下载的。。。。。[br]; $Header: /web/R3/Documents/ReadMe/saveall3.lsp 61 8/04/98 12:02p Scottsh $ ; ; You will be prompted for two inputs: ; 1st Prompt asks for the directory name to use ; 2nd Prompt asks for the file name (do not specify extension) ; ; This script saves the DWG first, DWF second, and then ; creates the HTML necessary for ; Viewing the DWF in a Browser (MSIE or Netscape) ; ; At times you will see an error about "Y" being an unknown command. (defun c:SAVEALL3 () (setq DIR (getstring "Directory to save to: ")) (if (= DIR "") (setq DIR "") (setq DIR (strcat DIR "/")) );endif (setq FILENAME (getstring "Save DWG, DWT and HTM as: ")) (setq FILENAME_DWG (strcat DIR FILENAME ".dwg")) (setq FILENAME_DWF (strcat DIR FILENAME ".dwf")) (setq FILENAME_HTM (strcat DIR FILENAME ".htm")) (setq FILED (getvar "filedia")) (setq ECHO (getvar "cmdecho")) (setvar "filedia" 0) (setvar "cmdecho" 0) (if (/= (findfile FILENAME_DWG) nil) (progn (if (/= (getvar "dwgname") FILENAME) (command "_.saveas" "_r14" FILENAME_DWG "_y") (command "_.saveas" "_r14" FILENAME_DWG) );endif );endprogn (command "_.saveas" "_r14" FILENAME_DWG) );endif (if (/= (findfile FILENAME_DWF) nil) (command "_dwfout" FILENAME_DWF "_y" "_b" "_m" "_y" "_y") (command "_dwfout" FILENAME_DWF "_b" "_m" "_y" "_y") );endif (setq FILENAME_TEXT (getvar "dwgname")) (setq FILE (open FILENAME_HTM "w")) (write-line "" FILE) (write-line "" FILE) (write-line "AutoCAD Generated Web Page" FILE) (write-line "" FILE) (write-line "
" FILE) (write-line "

DWF file referenced in HTML file

" FILE) (write-line "

" FILE) (write-line "This web page was generated by saveall3.lsp." FILE) (write-line "

" FILE) (write-line "" FILE) (write-line (strcat "") FILE) (write-line "" FILE) (write-line "" FILE) (write-line "

" FILE) (write-line "Copy and paste the HTML tags into your own web pages." FILE) (write-line "

" FILE) (write-line "
" FILE) (write-line "" FILE) (close FILE) (setvar "filedia" FILED) (setvar "cmdecho" ECHO) (princ) );end SAVEALL
发表于 2002-5-9 23:34 | 显示全部楼层

其实按这个程序略为修改一下就可以用于VBA或VB中批量转换DWF图形了

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

本版积分规则

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

GMT+8, 2024-6-26 16:23 , Processed in 0.144236 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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