Hallo
Laat me mijn probleem uitleggen, ik heb momenteel een Excel-bestand van waaruit ik mijn 3D wil openen (wat me lukt)
dan.... Sla ze op in . DXf in een specifieke map met het pad "G:\DAO\Iges-fao" en hernoem ze met de ERP-code die zowel in de gegevenskaart als in de index verschijnt (Revisie)
Ik ben begonnen met het schrijven van het begin van de macro, maar ik loop vast op het niveau van het opnemen van de 3D in DXF :-(
Ik voeg de code toe, evenals de afdruk van de gegevenskaart
Kun je me helpen
Dim choix_liste As String 'type de pi?ce choisi dans la liste d?roulante pour l'ouverture des pi?ces
Dim nb_de_piece As Integer 'nombre de lignes de la colonne F correspondant aux nombres de pi?ces
Dim increment As Integer 'incr?ment de 1 pour effectuer la boucle de recherche ligne par ligne sur la colonne F
Dim myCell As String 'variable pour fusionner l'incr?ment et la colonne F pour la plage de recherche
Dim path As String 'chemin du dossier d'enregistrement de la pi?ce
Dim nom As String 'nom de la pi?ce
Dim path_complete As String 'chemin complet de la pi?ce
Dim myBool As Boolean
Dim myError As Long, myWarning As Long
Dim swApp As Object
Dim Part As Object
Dim longstatus As Long
'ouverture de SolidWorks :
myBool = Shell("C:\Program Files\SOLIDWORKS Corp\SOLIDWORKS\SLDWORKS.exe", vbNormalFocus)
Application.Wait Now + TimeValue("0:00:10")
Set swApp = CreateObject("SldWorks.Application")
'Set swApp = Application.SldWorks
Set swApp = CreateObject("SldWorks.Application")
Set swModel = swApp.OpenDoc6("C:\_FICHETBAUCHE\03 projets\01 safes\pbz00371\technical file\02 cad\millium-newton feu, cadre modifi? caisse ext pop?e\SW00239874.sldprt", 1, 1, "", myError, myWarning)
Set Part = swApp.ActiveDoc
' Named View
Part.ShowNamedView2 "*Dessus", 5
Part.ViewZoomtofit2
Set Part = swApp.ActiveDoc
' Save As
Set swModel = Part.SaveAs3("G:\DAO\Iges-fao\SW00246182.DXF", 0, 0)
' Save As
'swModel.SaveAs2 Left(path, (Len(path) - 6)) & "dxf", 0, True, False
' boucle a creer
'definition de la plage sur lequel va s'appliquer la macro :
'Initialisation de certaines variables:
' valeur de la conne x = "Nouveau" et Valeur de la colonne Y = " Fabriquée" et "Pièces/Opé panoplies"
nb_de_piece = Application.WorksheetFunction.CountA(Feuil1.Range("$H:$H")) 'nombre de cellules non vide dans la colonne F, soit le nombre de pi?ces
increment = 1
'For increment = 1 To der lign
' End If
'Next increment 'on passe ? la ligne suivante
End Sub
Bij voorbaat dank
image.docx
Hallo
Ik zie dat je een Epdm-kluis hebt, dus op de opmerking "Ik wil mijn 3D openen (wat ik kan doen)" ben ik het niet helemaal eens, je macro werkt alleen als je bestanden in je lokale cache staan, anders moet je de Epdm-API's (EPDM) gebruiken. Interop.epdm_namespace) om verbinding te maken met de kluis, naar het bestand te zoeken, het naar de lokale cache te repatriëren en vervolgens te laden (om nog maar te zwijgen van de extraheer-, back-up- en archiveringsfuncties indien nodig).
Aangezien uw variabelen vervolgens worden geëxporteerd van Epdm naar SW-eigenschappen, kunt u de functie "Get6" gebruiken om hun waarden op te halen.
En tot slot, om een 3D-model in DWG of DXF op te slaan, moet u de functie "ExportToDWG2" gebruiken.
Voorbeelden van het gebruik van deze verschillende functies zijn beschikbaar op de verschillende links hierboven.
Vriendelijke groeten
2 likes
Hallo d.Roger
Bedankt voor de opmerkingen en advies mij die dacht dat ik had gevonden :-( ....
Kunt u mij een beetje hulp geven om alleen dit deel van de macro te schrijven.... omdat ik een beginner ben in VB en nu ben ik verdwaald.....
eigenlijk wil ik gewoon gaan lezen alleen een SW00 bestand?????? die zich in het volgende pad bevindt: "C:\_FICHETBAUCHE\03 projecten\01 safes\pbz00371\technisch bestand\02 cad\millium-newton brand, gewijzigd framework?
en sla het dan op in .dxf op deze plaats "G:\DAO\Iges-fao en hernoem het met de ERP-code en de index van de datakaart
en sluit het geopende alleen-lezen bestand
Heel erg bedankt voor je hulp, in de hoop dat je me kunt helpen alleen voor dit deel van de macro
Vriendelijke groeten
Sebastian
Hallo
Hier is een voorbeeld van verbinding maken met een Epdm-kluis en het uploaden van een bestand naar SW, u moet de naam van uw kluis en de naam van uw bestand opgeven om naar de macro te uploaden. Vergeet niet de referenties "SldWorks xxxx Type Library" en "PDMWorks Enterprise xxxx Type Library" in je macro te zetten (Tools/References).
Dim swApp As SldWorks.SldWorks
Dim Part As SldWorks.ModelDoc2
Dim longstatus As Long
Dim longwarnings As Long
Dim Coffre as string
Dim Fichier as string
Sub main()
myBool = Shell("C:\Program Files\SOLIDWORKS Corp\SOLIDWORKS\SLDWORKS.exe", vbNormalFocus)
Application.Wait Now + TimeValue("0:00:10")
Set swApp = CreateObject("SldWorks.Application")
Dim Vault As New EdmVault5
Dim File As IEdmFile5
Dim Folder As IEdmFolder5
Coffre = "x" 'Mettre le nom du coffre fort Epdm à la place du x
Fichier = "x" 'Mettre le nom complet du fichier à la place du x
Vault.LoginAuto Coffre, 0
Set File = Vault.GetFileFromPath(Fichier, Folder)
Set Part = swApp.OpenDoc6(Folder.LocalPath & "/" & File.Name, 1, 2, "", longstatus, longwarnings)
Set Part = swApp.ActiveDoc
Part.ViewZoomtofit2
MsgBox Part.GetPathName
End Sub
Voor de andere functies heb je specifieke voorbeelden HIER voor de functie Get6 en HIER voor de functie ExportToDWG2 . Om het geopende bestand in Sw te sluiten, moet u de CloseDoc-functie gebruiken, er is een voorbeeld van hoe u het kunt gebruiken HIER .
Vriendelijke groeten
1 like