Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  API Eigenschaften aller Komponenten zuweisen

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
  
E-Book: Bessere Konstruktion von Industrieanlagen dank SOLIDWORKS Simulation
Autor Thema:  API Eigenschaften aller Komponenten zuweisen (978 mal gelesen)
Solidmain1996
Mitglied


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

Beiträge: 4
Registriert: 30.11.2020

SolidWorks 2020 SP5.0

erstellt am: 30. Nov. 2020 13:06    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

Hallo zusammen,

bin neu in diesem Forum und bräuchte Hilfe von euch.
Vor folgendem Problem stehe ich:
ich würde gern über ein Makro allen Komponenten in einer geöffneten Baugruppe die Eigenschaft "xx" mit dem Eigenschaftsnamen "yy" zuweisen

hierfür habe ich folgendes Makro im www gefunden:

    Dim swApp               As SldWorks.SldWorks

    Dim swModel             As SldWorks.ModelDoc2

    Dim swConfigMgr         As SldWorks.ConfigurationManager

    Dim swConfig            As SldWorks.Configuration


    Sub main()

       Dim Eigenschaft As String
       Dim Eigenschaftsname As String

        Set swApp = Application.SldWorks

        Set swModel = swApp.ActiveDoc

        Set swConfigMgr = swModel.ConfigurationManager

        Set swConfig = swConfigMgr.ActiveConfiguration

        Eigenschaft = "xx"
        Eigenschaftsname= "yy"    

    'Add Custom Property

    swModel.AddCustomInfo2 Eigenschaftsname, swCustomInfoText, Eigenschaft

    End Sub

Quelle: https://forum.solidworks.com/thread/50497?tstart=90

ich könnte mir den Befehl <Addcumstominfo32> mit einer Schleife vorstellen, bei dem bei jedem Durchlauf einer weiteren Komponente in der Baugruppe die Eigenschaft zugewiesen wird.
Hierfür müsste ich aber iwie dem Swmodel jeweils eine der ausgelesenen Parts/Baugruppen in der Hauptbaugruppe auslesen und nacheinander zuweisen (soll mit unterschiedlichen Baugruppen funktionieren).

Gibt es für so etwas ein Befehl, bzw. könnt ihr mir weiterhelfen?

Vielen Dank im voraus!

Gruß
Soli  

[Diese Nachricht wurde von Solidmain1996 am 15. Dez. 2020 editiert.]

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

ad_man
Mitglied
freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))


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

Beiträge: 1366
Registriert: 20.12.2003

erstellt am: 30. Nov. 2020 13:29    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 Solidmain1996 10 Unities + Antwort hilfreich

Hallo Soli,

du musst im Endeffekt durch die Baugruppe "laufen" und dann die
entsprechende Komponente öffnen und mit der Eigenschaft füttern.
Sieh dir mal das folgende Beispiel aus der API-Hilfe an:

http://help.solidworks.com/2020/english/api/sldworksapi/traverse_assembly_at_component_level_example_vb.htm

Dort kannst du dann in der TraverseComponent-Prozedur deine Eigenschaft
setzen lassen.

------------------
==========
Gruß
Andreas
==========

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

nahe
Ehrenmitglied



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

Beiträge: 1747
Registriert: 18.01.2001

arbeite mit:
Dell Precision 7750
i7 2,6 GHz 6 Kerne
32GB RAM
512GB SSD
NVIDIA Quadro RTX 4000
------------------------
SWX-2020 SP5.0
EPDM
----------------
Windows 10
----------------
VB.net
VB
VBA
ein wenig Swift am Mac

erstellt am: 30. Nov. 2020 13:42    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 Solidmain1996 10 Unities + Antwort hilfreich

Noch ein Tipp, zusätzlich zu dem von Andreas,
Du schreibst zwar, dass Du "AddCustomInfo2" verwenden möchtest
bist Du Dir aber sicher, dass es eine benutzerdefinierte Eigenschaft ist oder eine konfigurationsspezifische Eigenschaft, die Du ändern möchtest?

Das führt auch immer wieder zu Verwirrungen, beim Umgang mit SWX-Eigenschaften, wenn die Teile Konfigurationen enthalten

PS
AddCustomInfo2 sollte lt. meiner Online-Hilfe (SWX 2018) nicht mehr verwendet werden,
sondern "IModelDocExtension::CustomPropertyManager"

------------------
Grüße
Heinz

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

Solidmain1996
Mitglied


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

Beiträge: 4
Registriert: 30.11.2020

SolidWorks 2020 SP5.0

erstellt am: 15. Dez. 2020 07:43    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

Vielen Dank für eure Antworten.

Folgendes Makro konnte ich mit euren und der Onlinehilfe erstellen... Funktioniert tiptop.

Option Explicit

Dim swApp          As SldWorks.SldWorks
Dim swModel        As SldWorks.ModelDoc2
Dim config        As SldWorks.Configuration

Dim lRetVal        As Long
Dim vPropNames    As Variant
Dim vPropTypes    As Variant
Dim vPropValues    As Variant
Dim valout        As String
Dim resolved      As Variant
Dim vComps        As Variant

Dim j              As Long
Dim i              As Long
Dim swComp        As SldWorks.Component2
Dim swCompModel    As SldWorks.ModelDoc2
Dim swCustProp    As CustomPropertyManager
Dim val            As String

Dim swAssy        As SldWorks.AssemblyDoc
Dim name          As String
Dim bool          As Boolean

Sub main()
      Dim Eigenschaft As String
      Dim Eigenschaftswert As String
      If MsgBox("Sind alle Komponenten ausgecheckt?", vbYesNo, "Hinweis") = vbNo Then
      Exit Sub
      Else
     
        Eigenschaft = "Projektnummer"
        Eigenschaftswert = InputBox("Bitte die Projektnummer eingeben", "Projektnummer", "XXX")


    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    swModel.DeleteCustomInfo2 "", Eigenschaft
    swModel.AddCustomInfo2 Eigenschaft, swCustomInfoText, Eigenschaftswert
    Set swAssy = swModel
    vComps = swAssy.GetComponents(False)
 
    If IsEmpty(vComps) Then Exit Sub
 
    'Schleife für alle Teile in Baugruppe
    For i = 0 To UBound(vComps)
        Set swComp = vComps(i)
        Set swCompModel = swComp.GetModelDoc
     
        'Wenn ein Teil unterdrückt ist, gehe zum nächsten Teil
        If swComp.IsSuppressed Then
            GoTo Nächste
        End If
       
        Set config = swCompModel.GetActiveConfiguration
        Set swCustProp = config.CustomPropertyManager

        lRetVal = swCustProp.GetAll2(vPropNames, vPropTypes, vPropValues, resolved)
        swCompModel.DeleteCustomInfo2 "", Eigenschaft
        swCompModel.AddCustomInfo2 Eigenschaft, swCustomInfoText, Eigenschaftswert
 
Nächste:
 
    Next i
End If
End Sub

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