DXF/DWG Model View Export
- MacroEnjoyer
- Posts: 13
- Joined: Thu Apr 04, 2024 9:20 am
- Location: Manchester, England
- x 13
- x 3
DXF/DWG Model View Export
Hi Everyone,
I've been setting up my macros for my new job and encountered an issue. I can't seem to find a macro that exports either dwg or dxf files from the model.
I managed to find one that exports the top view, but if the part was drawn on another plane it's incorrect for use on the CNC (Attached). I also found one that exports the selected sketch but if there's a cut-out (i.e. 2 sketches total) that's not overly useful. I also found that I can't use one that's meant for drawings as 1. Not every part has a drawing 2. The scale can sometimes be wrong (Not sure why).
It would be great if someone could point me in the right direction. Essentially here's my checklist of requirements:
- Export dwg or dxf from model.
- Takes the current model view so that part orientation doesn't matter.
- Renames the file the same as the model.
Perhaps another useful addition could be a dialog box that allows you decide the file type so that one macro can be used for 2 functions. Not sure how to implement this.
I've been setting up my macros for my new job and encountered an issue. I can't seem to find a macro that exports either dwg or dxf files from the model.
I managed to find one that exports the top view, but if the part was drawn on another plane it's incorrect for use on the CNC (Attached). I also found one that exports the selected sketch but if there's a cut-out (i.e. 2 sketches total) that's not overly useful. I also found that I can't use one that's meant for drawings as 1. Not every part has a drawing 2. The scale can sometimes be wrong (Not sure why).
It would be great if someone could point me in the right direction. Essentially here's my checklist of requirements:
- Export dwg or dxf from model.
- Takes the current model view so that part orientation doesn't matter.
- Renames the file the same as the model.
Perhaps another useful addition could be a dialog box that allows you decide the file type so that one macro can be used for 2 functions. Not sure how to implement this.
- Attachments
-
- ConvertDXF.swp
- (35 KiB) Downloaded 109 times
Thanks,
ME
ME
Re: DXF/DWG Model View Export
Sorry for dumb question, but what is the purpose of the dwg/dxf from the model? What is consuming the data?
Re: DXF/DWG Model View Export
check out the "SaveAs3" method, and chose "dxf" as the extension. I think it will do what you want.
https://help.solidworks.com/2021/englis ... veAs3.html
Running it manually (File, Save As) you get these options:
My recommendation would be to change your workflow. Create drawings / views that are specific to the information you are trying to communicate, and export those as DWG/DXF.
https://help.solidworks.com/2021/englis ... veAs3.html
Running it manually (File, Save As) you get these options:
My recommendation would be to change your workflow. Create drawings / views that are specific to the information you are trying to communicate, and export those as DWG/DXF.
-
I may not have gone where I intended to go, but I think I have ended up where I needed to be. -Douglas Adams
I may not have gone where I intended to go, but I think I have ended up where I needed to be. -Douglas Adams
- MacroEnjoyer
- Posts: 13
- Joined: Thu Apr 04, 2024 9:20 am
- Location: Manchester, England
- x 13
- x 3
Re: DXF/DWG Model View Export
Cheers for the quick reply, good questions.
Basically, the reason for wanting model views instead of drawing is to do with scale. In the past when I've exported from drawing, if the scale for the sheet isn't set to 1:1, it gets confused and is the wrong size. Again, this is obviously something I could change manually. When saving from the model, this issue seems to be solved without intervention.
Also, I'm only using this tool as a way to send perimeter data to the CNC operator, so there is no real detail needed such as the drawing template. That's another reason why I don't need to export from the drawing. As I would need to go in to the file and delete lines as required.
Basically, the reason for wanting model views instead of drawing is to do with scale. In the past when I've exported from drawing, if the scale for the sheet isn't set to 1:1, it gets confused and is the wrong size. Again, this is obviously something I could change manually. When saving from the model, this issue seems to be solved without intervention.
Also, I'm only using this tool as a way to send perimeter data to the CNC operator, so there is no real detail needed such as the drawing template. That's another reason why I don't need to export from the drawing. As I would need to go in to the file and delete lines as required.
Thanks,
ME
ME
Re: DXF/DWG Model View Export
Macros for exporting to flat patterns can get a bit complicated. In the past, I've approached this by creating a drawing and hiding/removing all of the title block information, border, etc.
Then I add a view to the drawing using IDrawingDoc:CreateFlatPatternViewFromModelView3 to place my flat pattern automatically onto the sheet.
Then I set the scale 1:1 and call 'SaveAs' to get the dxf output from the drawing.
Obviously there is a fair bit of code to accomplish these steps depending on your use case, but it's proven to provide the most consistent outputs from my experience.
Then I add a view to the drawing using IDrawingDoc:CreateFlatPatternViewFromModelView3 to place my flat pattern automatically onto the sheet.
Then I set the scale 1:1 and call 'SaveAs' to get the dxf output from the drawing.
Obviously there is a fair bit of code to accomplish these steps depending on your use case, but it's proven to provide the most consistent outputs from my experience.
Re: DXF/DWG Model View Export
So this DXF is for CNC cutting, laser or waterjet, etc?
We have never used drawing (view)s for 2D CNC dxf; Solid Edge or Solidworks. They have always been saved from the model. This is for various reasons, including scaling as you mentioned. However, it has been my experience that the most popular way to save a dxf for CNC is to make a drawing view, so both ways work. Up to you to decide which way works for you.
The Save As method is what you're looking for but it's called "ExportToDWG2" now and it's a method of the PartDoc interface.
You'll want this:
https://help.solidworks.com/2021/englis ... 4wLjAuMA..
IIRC it uses the system options for for exporting dxf. A guide for setting those via API is here:
https://help.solidworks.com/2021/englis ... ptions.htm
I set those every time the task runs. This way I don't need to worry about getting them all correct if I fire up a different machine for task host. I like being able to use the layer map file.
As with anytime using the help pages, make sure you have your version of Solidworks selected.
We have never used drawing (view)s for 2D CNC dxf; Solid Edge or Solidworks. They have always been saved from the model. This is for various reasons, including scaling as you mentioned. However, it has been my experience that the most popular way to save a dxf for CNC is to make a drawing view, so both ways work. Up to you to decide which way works for you.
The Save As method is what you're looking for but it's called "ExportToDWG2" now and it's a method of the PartDoc interface.
You'll want this:
https://help.solidworks.com/2021/englis ... 4wLjAuMA..
IIRC it uses the system options for for exporting dxf. A guide for setting those via API is here:
https://help.solidworks.com/2021/englis ... ptions.htm
I set those every time the task runs. This way I don't need to worry about getting them all correct if I fire up a different machine for task host. I like being able to use the layer map file.
As with anytime using the help pages, make sure you have your version of Solidworks selected.
- MacroEnjoyer
- Posts: 13
- Joined: Thu Apr 04, 2024 9:20 am
- Location: Manchester, England
- x 13
- x 3
Re: DXF/DWG Model View Export
Thanks. Alex these are not sheet metal parts, so flat patterns will rarely be used.
Bnemec, I'm not sure I'm 100% following as I'm relatively new in the design world. This is for Laser Cutting and CNC. I'll follow those guides and get back to you if I run into trouble. Thanks very much!
Bnemec, I'm not sure I'm 100% following as I'm relatively new in the design world. This is for Laser Cutting and CNC. I'll follow those guides and get back to you if I run into trouble. Thanks very much!
Thanks,
ME
ME
Re: DXF/DWG Model View Export
If you're doing laser cutting then I would encourage you to use sheet metal. I'm assuming flat, 2 axis laser cutting of sheets of material. I don't' know anything about files for things like tube lasers, any other kind of >2axis machining I assume needs CAM with machine specific post processor, but I don't know. Again, I'm assuming two axis laser. For that, we use sheet metal bodies and let Solidworks export the flat pattern from the model.MacroEnjoyer wrote: ↑Fri Apr 05, 2024 3:47 am Thanks. Alex these are not sheet metal parts, so flat patterns will rarely be used.
Bnemec, I'm not sure I'm 100% following as I'm relatively new in the design world. This is for Laser Cutting and CNC. I'll follow those guides and get back to you if I run into trouble. Thanks very much!
Those API help links I posted are in the context of .NET add-ins or stand alone apps, but AFAIK the VB in macros uses same/similar function calls.
- Frederick_Law
- Posts: 1948
- Joined: Mon Mar 08, 2021 1:09 pm
- Location: Toronto
- x 1638
- x 1471
Re: DXF/DWG Model View Export
Do you want a 3D DXF/DWG?
Or 2d Views?
Laser cut use 2D.
CNC mill use 3D and usually STEP file, not DXF/DWG.
Or 2d Views?
Laser cut use 2D.
CNC mill use 3D and usually STEP file, not DXF/DWG.
Re: DXF/DWG Model View Export
There is a macro widely circulated that will save all sheet metaal flat patterns out to dxf, with some options for naming and other settings.
This is very useful as it will travers an assy or part and export all components if they are sheet metal. This saves much time in the need to open each part and export them manually.
It would be great if this macro would incorporate non-sheetmetal components if they have a view defined (i.e. DXF_VIEW) in the desired export orientation
I believe it's located here:
https://www.codestack.net/solidworks-ap ... -patterns/
This is very useful as it will travers an assy or part and export all components if they are sheet metal. This saves much time in the need to open each part and export them manually.
It would be great if this macro would incorporate non-sheetmetal components if they have a view defined (i.e. DXF_VIEW) in the desired export orientation
I believe it's located here:
https://www.codestack.net/solidworks-ap ... -patterns/
Re: DXF/DWG Model View Export
Frederick,
No, not True, HAAS and HURCO have DXF\DWG options that use them to program toolpath at the control.
Also most CAM software now read native SolidWorks\SolidEdge\Inventor\NX ...... straight into the software, but most of the time you'll need to be current on the CAM to read new versions of the CAD files.
- MacroEnjoyer
- Posts: 13
- Joined: Thu Apr 04, 2024 9:20 am
- Location: Manchester, England
- x 13
- x 3
Re: DXF/DWG Model View Export
Bnemec - ok, noted. I'm not sure why using sheet metal would be beneficial as these parts are not bent or any other process. They are just flat parts which require cutting. Sorry if I'm not being clear but it's hard to explain without showing you. We sub contract metal parts, and just CNC wood and acrylic, so to me using the sheet metal feature on a non-steel part seems unnecessary.
Frederick - Just 2D dxf, as the cnc is three axis, and therefore i just need to define the outer perimeter of the part and any internal cut-outs.
I've been using ChatGPT to develop the macro I need, I'll share it here but i'm not sure how helpful it'll be since no one else seems to have the issues i'm having !
Frederick - Just 2D dxf, as the cnc is three axis, and therefore i just need to define the outer perimeter of the part and any internal cut-outs.
I've been using ChatGPT to develop the macro I need, I'll share it here but i'm not sure how helpful it'll be since no one else seems to have the issues i'm having !
Thanks,
ME
ME
Re: DXF/DWG Model View Export
The VBA example for ExportToDWG2 already does exactly what you want with just a few tiny modifications.
https://help.solidworks.com/2024/englis ... ple_VB.htm
https://help.solidworks.com/2024/englis ... ple_VB.htm
Re: DXF/DWG Model View Export
Code from example with tweaks made:
Code: Select all
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swPart As SldWorks.PartDoc
Dim sModelName As String
Dim sPathName As String
Dim varAlignment As Variant
Dim dataAlignment(11) As Double
Dim varViews As Variant
Dim dataViews(0) As String
Dim options As Long
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
sModelName = swModel.GetPathName
sPathName = swModel.GetPathName
sPathName = Left(sPathName, Len(sPathName) - 6)
sPathName = sPathName + "dxf"
Set swPart = swModel
dataAlignment(0) = 0#
dataAlignment(1) = 0#
dataAlignment(2) = 0#
dataAlignment(3) = 1#
dataAlignment(4) = 0#
dataAlignment(5) = 0#
dataAlignment(6) = 0#
dataAlignment(7) = 1#
dataAlignment(8) = 0#
dataAlignment(9) = 0#
dataAlignment(10) = 0#
dataAlignment(11) = 1#
varAlignment = dataAlignment
dataViews(0) = "*Current"
'dataViews(1) = "*Front"
varViews = dataViews
'Export each annotation view to a separate drawing file
swPart.ExportToDWG2 sPathName, sModelName, swExportToDWG_ExportAnnotationViews, True, varAlignment, False, False, 0, varViews
'Export sheet metal to a single drawing file
'options = 1 'include flat-pattern geometry
'swPart.ExportToDWG2 sPathName, sModelName, swExportToDWG_ExportSheetMetal, True, varAlignment, False, False, options, Null
End Sub
-
- Posts: 51
- Joined: Mon Dec 20, 2021 1:40 pm
- Location: Thumb Area of Michigan, USA
- x 178
- x 27
Re: DXF/DWG Model View Export
Here is a link that has a macro that we use to retrieve DXF file for laser cutting from our assemblies and/or multibody parts. We also create all our laser cut parts using the sheet metal feature rather then boss extrude. Even those without bends. The macro we use is in the 4th post down. I believe it is one created by @artem and modified by @Jaylin Hochstetler and @mike miller. It work great for us most of the time.
https://www.cadforum.net/viewtopic.php?p=746#p746
https://www.cadforum.net/viewtopic.php?p=746#p746
- MacroEnjoyer
- Posts: 13
- Joined: Thu Apr 04, 2024 9:20 am
- Location: Manchester, England
- x 13
- x 3
Re: DXF/DWG Model View Export
This is a great macro and we use it successfully in all our projects.DLZ_SWX_User wrote: ↑Wed Apr 10, 2024 10:57 am Here is a link that has a macro that we use to retrieve DXF file for laser cutting from our assemblies and/or multibody parts. We also create all our laser cut parts using the sheet metal feature rather then boss extrude. Even those without bends. The macro we use is in the 4th post down. I believe it is one created by @artem and modified by @Jaylin Hochstetler and @mike miller. It work great for us most of the time.
https://www.cadforum.net/viewtopic.php?p=746#p746
I am trying to modify it to also export parts that are NOT sheet metal, but contain a user defined view called DXF
I have, so far, been unsuccessful as I am using chatGPT to write the code (I cannot write macros yet), but it fails every time so far.