Assemblage exporteren naar . DWG

Hallo

Is het mogelijk om een weergave van een assemblage te exporteren in . DWG? (Ik kom aan met een onderdeel, maar niet met een montage)

Bedankt

Fijne dag

Hallo

U zou uw assemblage tijdelijk in GEDEELTELIJK moeten opslaan om deze in DWG te kunnen exporteren.

1 like

Sterker nog, op dit moment ben ik de lay-out aan het doornemen.

Maar ik wilde weten of er een snellere was.

Tenzij je iets gemist hebt, denk ik van niet.

Wacht op een ander antwoord.

1 like

door middel van een tekening ;-)

sla het geheel gewoon op als een onderdeel en selecteer alle componenten, behandel dit nieuwe onderdeel vervolgens als elk traditioneel onderdeel (exporteren naar DXF, DWG)

@+ ;-)

1 like

Kortom, dat is wat ik al aan het doen ben^^

Eenvoudiger dan dat wordt het dus niet, rechtstreeks uit de montage.

Bedankt voor je antwoorden;)

Hallo

Om al deze stappen te vermijden, kunt u ook een kleine macro maken die de transformatie van de asm naar prt automatiseert en deze vervolgens naar DWG exporteert, het kost u slechts één klik om te bereiken wat u wilt.

Voor de back-up van de asm in prt is het een eenvoudige Part.Saveas3(nomprt, 0, 0) te doen en voor de export in DWG moet je in staat zijn om de macro te gebruiken : http://help.solidworks.com/2016/english/api/sldworksapi/export_part_to_dwg_example_vb.htm

Vriendelijke groeten

3 likes

Zie de bijgevoegde macro voor inspiratie.

Vriendelijke groeten


asmtodwg.swp
2 likes

De vorige macro maakt gebruik van de functie "ExportFlatPatternView" die is afgeschaft en alleen het vooraanzicht overdraagt, deze maakt gebruik van de vervangingsfunctie "ExportToDWG2" en stelt u in staat om een DWG van elke weergave te maken, ik denk dat het meer in lijn zal zijn met wat u wilt doen.

Vriendelijke groeten


asmtodwg-v2.swp
1 like

Hartelijk dank

Ik heb de macro nooit gebruikt, kun je het me in twee woorden uitleggen?

Bedankt

asmtodwg-v2.swp werkt niet heb ik de indruk 


screen_shot_10-17-17_at_09.26_am.jpg

Hallo

Welke versie van SW gebruik je? De bibliotheken die in mijn macro zijn geladen, zijn voor SW2017.

In SW kunt u doen: Extra / Macro / Nieuw en kopieer de onderstaande code om degene te vervangen die automatisch in de nieuwe macro wordt geschreven, vervolgens laadt u een testassemblage in SW en ten slotte doet  u F5 in het Visual Basic-venster.

Vriendelijke groeten

Dim swApp As Object
Public swModel As SldWorks.ModelDoc2

Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Sub main()

    Set swApp = Application.SldWorks
    
    Set swModel = swApp.ActiveDoc
    Set Part = swApp.ActiveDoc
    Dim myModelView As Object
    Set myModelView = Part.ActiveView
    myModelView.FrameState = swWindowState_e.swWindowMaximized

    'on récupére le document actif
    Set swModel = swApp.ActiveDoc
    
    If Not swModel Is Nothing Then
       'on récupére l'emplacement du fichier
        stPath = swModel.GetPathName

        'on récupére le nombre de caractére jusqu'au . de l'extension
        lgFichier = InStrRev(stPath, ".", -1, vbTextCompare) - 1
        'on récupére le chemin sans l'extention
        If lgFichier > 0 Then
              stPath = Left(stPath, lgFichier)
        End If
        
        'si le document est un assemblage
        If swModel.GetType = swDocASSEMBLY Then
            'on créer le SLDPRT
            longstatus = Part.SaveAs3(stPath + ".sldprt", 0, 0)
            'On ferme le SDLASM
            swApp.CloseDoc swModel.GetTitle
            'On ouvre le SLDPRT
            Set swModel = swApp.OpenDoc6(stPath + ".sldprt", 1, 0, "", longstatus, longwarnings)
        End If
        
        'si le document est une pièce
        If swModel.GetType = swDocPART Then
            'On l'exporte en DWG
            ExportDWG
        End If
    End If

End Sub

Sub ExportDWG()
    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(5) As String
    Dim options As Long

    Set swModel = swApp.ActiveDoc

    sModelName = swModel.GetPathName
    sPathName = swModel.GetPathName
    sPathName = Left(sPathName, Len(sPathName) - 6)
    sPathName = sPathName + "dwg"

    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) = "*En cours"
    dataViews(1) = "*Face"
    dataViews(2) = "*Droite"
    dataViews(3) = "*Gauche"
    dataViews(4) = "*Dessus"
    dataViews(5) = "*Arrière"

    varViews = dataViews

    swPart.ExportToDWG2 sPathName, sModelName, swExportToDWG_ExportAnnotationViews, False, varAlignment, False, False, 0, varViews
End Sub

 

1 like

Hallo, ik neem het hele ding op in de kamer en dan maak ik een dwg.

Vriendelijke groeten

1 like

Ik ben in 2016 sp3

Het werkt nog steeds niet.


screen_shot_10-19-17_at_11.49_am.jpg

Hallo

Dat is waar de vba me een beetje irriteert ...

Probeer de regels te vervangen:

"Indien het document een document is
Als swModel.GetType = swDocPART Dan
     'We exporteren het in DWG
     DWG exporteren
Einde als

bij:

"Indien het document een document is
Als swModel.GetType = swDocPART Dan
     'We exporteren het in DWG
     ExporterenDWG swModel
Einde als

Dan de regel:

Sub ExportDWG

Bij:

Sub ExportDWG(swModel As SldWorks.ModelDoc2)

En weer de regel (die in de Sub ExportDWG(.....):

Stel swModel = swApp.ActiveDoc in

Bij:

'Stel swModel = swApp.ActiveDoc in

Laad uw assemblage en start vervolgens de macro met F5

Vriendelijke groeten

1 like

Hartelijk dank D.Roger,

het werkt:D

Aan de andere kant genereert het een bestand voor mij

Hoe kan ik dezelfde macro krijgen voor de onderdelen alleen?

Ik heb een manier om de macro alleen aan te passen om te leren

Hallo

Voor de onderdelen alleen is het dezelfde macro, want in deze transformeer ik de asm in prt, dan start ik de transformatie naar dwg op de prt, dus je laadt een onderdeel, dan start je de macro en je krijgt normaal gesproken  de 6 DWG gemaakt in de Windows-map van het onderdeel, Voor mij werkt het in ieder geval ook.

Vriendelijke groeten

1 like

Heel erg bedankt voor je hulp;)