Slt, ich suche nach einem Makro, um meine Zeichenregisterkarten umzubenennen

Hallo 

Ich bin auf der Suche nach einem Makro, das ich anpassen kann und das es mir ermöglicht, in meiner aktiven Ansicht nach einer Eigenschaft des Modells zu suchen und nach der Erfassung das Blatt entsprechend dieser Eigenschaft für alle Blätter umzubenennen. Wir erstellen Zeichnungen, die mehrere Teile mit Gravurnummern enthalten, und es ist diese Gravurnummer, die ich importieren möchte, um den Reiter meiner Zeichnung zu benennen. Wenn Sie etwas haben, lassen Sie es mich bitte wissen. Vielen Dank! (wir befinden uns im SW 2016)

 

ERIC

2 „Gefällt mir“

Hallo

Sehen Sie, ob es Ihnen helfen kann...

http://www.lynkoa.com/tutos/macro-solidworks-renommer-feuille-1-de-la-msie-en-plan

1 „Gefällt mir“

Ich habe einen anderen gefunden, der funktionieren sollte... Möglicherweise müssen Sie den Code ändern, um Ihre Funktion (Gravurnummer) einzufügen...

Ich habe es hier im letzten Beitrag gefunden:

http://www.forum-cao-3d.fr/api-questions/renommer-feuille-mep-solidworks-t12546.html


rename_all_sheetsconfiguration.swp
1 „Gefällt mir“

Hallo

Wäre es einfacher, ein Datenstück direkt in meiner Zeichnung zu erfassen und das Makro zu bitten, das Blatt entsprechend dieser Daten umzubenennen? Denn am Ende schreibt die Nummer, die mich interessiert, automatisch in meine Patrone! Ich finde es nur abwegig, dass Dassault nicht daran denkt, diese Option direkt in die Blatteigenschaften zu integrieren!!

Vielen Dank

