![]() |
|
#1
|
|||
|
|||
|
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 |
|
|
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 |