Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Makroproblem mit Attributen

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
  
Zerspanungstreff mit SolidCAM bei der Hoffmann GmbH in Achim/Bremen
Autor Thema:  Makroproblem mit Attributen (514 mal gelesen)
grisu486
Mitglied
Senior Technical Consultant MCAD


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

Beiträge: 575
Registriert: 14.11.2005

erstellt am: 20. Dez. 2005 10:59    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 ihr Fachleute!

Kurz vor Weihnachten möchte ich alle geladenen Parts mit einem bestimmten Attribut versehen. Dazu habe ich das Makro "Alle offenen Dateien speichern" von Stefan Berlitz als Basis genommen.
Das Makro rennt auch brav durch alle geladenen Parts, aber es gelingt mir nicht, ein Attribut neu anzulegen. Wenn das Attribut schon besteht, dann wird es auch brav mit dem neuen Wert gefüllt.

Watt nu??

Natürlich könnte ich auch den SolidWorksExplorer nehmen, um das Attribut zu erstellen. Aber das dauert ja ewig!!

Viele Grüße aus dem wilden Süden


uwe

'********************************
Sub main()
Dim SldWorks As Object
Dim ModelDoc As Object
Dim text As String

' an SolidWorks anklinken
Set SldWorks = CreateObject("SldWorks.Application")
Set ModelDoc = SldWorks.ActiveDoc
   
' durch alle offenen Dokumente gehen
Set ModelDoc = SldWorks.GetFirstDocument
   
While Not ModelDoc Is Nothing
               
ModelDoc.AddCustomInfo3 "", "Position", swCustomInfoText, "Position"
'Das klappt nicht!

ModelDoc.CustomInfo2("", "Position") = "1234"
'Wenn das Attribut "Position" existiert, wird "1234" eingetragen

text = ModelDoc.CustomInfo2("", "Position")
MsgBox text
'Hier die Rückmeldung, ob es geklappt hat

' und das nächste Dokument
Set ModelDoc = ModelDoc.GetNext
Wend
 
End Sub

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

Lutz Federbusch
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. Maschinenbau



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

Beiträge: 3094
Registriert: 03.12.2001

alle SW seit 97+
AutoCAD2016-2022
ERP ProAlpha + CA-Link
Intel Core i7-7820K 32GB
Win10x64 Quadro K5000
SpacePilot

erstellt am: 20. Dez. 2005 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 Nur für grisu486 10 Unities + Antwort hilfreich

Probiere mal, ob das hier geht. Bei Dir scheinen nur die Klammern zu fehlen bei AddCustomInfo?!


Sub main()
    Dim SldWorks As Object
    Dim ModelDoc As Object
    Dim text As String
    Dim Erfolg As Boolean
    Dim Infoanzahl As Integer
    Dim i As Integer
    Dim Infonamen As Variant
    Dim da As Boolean
    Dim xx As String
    Const swCustomInfoText = 30
Set SldWorks = CreateObject("SldWorks.Application")
Set ModelDoc = SldWorks.ActiveDoc
xx = "Dein Text..."
If Not ModelDoc Is Nothing Then
    Infoanzahl = ModelDoc.GetCustomInfoCount2("") ' Anzahl der Eigenschaften
    If (Infoanzahl) Then
        Infonamen = ModelDoc.GetCustomInfoNames2("")
        i = 0
        da = False
        While i < UBound(Infonamen) - 1 And da = False
            If Infonamen(i) = "Position" Then da = True
        Wend
    End If
    If da = False Then Erfolg = ModelDoc.AddCustomInfo3("", "Position", swCustomInfoText, xx)
    text = ModelDoc.CustomInfo2("", "Position")
    MsgBox text                                    'Hier die Rückmeldung, ob es geklappt hat
End If
End Sub

------------------
Lutz Federbusch
Mein Gästebuch

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

Lutz Federbusch
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. Maschinenbau



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

Beiträge: 3094
Registriert: 03.12.2001

alle SW seit 97+
AutoCAD2016-2022
ERP ProAlpha + CA-Link
Intel Core i7-7820K 32GB
Win10x64 Quadro K5000
SpacePilot

erstellt am: 20. Dez. 2005 14:44    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 grisu486 10 Unities + Antwort hilfreich


attribute.swp.txt

 
Hmm, die innere Schleife mußte noch einmal ausgetauscht werden;
jetzt stimmts wirklich...

------------------
Lutz Federbusch
Mein Gästebuch

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

grisu486
Mitglied
Senior Technical Consultant MCAD


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

Beiträge: 575
Registriert: 14.11.2005

erstellt am: 20. Dez. 2005 16:45    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

Cooooool!
Ich habe noch ein Klitzekleinesbisschen umgestrickt, und jetzt läuft es auch durch alle geladenen Parts durch und attributiert völlig korrekt.

Vielen Dank und 10 Dingsbumse für Dich!

         

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