#1
|
|||
|
|||
Using VBA to convert AutoCAD into WMF
I am trying to write a macro to open an AutoCAD dxf drawing and convert it to wmf and then import into the current Word document. Below is the code that I have written. My comments to the code are in blue.
Sub Convert_dxf()I am open to other methods as long as the produce the same results. I do not want to take a screen shot or similar due to line quality issues. Thank you in advance for any assistance you can provide. |
#2
|
||||
|
||||
Quote:
Quote:
That all depends on what methods are available in AutoCAD (e.g. AcadApp.Quit might be a valid method) - it's not really a Word issue. Ordinarily, though, one would also expect the open file to be closed before you quit the application.
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#3
|
|||
|
|||
I am not familiar with early vs. late binding. I am self taught in VBA and have not seen those terms before. How would I set this up with early binding?
|
#4
|
||||
|
||||
Here's an article about Early and Late Binding: https://support.microsoft.com/en-us/kb/245115.
An essential distinction between early binding and late binding is that, to use early binding, you must set a reference to the application (in this case AutoCAD) in the VBE via Tools|References. Once you do that, though, you can use all of the application's methods, procedures and properties much more easily than you can using late binding. Using early binding, your code might become: Code:
Sub Convert_dxf() Dim AcadApp As AutoCAD.Application Dim AcadDoc As AutoCAD.Document Dim SS As AutoCAD.AcadSelectionSet Set AcadApp = New AutoCAD.Application With AcadApp .Visible = False Set AcadDoc = .Documents.Open("C:\drawing.dxf") With AcadDoc Set SS = .SelectionSets("SS") .Export "C:\drawing.wmf", "WMF", SS .Close SaveChanges:=False End With .Quit End With Set SS = Nothing: Set AcadDoc = Nothing: Set AcadApp = Nothing End Sub .Visible = False otherwise you could end up with a plethora of hidden and orphaned AutoCAD sessions running in the background.
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#5
|
|||
|
|||
Thank you for the reply. However, I was not able to get the code to run.
Quote:
Code:
Set AcadDoc = .Documents.Open("C:\drawing.dxf") I found another solution. I placed the export code into AutoCAD and called it from Word. For anyone who might need it, the solution I found is below. Code in Word: Code:
Sub Convert_dxf() Dim AcadApp As Object On Error Resume Next Set AcadApp = GetObject(, "AutoCAD.Application") If Err.Number <> 0 Then Set AcadApp = CreateObject("AutoCAD.Application") End If AcadApp.Visible = False AcadApp.Documents.Open ("C:\drawing.dxf") AcadApp.RunMacro "Convert_drawing" AcadApp.ActiveDocument.Close savechanges:=False If AcadApp.Documents.Count = 1 Then AcadApp.ActiveDocument.Close savechanges:=False AcadApp.Quit End If Set AcadApp = Nothing End Sub Code:
Sub Convert_drawing() Dim SS As AcadSelectionSet Set SS = ActiveDocument.SelectionSets.Add("SSet") SS.Select acSelectionSetAll ActiveDocument.Export "C:\drawing", "WMF", SS Set SS = Nothing End Sub |
Tags |
auto export, autocad, vba |
Thread Tools | |
Display Modes | |
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
How do you convert to .MOV? | pmr8888 | PowerPoint | 0 | 11-30-2011 04:32 PM |
Outlook 2010 attach autocad drawing | knorre | Outlook | 0 | 10-31-2011 12:46 AM |
Pasting into worksheet from Autocad for Mac | davisb | Excel | 0 | 08-29-2011 01:59 PM |
Access, Visio & Autocad | oo0tommyk0oo | Visio | 0 | 05-16-2011 02:46 PM |
embed autocad drawing in word document prints very light | gbehm@broan.com | Drawing and Graphics | 1 | 03-15-2011 08:05 PM |