Vielen Dank für Ihre Antwort Cobra, aber ich hatte dieses Makro bereits, aber es nimmt keine direkte Eigenschaft im Teil selbst an, sondern entweder den Konfigurationsnamen oder den Teilenamen:(

Eine dumme Sache, aber wenn Sie diese Eigenschaft im Namen der Konfiguration lesen, sollte es funktionieren...

Hallo

Um die Eigenschaft im Schriftfeld abzurufen, ist es am einfachsten, die Anmerkungen mit einer Schleife zu überfahren.

Grundsätzlich müssen Sie diese Art von Schleife verwenden:

    Festlegen der swView=swDraw.GetFirstView '-Deklaration zum Aktivieren der Grundkarte
     Legen Sie swNote = swView.GetFirstNote fest
    swModel.ClearSelection2 (True)
    Do While Not SwNote ist nichts
        Set swAnn = swNote.GetAnnotation
        sValue = "$PRPSHEET:""" & Num_Gravage & """" ' Geben Sie den Namen der gesuchten Eigenschaft ein
        Wenn swNote.PropertyLinkedText = sValue dann
                swSheet.SetName (swNote.GetText)
                Sub beenden
        Ende, wenn
        swModel.ClearSelection2 (True)
        Festlegen von swNote = swNote.GetNext
    Schleife
 

 

Nun, danke Ceril, aber da ich kein VBA-Programmierer bin, bin ich mir nicht sicher, wo und wie ich Ihre Zeile einfügen soll, hier ist der Code, den ich versuche, an meine Bedürfnisse anzupassen! Wenn Sie mir helfen könnten, wäre das großartig. Vielen Dank

Dim swApp als SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swSheet als SldWorks.Sheet
Dim swModelview2 als Konfiguration
Dim ConfigName als Zeichenfolge
V-Sheets als Variante dimmen
Dim swView As SldWorks.View
Dim i As Integer

Sub main()
Legen Sie swApp = Application.SldWorks fest
Festlegen von swModel = swApp.ActiveDoc

vSheets = swModel.GetSheetNames
Für i = 1 TB swModel.GetSheetCount
swModel.ActivateSheet vSheets(i - 1)
Set swSheet = swModel.GetCurrentSheet
Anzahl = swModel.GetModelViewCount

Legen Sie swView = swModel.GetFirstView fest

Do While Not swView ist nichts
Konfigurationsname = swView.ReferencedConfiguration
Legen Sie swView = swView.GetNextView fest
Schleife
swSheet.SetName Konfigurationsname
Weiter i

swModel.EditRebuild3
swModel.Save2 Falsch
    
Ende Sub

1 „Gefällt mir“

Hallo

Im Anhang befindet sich der entsprechende Code. Alles, was Sie tun müssen, ist die Eingabe des Namens der gesuchten Immobilie.

 


renommage_feuille.txt

Ich habe einen kleinen Fehler gemacht, für die Verarbeitung mehrerer Blätter, ersetzen Sie exit sub durch exit do in diesem Teil:

Wenn swNote.PropertyLinkedText = sValue dann
                swSheet.SetName (swNote.GetText )
                swModel.EditRebuild3
                swModel.Save2 Falsch
                Beenden Do

1 „Gefällt mir“

Oben angekommen, Cyril! Vielen Dank für Ihre Hilfe!!

1 „Gefällt mir“

Hallo, gibt es in Bezug auf dieses neue Makro eine  Möglichkeit, ihm mitzuteilen, dass die Notiz, in der die Informationen zu finden sind, nach denen ich suche, um meine Registerkarten umzubenennen, tatsächlich mehr als eine Eigenschaft enthält?

Die Notiz setzt sich aus 2 Eigenschaften zusammen, um meine endgültige Zahl zu bilden, und ich weiß nicht, wie ich ihr das & sagen soll!

Zusammenfassend, wie können wir ihm sagen, dass er die Notiz kopieren soll, die diese Eigenschaft und diese Eigenschaft enthält?

Vielen Dank für Ihre Hilfe, ich bin schlecht bei VBA:)

 

ERIC

Hallo

Ersetzen Sie im Code die Zeile sValue = "$PRPSHEET:"""Num_Gravage""" 'Geben Sie den Namen der gesuchten Eigenschaft wie folgt ein:

sValue = "$PRP:""Num_gravage""" & "$PRP:"Andere"""" &"   "'Geben Sie den Namen der gesuchten Immobilie ein"

Wenn zwischen den beiden Eigenschaften im Inhalt der Anmerkung nichts steht, entfernen Sie das erste & " ":

sValue = "$PRP:""Num_gravage""" & "$PRP:""Andere"""" &" 

Hallo Cyril, hier ist,  was ich gemacht habe, aber es funktioniert nicht?!

    Do While Not SwNote ist nichts
        Set swAnn = swNote.GetAnnotation
        sValue = "$PRPSHEET:""Keine Zeichnung""" & "$PRPSHEET:""Kein Stück (Zeichnung)"""  'Geben Sie den Namen der Eigenschaft ein, die Sie suchen'
        Wenn swNote.PropertyLinkedText = sValue dann
                swSheet.SetName (swNote.GetText)
                swModel.EditRebuild3
                swModel.Save2 Falsch
                Beenden Do
        Ende, wenn
        swModel.ClearSelection2 (True)
        Festlegen von swNote = swNote.GetNext
    Schleife
Nächster
Ende Sub

Ich habe hier nur den Abschnitt kopiert, der uns interessiert.

$PRPSHEET oder nur $PRP?

 

Vielen Dank

ERIC

Hallo, es spielt keine Rolle, ob PRP oder PRPSHEET, es hängt davon ab, woher die Eigenschaft stammt.

Es ist unbedingt erforderlich, das & " " am Ende des sValue zu verwenden, d.h.:

sValue = "$PRPSHEET:""Keine Zeichnung""" & "$PRPSHEET:""Kein Stück (Zeichnung)"""  & "