| | |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS | | | |  | Visiativ Blog | Tipps & Tricks rund um SOLIDWORKS und 3DEXPERIENCE. , ein Kurs
|
|
Autor
|
Thema: VBA API: Verknüpfung umbenennen (2689 mal gelesen)
|
G. Dawg Ehrenmitglied V.I.P. h.c. Teamleiter FEM Simulation

 Beiträge: 2622 Registriert: 12.07.2004 SolidWorks_2o2o SP3.o Win10_x64, Quadro_P2ooo. VisualStudio_2o19_Pro. FEM: Forge_NxT_HPC, ANSYS_WB. 3D-Printer: Ultimaker_2, Tinker_Gnome.
|
erstellt am: 08. Dez. 2009 14:40 <-- editieren / zitieren --> Unities abgeben:         
Tach auch! Weiss jemand von Euch, wie man eine frisch erstellte Verknüpfung, per API, umbenennen kann? Das Beispiel aus der SolidWorks API Hilfe funktioniert bei mir nicht...? Hier ist, was ich bis jetzt habe. Nun möchte ich "nur" den Name der Verknüpfung bekommen, damit ich diese umbenennen kann. Kann mir dabei bitte jemand helfen? Dieser Block macht mir Sorgen:
Code:
'########################################## ' Das hier geht bei mir NICHT: Set matefeature = swModel.AddMate3(swMateDISTANCE, swMateAlignCLOSEST, False, 0, 0, 0, 1, 1, 0, 0.5235987755983, 0.5235987755983, False, longstatus) 'Debug.Print matefeature.Name ' Wieso bekomme ich den Namen der Verknüpfung nicht? Denn laut SolidWorks Hilfe sollte das gehen!'matefeature.Name = PartName + "_" + BGName + "_" & i & "_" & Int((5000000 + 1) * Rnd) '##########################################
Hier ist noch der ganze Code, mit Allem drum und dran: Code:
Option Explicit' ****************************************************************************** ' Macro written on 10/27/09 by fuerer_g ' ****************************************************************************** Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim swAssy As SldWorks.AssemblyDoc Dim swcomponent As SldWorks.Component2 Dim swSelMgr As SldWorks.SelectionMgr Dim boolstatus As Boolean Dim longstatus As Long, longwarnings As Long, status As Long Dim PartName As String Dim BGName As String Dim matefeature As SldWorks.Feature Sub Main() Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc Set swAssy = swModel 'Baugruppen Name auslesen BGName = swModel.GetTitle 'Starte die "Einfügen von eines virtuellen Komponenten" Sub Call InsertNewVIrtualPart("ich_Teil_du_nix") 'Fixierung aufheben boolstatus = swModel.Extension.SelectByID2(PartName & "@" & BGName, "COMPONENT", 0, 0, 0, False, 0, Nothing, 0) swModel.UnfixComponent 'Baugruppe bearbeiten swModel.EditAssembly 'XYZ Ebenen in einen Array speichern Dim Plane(3) As String Plane(1) = "X": Plane(2) = "Y": Plane(3) = "Z" Dim i As Integer 'Alle drei Ebenen der Baugruppe (XYZ) mit dem entsprechenden Ebenen (XYZ) der virtuellen Komponenten mit Abstand Null verknüpfen For i = 1 To 3 boolstatus = swModel.Extension.SelectByID2(Plane(i) + "@" + PartName + "@" + BGName, "PLANE", 0, 0, 0, False, 0, Nothing, 0) boolstatus = swModel.Extension.SelectByID2(Plane(i), "PLANE", 0, 0, 0, True, 0, Nothing, 0) '########################################## ' Das hier geht bei mir NICHT: Set matefeature = swModel.AddMate3(swMateDISTANCE, swMateAlignCLOSEST, False, 0, 0, 0, 1, 1, 0, 0.5235987755983, 0.5235987755983, False, longstatus) 'Debug.Print matefeature.Name 'matefeature.Name = PartName + "_" + BGName + "_" & i & "_" & Int((5000000 + 1) * Rnd) '########################################## 'boolstatus = swModel.Extension.SelectByID2("Abstand49", "MATE", 0, 0, 0, False, 0, Nothing, 0) 'boolstatus = swModel.SelectedFeatureProperties(0, 0, 0, 0, 0, 0, 0, 1, 0, "Abstand 0") swModel.ClearSelection2 True Next boolstatus = swModel.ForceRebuild3(True) swModel.ClearSelection2 True End Sub Sub InsertNewVIrtualPart(NVCName) ' Get the pre-selected planar face Dim swFeature As SldWorks.Face2 Set swSelMgr = swModel.SelectionManager Set swFeature = swSelMgr.GetSelectedObject6(1, 0) ' Create the part and insert it as a virtual component in the assembly status = swAssy.InsertNewVIrtualPart(swFeature, swcomponent) If status = 1 Then swcomponent.Name2 = NVCName PartName = swcomponent.Name2 Else Debug.Print "Error code returned when attempting to insert new part as virtual component: " & status End If swModel.ClearSelection2 (True)
End Sub
------------------ http://www.worldcommunitygrid.org Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur

 Beiträge: 3743 Registriert: 21.06.2001 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform ** CSWP 04/2011 ** ** CSWE 08/2011 **
