Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  VBA API: Verknüpfung umbenennen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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



Sehen Sie sich das Profil von G. Dawg an!   Senden Sie eine Private Message an GDawg  Schreiben Sie einen Gästebucheintrag für GDawg

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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



Sehen Sie sich das Profil von Torsten Niemeier an!   Senden Sie eine Private Message an Torsten Niemeier  Schreiben Sie einen Gästebucheintrag für Torsten Niemeier

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für G. Dawg 10 Unities + Antwort hilfreich

Hi,

wie wär's mit str(int(...

Gruß, Torsten

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Torsten Niemeier
Ehrenmitglied V.I.P. h.c.
Maschinenbau Ingenieur



Sehen Sie sich das Profil von Torsten Niemeier an!   Senden Sie eine Private Message an Torsten Niemeier  Schreiben Sie einen Gästebucheintrag für Torsten Niemeier

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für G. Dawg 10 Unities + Antwort hilfreich

Warum willst Du Dir den Namen anzeigen lassen, bevor Du ihn benennst?

Dieser Code:
http://ww3.cad.de/foren/ubb/Forum2/HTML/016499.shtml

ist bis auf das Anzeigen des Namens vor der Benennung mit Deinem Text an der Stelle identisch.
Hat unter 2007 funktioniert. Bis auf den beschriebenen Fehler 

Gruß, Torsten

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

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



Sehen Sie sich das Profil von G. Dawg an!   Senden Sie eine Private Message an GDawg  Schreiben Sie einen Gästebucheintrag für GDawg

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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



Sehen Sie sich das Profil von Torsten Niemeier an!   Senden Sie eine Private Message an Torsten Niemeier  Schreiben Sie einen Gästebucheintrag für Torsten Niemeier

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für G. Dawg 10 Unities + Antwort hilfreich

Hallo Dawg.

Wird das Mate denn überhaupt korrekt gesetzt?
Könntest Du hinter die Zeile:

Set matefeature...

mal ein:

MsgBox (mateError)

einsetzen, und das Ergebnis mitteilen?

Gruß, Torsten

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP



Anzeige:Infos zum Werbeplatz >>

GeoVisual Civil Engineer CAD APP für 3D, Tiefbau, AEC - Architektur-, Ingenieur- und Bauwesen

Die benutzerfreundliche Softwarelösung zur Visualisierung von Infrastrukturplanungen

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



Sehen Sie sich das Profil von G. Dawg an!   Senden Sie eine Private Message an GDawg  Schreiben Sie einen Gästebucheintrag für GDawg

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Torsten,

Wie ich gehofft habe, kommt da 3x die "1" dabei heraus!
"1 = swAddMateError_NoError | Success, no error "

Wenigstens das funktioniert!   

------------------
 
http://www.worldcommunitygrid.org

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz