Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Problem mit Makro zum Änderungsindizes löschen

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
  
Bechtle stärkt PLM-Geschäft mit Neugründung
Autor Thema:  Problem mit Makro zum Änderungsindizes löschen (1435 mal gelesen)
Conrad
Mitglied
Dipl.-Ing. (FH)


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

Beiträge: 280
Registriert: 20.12.2002

Windows 10
SolidWorks 2018/Sp5.0
Intel(R) XEON(R) CPU
E5-1620v4 @ 3.49Ghz
32 GB RAM
64-Bit
proALPHA
Client for Open Enterprise Server 2 SP4 (IR10)
Linux basierte file server

erstellt am: 19. Mai. 2017 11:56    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,
nach meinem SWX-API Kurs, habe ich das bei uns vorhandene Makro zum Löschen der Änderungsindices auf der Zeichnung erweitert. jetzt wird auch das Änderungs-Schriftfeld geleert!

Jetzt zum Problem:
Ab und zu kommt es vor, das das Makro nichts macht. Sprich als ob es gar nicht ausgeführt wird. Es kommt keine Fehlermeldung vom Debugger oder ähnliches. Es ist auch kein Muster erkennbar z.B. immer bei einer mehrseitigen Zeichnung, usw. tritt das Problem auf)
Führ ich das Makro in Einzelschritten aus, funktioniert es, und danach auch wieder problemlos über die Schaltfläche in SWX!
Ich steh vor einem Rätsel
Vielleicht weiß ja jemand an was es liegen kann.

Hier der Code:

Code:
'Dieses Makro löscht Änderungsindices auf der Zeichnung und leert die Änderungszeilen im Schriftkopf!
'Dies funtioniert auch bei mehreren Zeichnungsblättern!

Option Explicit

    Public Const Leer = " "
   
    Dim swApp As SldWorks.SldWorks          'Anwendung
    Dim swDraw As SldWorks.DrawingDoc      'Zeichnungsdokument
    Dim swView As SldWorks.View            'Ansicht
    Dim boolstatus As Boolean
    Dim Textelement As SldWorks.Annotation
    Dim Text As String                      'Änderungsnummer
    Dim Umrandung As Long                  'Kreis um die Änderungsnummer
    Dim swNote As SldWorks.Note            'Text (hier die zu löschenden Indices)
    Dim BlattnamenArr As Variant            'Array mit den Blattnamen
       
    Sub main()
    Set swApp = Application.SldWorks
    Set swDraw = swApp.ActiveDoc
       
    'Ermitteln der vorhandenen Ansichten und Durchlauf durch diese
    Dim ib As Long                          'ib = Zähl-Nummer des Arrays der Zeichnungsblätter
   
    BlattnamenArr = swDraw.GetSheetNames()
    For ib = LBound(BlattnamenArr) To UBound(BlattnamenArr)
        boolstatus = swDraw.ActivateSheet(BlattnamenArr(ib))
             
        'Erst werden die Indices gelöscht.
        'Holt erste Ansicht:
        swDraw.EditSheet
        Set swView = swDraw.GetFirstView
        Do While Not swView Is Nothing
       
        'Durchsucht die Ansicht nach Texten mit Kreisumrandung und markiert sie.
          Set swNote = swView.GetFirstNote
            Do While Not swNote Is Nothing
                Umrandung = swNote.GetBalloonStyle
                Text = swNote.GetText
                If Umrandung = 1 Then
                    Select Case Text
                        Case "A" To "Z", "a" To "z"    'Erfasst auch zweistellige Indices und überschriebene ohne $PRP
                        Set Textelement = swNote.GetAnnotation()
                        boolstatus = Textelement.Select2(True, 1)
                    End Select
                End If
                swDraw.RemoveGroups                    'Löst Gruppen auf, in denen Indices enthalten sind
                Set swNote = swNote.GetNext
            Loop
         
          'Löscht alle markierten Texte und springt zur nächsten Ansicht, bis keine mehr übrig ist
          swDraw.EditDelete
          Set swView = swView.GetNextView
         
        Loop
       
    Next
     
       
    'Jetzt beginnt der Teil der das "Änderungs"-Schriftfeld leert!
   
    Dim CusPropMgr As SldWorks.CustomPropertyManager
    Dim EigenschaftsnameArr As Variant                                  'Array für alle Dokumenteigenschaften
    Dim Addstatus As Long                                              'Rückgabewert für das Schreiben der Dateieigenschaft
    Dim i As Long                                                      'i = Zähl-Nummer des Arrays der Dok.-Eigenschften
   
    Set CusPropMgr = swDraw.Extension.CustomPropertyManager("")        'CusPropMgr erst mal auf "Null" setzen
    EigenschaftsnameArr = CusPropMgr.GetNames()                        'Auslesen der Dateieigenschaften
    For i = LBound(EigenschaftsnameArr) To UBound(EigenschaftsnameArr)  'Ahnzahl der Dateieigenschaften
        If InStr(EigenschaftsnameArr(i), "Aenderungs") Then            'Prüft ob Aenderung in der Eigenschaft steht
        ' Löschen der "alten Einträge" --> überschreiben mit Leerzeichen
        Addstatus = CusPropMgr.Add3(EigenschaftsnameArr(i), swCustomInfoText, Leer, swCustomPropertyReplaceValue)
        End If
   
    Next
   
    'Aktiviern von Blatt1
    boolstatus = swDraw.ActivateSheet(BlattnamenArr(0))
   
    'Neuaufbau der Zeichnung
    boolstatus = swDraw.ForceRebuild3(False)
   
End Sub


------------------
Grüße aus dem Allgäu
Conrad

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

bk.sc
Ehrenmitglied V.I.P. h.c.
Konstrukteur Sondermaschinenbau



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

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 19. Mai. 2017 14:18    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 Conrad 10 Unities + Antwort hilfreich

Hallo Conrad,

kannst du auch eine Beispielzeichnung Anhänge an Hand dieser man es nachstellen kann? Weil wenn ich mir den Code so anschaue sieht er nicht so aus als ob er bei jedem beliebigen Zeichnungsdokument irgendetwas macht sonder schon sehr speziel auf euere Dokumente / Vorgehensweisen ausgelegt ist.

Gruß
Bernd

------------------
--- Man muß nicht alles wissen, man muß nur wissen wo es steht ---

Staatlich anerkannte Deutschniete 

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

Conrad
Mitglied
Dipl.-Ing. (FH)


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

Beiträge: 280
Registriert: 20.12.2002

Windows 10
SolidWorks 2018/Sp5.0
Intel(R) XEON(R) CPU
E5-1620v4 @ 3.49Ghz
32 GB RAM
64-Bit
proALPHA
Client for Open Enterprise Server 2 SP4 (IR10)
Linux basierte file server

erstellt am: 22. Mai. 2017 08:16    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


0812142131.slddrw


0812142131.sldprt

 
Hallo Bernd,
ja das Makro ist speziell auf unsere Vorlagen, bzw. Zeichnungen zugeschnitten.
Eine Beispielzeichnung habe ich angehängt.

------------------
Grüße aus dem Allgäu
Conrad

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

bk.sc
Ehrenmitglied V.I.P. h.c.
Konstrukteur Sondermaschinenbau



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

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 23. Mai. 2017 10:27    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 Conrad 10 Unities + Antwort hilfreich

Hallo Conrad,

also ich konnte bis jetzt auf den ersten Blick keinen groben Fehler im Ablauf endecken, nur das dein Select Case etwas sinnfrei ist, da er alle Texte mit der Umrandung Kreis die mit einem Buchstaben beginnen löscht. Wenn du also auch andere Texte hättest die mit Kreis umrandet sind würde er diese auch löschen.

Wenn er dir die Symbole nicht löscht kannst du mal prüfen ob die Bezugshinweise die Umrandung haben oder nur die Texte in den Bezugshinweisen, weil wenn die Texte in den Bezugshinweisen natürlich die Umrandung haben löscht er diese nicht.

OT: Hast du mal überlegt mit der Versionstabelle zu arbeiten, weil hier könntest du dir dann das Macro sparen.

Gruß
Bernd
 

------------------
--- Man muß nicht alles wissen, man muß nur wissen wo es steht ---

Staatlich anerkannte Deutschniete 

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

Conrad
Mitglied
Dipl.-Ing. (FH)


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

Beiträge: 280
Registriert: 20.12.2002

Windows 10
SolidWorks 2018/Sp5.0
Intel(R) XEON(R) CPU
E5-1620v4 @ 3.49Ghz
32 GB RAM
64-Bit
proALPHA
Client for Open Enterprise Server 2 SP4 (IR10)
Linux basierte file server

erstellt am: 29. Mai. 2017 08:02    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 Bernd,
das Problem ist das er ja wie oben beschrieben:
Zitat:
Ab und zu kommt es vor, das das Makro nichts macht. Sprich als ob es gar nicht ausgeführt wird......Führ ich das Makro in Einzelschritten aus, funktioniert es, und danach auch wieder problemlos über die Schaltfläche in SWX!

Zur Versionstabelle:
hab ich mal probiert passt aber mit unserem PDM/ Arbeitsweise nicht ganz zusammen

------------------
Grüße aus dem Allgäu
Conrad

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

CAD-Maler
Mitglied
Konstrukteur / CAD-Admin / Mädchen für alles


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

Beiträge: 720
Registriert: 17.01.2007

SWX 2019 SP5
AutoCAD 2019
Win 10 pro 64 bit
Intel(R) Xeon(R) CPU E5-1650 v4 @ 3.60GHz
64GB RAM
Nvidia Quadro M5000
SWx EPDM

erstellt am: 29. Mai. 2017 08:23    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 Conrad 10 Unities + Antwort hilfreich

Keine Ahnung, ob es was hilft, aber probiere mal, am Ende von deinem Makro dieses Makro-Entlade-Sub aufzurufen:

Code:

Sub Unload_me()   
    Dim swApp As Object
    Dim boolstatus As Boolean
    Dim myMacroPathName As String
    Dim runMacroError As Long
   
    Set swApp = CreateObject("SldWorks.Application") 
    myMacroPathName = swApp.GetCurrentMacroPathName
    boolstatus = swApp.RunMacro2(myMacroPathName, "tools", "ciao", swRunMacroUnloadAfterRun, runMacroError)

End Sub

Sub ciao()
    'nix tun ausser verschwinden ...
End Sub


Gruß, Jens

------------------
CSWA, CSWP, CSWPA-SM & -SU =)

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

bk.sc
Ehrenmitglied V.I.P. h.c.
Konstrukteur Sondermaschinenbau



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

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 29. Mai. 2017 09:35    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 Conrad 10 Unities + Antwort hilfreich

Hallo,

noch eine allgemeine Frage zu deinem Problem, ist das Problem evtl. rechnergebunden oder tritt das auf mehreren Rechnern auf?

Du könntest auch mal ein paar Debug.Print einbauen und wenn er mal "nichts" macht in den Macroeditor wechseln und schauen ob du so die Problemstelle lokalisieren kannst.

Gruß
Bernd

------------------
--- Man muß nicht alles wissen, man muß nur wissen wo es steht ---

Staatlich anerkannte Deutschniete 

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

Conrad
Mitglied
Dipl.-Ing. (FH)


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

Beiträge: 280
Registriert: 20.12.2002

Windows 10
SolidWorks 2018/Sp5.0
Intel(R) XEON(R) CPU
E5-1620v4 @ 3.49Ghz
32 GB RAM
64-Bit
proALPHA
Client for Open Enterprise Server 2 SP4 (IR10)
Linux basierte file server

erstellt am: 29. Mai. 2017 09:50    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,
das Problem tritt sporadisch bei mehreren Rechnern auf.
Zitat:
Debug.print
das werde ich mal bei Gelegenheit einbauen.
melde mich wieder wenn ich was herausgefunden habe.

------------------
Grüße aus dem Allgäu
Conrad

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