|
erstellt am: 08. Dez. 2009 17:38 <-- editieren / zitieren --> Unities abgeben:          Nur für G. Dawg
|
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur

 Beiträge: 3743 Registriert: 21.06.2001 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform ** CSWP 04/2011 ** ** CSWE 08/2011 **
|
erstellt am: 08. Dez. 2009 22:46 <-- editieren / zitieren --> Unities abgeben:          Nur für G. Dawg
|
G. Dawg Ehrenmitglied V.I.P. h.c. Teamleiter FEM Simulation

 Beiträge: 2622 Registriert: 12.07.2004 SolidWorks_2o2o SP3.o Win10_x64, Quadro_P2ooo. VisualStudio_2o19_Pro. FEM: Forge_NxT_HPC, ANSYS_WB. 3D-Printer: Ultimaker_2, Tinker_Gnome.
|
erstellt am: 09. Dez. 2009 07:47 <-- editieren / zitieren --> Unities abgeben:         
Zitat: Original erstellt von Torsten Niemeier: Warum willst Du Dir den Namen anzeigen lassen, bevor Du ihn benennst?
Hi, Torsten! Naja, hier ging es nur darum, ob ich im "matefeature" wirklich den Namen herauslesen kann. Kann ich das, kann ich ihn auch ändern. Aber hier geht weder noch. :( Und dann bin ich per Makrorecorder auf das da gestossen:
Code:
boolstatus = swModel.Extension.SelectByID2("Abstand49", "MATE", 0, 0, 0, False, 0, Nothing, 0) boolstatus = swModel.SelectedFeatureProperties(0, 0, 0, 0, 0, 0, 0, 1, 0, "Neuer Name des Abstandes 49")
Aber genau hier brauche ich den Namen der Verknüpfung, damit ich diese umbenennen kann.
------------------ http://www.worldcommunitygrid.org Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur

 Beiträge: 3743 Registriert: 21.06.2001 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform ** CSWP 04/2011 ** ** CSWE 08/2011 **
|
erstellt am: 09. Dez. 2009 11:20 <-- editieren / zitieren --> Unities abgeben:          Nur für G. Dawg
|

| |
G. Dawg Ehrenmitglied V.I.P. h.c. Teamleiter FEM Simulation

 Beiträge: 2622 Registriert: 12.07.2004 SolidWorks_2o2o SP3.o Win10_x64, Quadro_P2ooo. VisualStudio_2o19_Pro. FEM: Forge_NxT_HPC, ANSYS_WB. 3D-Printer: Ultimaker_2, Tinker_Gnome.
|
erstellt am: 10. Dez. 2009 07:22 <-- editieren / zitieren --> Unities abgeben:         
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |