Hot News:
   

Mit Unterstützung durch:

  Foren auf CAD.de
  Inventor VBA
  Schraffur editieren und/oder Eigenschaften kopieren

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

Kundenreferenz - theapro und MuM


Mehr Videos >>>

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
MuM Multitool for Inventor , eine App
Autor Thema:  Schraffur editieren und/oder Eigenschaften kopieren (200 / mal gelesen)
Roland Schröder
Ehrenmitglied V.I.P. h.c.
Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen



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

Beiträge: 13824
Registriert: 02.04.2004

Inventor 2025.2.1
Windows 11

erstellt am: 19. Jul. 2026 20: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

Moin!

Die von Inventor automatisch gewählten Einstellungen von Schraffuren sind ja oft sehr unpassend, und als wäre das nicht schon schlimm genug, ist auch der Dialog zum Ändern von Schraffureigenschaften äußerst unkomfortabel.

Meine Frage daher: sind die Eigenschaften von Schraffuren in idw mit VBA greifbar?

Ich fände ein Makro sehr nützlich, mit dem zumindest die bereits mühsam eingestellten Eigenschaften einer Schraffur auf eine andere übertragen werden können (so wie es das bei Maßen schon im Standard gibt). Schick wäre natürlich auch, mit einem Klick einer Schraffur voreingestellte Eigenschaften zuweisen zu können.

------------------
Roland  
www.Das-Entwicklungsbuero.de

It's not the hammer - it's the way you hit!

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

KraBBy
Mitglied
Maschinenbau-Ingenieur


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

Beiträge: 788
Registriert: 19.09.2007

Inventor Professional 2025
Win11

erstellt am: 21. Jul. 2026 13:08    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 Roland Schröder 10 Unities + Antwort hilfreich

Hi Roland,

die einfache Antwort ist: Ja, seit einigen Releases sind diese Einstellungen über die API greifbar.

Ein DrawingView hat die Eigenschaft .HatchRegions. Und darunter sind  gelistet ggf. mehrere von .DrawingViewHatchRegion

------------------
Gruß KraBBy

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

KraBBy
Mitglied
Maschinenbau-Ingenieur


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

Beiträge: 788
Registriert: 19.09.2007

Inventor Professional 2025
Win11

erstellt am: 24. Jul. 2026 11:48    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 Roland Schröder 10 Unities + Antwort hilfreich

Hi,

nun habe ich etwas mehr Zeit investiert und etwas herum probiert. Das scheint nur halbherzig implementiert zu sein.

Ich wollte die Schraffuren auswählen (manuell vom Benutzer) und diese dann automatisch manipulieren, z.B. "alle gleich, wie die zuletzt markierte". Nur dass die markierten Objekte im SelectSet auf Nothing zeigen. Da geht also nix.
kann man auch hier lesen: https://forums.autodesk.com/t5/inventor-programming-forum/selectionfilterenum-filter-for-hatch-selecting-with-quot-pick/td-p/13902688
Der Workaround, der dort angerissen wird, ging mir aber jetzt zu weit.

Vielleicht führt es zu etwas, wenn Du mal genauer beschreibst, was du jeweils einstellst. Man könnte alle Schraffuren einer gewählten Ansicht beackern. Hilft evtl. falls Du immer das Muster für alle gleich einstellst o.ä. - alle Schraffuren komplett gleich ist quatsch, das weiß ich. 

------------------
Gruß KraBBy

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

Roland Schröder
Ehrenmitglied V.I.P. h.c.
Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen



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

Beiträge: 13824
Registriert: 02.04.2004

Inventor 2025.2.1
Windows 11

erstellt am: 24. Jul. 2026 14:34    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

Moin!

Und Danke schon mal fürs weitere Forschen.

Das größte Problem ist, dass die automatisch gewählte Schraffur für meinen Geschmack immer zu weit ist. Kleine Schnittflächen sind oft gar nicht mehr als solche erkennbar, und auch bei größeren Flächen wäre oft eine engere Schraffur besser.

Aber an die Grundeinstellung dieser Automatik kommt man ja nicht ran. 

Wenn es nun aber doch nicht möglich oder zu schwierig ist, eine einzelne Schraffur im VBA anzupacken, muss ich die Idee wohl begraben.

Im Übrigen müssten nicht nur alle Schraffuren einer Ansicht getrennt einstellbar sein, sondern auch alle Schraffuren eines Bauteils, denn bei Multibodies gibt es auch mehrere einzelne Schraffuren.

------------------
Roland  
www.Das-Entwicklungsbuero.de

It's not the hammer - it's the way you hit!

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

KraBBy
Mitglied
Maschinenbau-Ingenieur


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

Beiträge: 788
Registriert: 19.09.2007

Inventor Professional 2025
Win11

erstellt am: 24. Jul. 2026 19:12    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 Roland Schröder 10 Unities + Antwort hilfreich

Servus nochmal,

ich könnte mir vorstellen, alle Abstände in einer Ansicht (oder auch in allen Ansichten?) mit einem festen Faktor zu skalieren, z. B. halbieren. Evtl besser als nix...?

------------------
Gruß KraBBy

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

Roland Schröder
Ehrenmitglied V.I.P. h.c.
Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen



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

Beiträge: 13824
Registriert: 02.04.2004

Inventor 2025.2.1
Windows 11

erstellt am: 24. Jul. 2026 21: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

Zitat:
Original erstellt von KraBBy:
Evtl. besser als nix...?
Ja, auf jeden Fall. 

Vorschlag: Faktor 0,7071

------------------
Roland  
www.Das-Entwicklungsbuero.de

It's not the hammer - it's the way you hit!

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

KraBBy
Mitglied
Maschinenbau-Ingenieur


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

Beiträge: 788
Registriert: 19.09.2007

Inventor Professional 2025
Win11

erstellt am: 26. Jul. 2026 14:15    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 Roland Schröder 10 Unities + Antwort hilfreich

Servus Roland,

wie bestellt 

Code:
Option Explicit
'
Declare PtrSafe Function GetKeyState Lib "user32" (ByVal vKey As Integer) As Integer
' gehört zu dem unteren Teil (Tastendruck erkennen)
'


Public Sub scaleHatch()
' in der markierten Ansicht alle Hatch mit einem Faktor skalieren
' neuer Scale = alter Scale * Faktor f
' läuft auch für mehrere markierte Ansichten
' UMSCHALT-Taste: Faktor wird für alle auf 1 zurückgesetzt

Dim f As Double: f = 1 / Sqr(2)    '0.7071      ' ### hier ggf. den Faktor anpassen

   
    'beim Aufruf gedrückte Shift-Taste erkennen
    Dim bShift As Boolean
    If ShiftPressed Then bShift = True Else bShift = False
   
   
    Dim oDoc As DrawingDocument
    Set oDoc = ThisApplication.ActiveDocument
    'falls das aktive Doc etwas anderes ist als "Drawing" gibts einen Fehler - nicht abgefangen
   
    Dim oSel As SelectSet
    Set oSel = oDoc.SelectSet
    If 0 = oSel.Count Then
        MsgBox "Es muss mindestens eine Ansicht ausgewählt sein!", vbInformation, "nix markiert - abgebrochen"
        Exit Sub
    End If
   
    ' Den Ablauf in eine einzige Rückgängig-Aktion packen  (ansonsten 1 Aktion pro Hatch)
    Dim oTxnMgr As TransactionManager
    Set oTxnMgr = ThisApplication.TransactionManager
    Dim oTxn As Transaction
   
    'Start oTxn
    Set oTxn = oTxnMgr.StartTransaction(ThisApplication.ActiveDocument, "Makro 'scaleHatch'")
   
    'Deklarationen, die in den Schleifen gebraucht werden
    Dim obj As Object, oDrwView As DrawingView
    Dim oHatch As DrawingViewHatchRegion
   
    'Schleife durch alle Objekte der Auswahl
    For Each obj In oSel
        If TypeOf obj Is DrawingView Then
            Set oDrwView = obj
   
            'Schleife durch alle Schraffuren der Ansicht
            For Each oHatch In oDrwView.HatchRegions
               
                oHatch.[Scale] = oHatch.[Scale] * f
                'eckige Klammern sind auf der linken Seite erforderlich
               
                If bShift Then oHatch.[Scale] = 1  'Besonderheit für Shift-Taste
               
            Next 'oHatch
        Else 'markiertes obj ist kein drawingView
            ' nix tun - es geht mit dem nächsten weiter
        End If
    Next 'obj
       
'    If False Then
'        'vor einem ExitSub die Transaction abbrechen!      ### falls das mal nötig wäre
'        oTxn.Abort
'        Exit Sub
'    End If
'    '...
       
     
    'Rückgängig-Aktion abschließen
    oTxn.End
   
End Sub


Public Function ShiftPressed() As Boolean
'Returns True if shift key is pressed
    ShiftPressed = GetKeyState(vbKeyShift) < 0          ' 16 = vbKeyShift
End Function

Public Function StrgPressed() As Boolean
'Returns True if Ctrl/Strg key is pressed
    StrgPressed = GetKeyState(vbKeyControl) < 0          ' 17 = vbKeyControl
End Function



gedachter Ablauf: Ansicht markieren (oder auch gleich mehrere), Makro "scaleHatch" ausführen.
Damit werden alle Schraffuren der Ansicht(en) mit einem Faktor skaliert.

Als Zugabe noch die Funktion, alle Schraffuren wieder auf 1 zu setzen. Dazu muss nur beim Makro-Start die Umschalt-Taste gedrückt sein. Ggf. wären noch weitere Varianten denkbar (mit Strg und Kombinationen daraus).

------------------
Gruß KraBBy

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

Roland Schröder
Ehrenmitglied V.I.P. h.c.
Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen



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

Beiträge: 13824
Registriert: 02.04.2004

Inventor 2025.2.1
Windows 11

erstellt am: 26. Jul. 2026 15:26    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

Moin!

Das ist ja nett, Danke! Hab's aber noch nicht ausprobiert.

Dafür ist mir gerade vorhin etwas Anderes, aber vermutlich Verwandtes aufgefallen: Manchmal geschieht es, dass Schraffuren aus Versehen unsichtbar geschaltet werden (direkt unter "edit" steht "hide"). Die betroffene Schraffur ist dann nicht mehr anklickbar, und wenn Du das nicht schnell genug merkst, bleibt nur mehrfaches "zurück" als sehr unwillkommene Lösung.

Frage daher (nur aus Neugier, keine Bestellung): Sind auch die unsichtbar geschalteten Schraffuren in dem Auswahlset enthalten und könnten also auf dem gleichen Weg sichtbar gemacht werden?

Und noch mal zusammengefasst, damit ich es richtig verstehe: Nach derzeitigen Stand der Dinge, lassen sich auf diesem Weg nur alle Schraffuren einer Ansicht gemeinsam behandeln.

------------------
Roland  
www.Das-Entwicklungsbuero.de

It's not the hammer - it's the way you hit!

[Diese Nachricht wurde von Roland Schröder am 26. Jul. 2026 editiert.]

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

Roland Schröder
Ehrenmitglied V.I.P. h.c.
Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen



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

Beiträge: 13824
Registriert: 02.04.2004

Inventor 2025.2.1
Windows 11

erstellt am: 26. Jul. 2026 15: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

So, jetzt auch Test:

Mit dem "getKeyState" komme ich nicht klar. Die Eröffnung "Declare..." steht nach dem Einfügen in den VBA-Editor dann vor dem Public-Sub-Trennstrich, wird daher mit F5 nicht ausgeführt, und dann gibt es Mecker, wenn nachher "getKeyState" benutzt werden soll.

Wenn ich die Public Sub alleine in den VBA-Editor einfüge, funktioniert es, allerdings dann natürlich nur in die eine Richtung.

Die mit GetKeyState beabsichtigte Möglichkeit des Rückgängig-Machens finde ich sehr gut, würde es aber eher als Umkehr formulieren, also Faktor 1,4142, das erweitert dann die Nutzungsmöglichkeit des Tools auf Vergrößern des Schraffurabstandes (das könnte ja auch mal gewünscht sein).

[später]: und noch ein Argument für Faktor 1,4142 statt Festwert 1 bei Shift: wenn bei besonders kleinen Flächen die Schraffur manuell enger gestellt worden ist, bleibt dieser Unterschied erhalten. Der Fall, die Schraffur weiter zu stellen, ergibt sich z. B. dann, wenn der Maßstab einer Ansicht geändert wird.


------------------
Roland  
www.Das-Entwicklungsbuero.de

It's not the hammer - it's the way you hit!

[Diese Nachricht wurde von Roland Schröder am 26. Jul. 2026 editiert.]

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

KraBBy
Mitglied
Maschinenbau-Ingenieur


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

Beiträge: 788
Registriert: 19.09.2007

Inventor Professional 2025
Win11

erstellt am: 26. Jul. 2026 18: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 Roland Schröder 10 Unities + Antwort hilfreich

Der Code sollte funktionieren, wenn er als Ganzes ist ein eigenes Modul eingefügt wird. Kann natürlich sein, dass ich noch einen Fehler gemacht habe...

Das "Option Explicit" ist dann ganz zu Beginn, gefolgt von "Declare ...". Die Subs kommen danach. Diese Reihenfolge ist gefordert. (Die Reihenfolge der Subs selbst ist nicht relevant.)
Falls Du den Code in ein bestehendes Modul eingefügt hast, ist das evtl. der Grund für 'gemecker'.

Das mit der Umschalt-Taste funktioniert übrigens nicht im VBA-Editor (zumindest habe ich das nocht nicht zustande bekommen). Ich lege mir den Befehl auf die IV-Benutzeroberfläche - kennst Du bestimmt.

Zu den weiteren Wünschen / Ideen, wie wäre folgender Vorschlag?

  • Umschalt-Taste benutzt den Faktor Wurzel(2), also Abstände vergrößern
  • Strg-Taste setzt den Wert auf 1 fest
  • eigenes Sub für "showAllHatches". Wäre auch mittels Strg&Shift denkbar, wäre mir aber zu anders, als das ich das in den gleichen Befehl packen würde.

in die innere Schleife gehört dann

Code:
oHatch.Visible = True
'oder etwas eleganter
If not oHatch.Visible then oHatch.Visible = true

------------------
Gruß KraBBy

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

KraBBy
Mitglied
Maschinenbau-Ingenieur


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

Beiträge: 788
Registriert: 19.09.2007

Inventor Professional 2025
Win11

erstellt am: 26. Jul. 2026 18:54    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 Roland Schröder 10 Unities + Antwort hilfreich

meinen Vorschlag umgesetzt
Code:
Option Explicit
'
Declare PtrSafe Function GetKeyState Lib "user32" (ByVal vKey As Integer) As Integer
' gehört zu dem unteren Teil (Tastendruck erkennen)
'


Public Sub scaleHatch()
' in der markierten Ansicht alle Hatch mit einem Faktor skalieren
' neuer Scale = alter Scale * Faktor f
' läuft auch für mehrere markierte Ansichten
' UMSCHALT-Taste:   Kehrwert des Faktors wird benutzt
' STRG-Taste:       Faktor wird für alle auf 1 zurückgesetzt

Dim f As Double: f = 1 / Sqr(2)    '0.7071      ' ### hier ggf. den Faktor anpassen

   
    'beim Aufruf gedrückte Shift- u. Strg-Taste erkennen
    Dim bShift As Boolean, bStrg As Boolean
    If ShiftPressed Then bShift = True Else bShift = False
    If StrgPressed Then bStrg = True Else bStrg = False
   
'    bShift = True      'zum Testen im VBA-Editor, Zeilen einzeln ein/auskommentieren
'    bStrg = True
   
    'so wäre die Abzweigung in anderes Sub möglich       ### auskommentiert
'    If bShift And bStrg Then       'bei Strg UND Shift
'        Call showAllHatches        'Sub aufrufen
'        Exit Sub                   'dann hier raus
'    End If
   
    'Faktor ggf. verändern
    If bShift Then f = 1 / f
   
    Dim oDoc As DrawingDocument
    Set oDoc = ThisApplication.ActiveDocument
    'falls das aktive Doc etwas anderes ist als "Drawing" gibts einen Fehler - nicht abgefangen
   
    Dim oSel As SelectSet
    Set oSel = oDoc.SelectSet
    If 0 = oSel.Count Then
        MsgBox "Es muss mindestens eine Ansicht ausgewählt sein!", vbInformation, "nix markiert - abgebrochen"
        Exit Sub
    End If
   
    ' Den Ablauf in eine einzige Rückgängig-Aktion packen   (ansonsten 1 Aktion pro Hatch)
    Dim oTxnMgr As TransactionManager
    Set oTxnMgr = ThisApplication.TransactionManager
    Dim oTxn As Transaction
   
    'Start oTxn
    Set oTxn = oTxnMgr.StartTransaction(ThisApplication.ActiveDocument, "Makro 'scaleHatch'")
   
    'Deklarationen, die in den Schleifen gebraucht werden
    Dim obj As Object, oDrwView As DrawingView
    Dim oHatch As DrawingViewHatchRegion
   
    'Schleife durch alle Objekte der Auswahl
    For Each obj In oSel
        If TypeOf obj Is DrawingView Then
            Set oDrwView = obj
   
            'Schleife durch alle Schraffuren der Ansicht
            For Each oHatch In oDrwView.HatchRegions
               
                oHatch.[Scale] = oHatch.[Scale] * f
                'eckige Klammern sind auf der linken Seite erforderlich
               
                If bStrg Then oHatch.[Scale] = 1   'Besonderheit für Strg-Taste
               
            Next 'oHatch
        Else 'markiertes obj ist kein drawingView
            ' nix tun - es geht mit dem nächsten weiter
        End If
    Next 'obj
       
'    If False Then
'        'vor einem ExitSub die Transaction abbrechen!      ### falls das mal nötig wäre
'        oTxn.Abort
'        Exit Sub
'    End If
'    '...
       
      
    'Rückgängig-Aktion abschließen
    oTxn.End
   
End Sub


Public Sub showAllHatches()
' in der markierten Ansicht werden alle Hatches auf sichtbar geschalten
' läuft auch für mehrere markierte Ansichten

' UMSCHALT-Taste:   [keine Funktion]
' STRG-Taste:       [keine Funktion]


    'beim Aufruf gedrückte Shift- u. Strg-Taste erkennen
'    Dim bShift As Boolean, bStrg As Boolean
'    If ShiftPressed Then bShift = True Else bShift = False
'    If StrgPressed Then bStrg = True Else bStrg = False

       
    Dim oDoc As DrawingDocument
    Set oDoc = ThisApplication.ActiveDocument
    'falls das aktive Doc etwas anderes ist als "Drawing" gibts einen Fehler - nicht abgefangen
   
    Dim oSel As SelectSet
    Set oSel = oDoc.SelectSet
    If 0 = oSel.Count Then
        MsgBox "Es muss mindestens eine Ansicht ausgewählt sein!", vbInformation, "nix markiert - abgebrochen"
        Exit Sub
    End If
   
    ' Den Ablauf in eine einzige Rückgängig-Aktion packen   (ansonsten 1 Aktion pro Hatch)
    Dim oTxnMgr As TransactionManager
    Set oTxnMgr = ThisApplication.TransactionManager
    Dim oTxn As Transaction
   
    'Start oTxn
    Set oTxn = oTxnMgr.StartTransaction(ThisApplication.ActiveDocument, "Makro 'showAllHatches'")
   
    'Deklarationen, die in den Schleifen gebraucht werden
    Dim obj As Object, oDrwView As DrawingView
    Dim oHatch As DrawingViewHatchRegion
   
    'Schleife durch alle Objekte der Auswahl
    For Each obj In oSel
        If TypeOf obj Is DrawingView Then
            Set oDrwView = obj
   
            'Schleife durch alle Schraffuren der Ansicht
            For Each oHatch In oDrwView.HatchRegions
               
                If Not oHatch.Visible Then oHatch.Visible = True
               
            Next 'oHatch
        Else 'markiertes obj ist kein drawingView
            ' nix tun - es geht mit dem nächsten weiter
        End If
    Next 'obj
          
    'Rückgängig-Aktion abschließen
    oTxn.End
   
End Sub

Public Function ShiftPressed() As Boolean
'Returns True if shift key is pressed
    ShiftPressed = GetKeyState(vbKeyShift) < 0          ' 16 = vbKeyShift
End Function

Public Function StrgPressed() As Boolean
'Returns True if Ctrl/Strg key is pressed
    StrgPressed = GetKeyState(vbKeyControl) < 0          ' 17 = vbKeyControl
End Function


------------------
Gruß KraBBy

[Diese Nachricht wurde von KraBBy am 26. Jul. 2026 editiert.]

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

Roland Schröder
Ehrenmitglied V.I.P. h.c.
Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen



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

Beiträge: 13824
Registriert: 02.04.2004

Inventor 2025.2.1
Windows 11

erstellt am: 26. Jul. 2026 20:52    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

Was so ein verregneter Sonntag doch alles hervorbringen kann! 

Einfügen in ein eigenes Modul habe ich schon probiert. Da kommt dann "Compile error, Expected End Function". 

------------------
Roland  
www.Das-Entwicklungsbuero.de

It's not the hammer - it's the way you hit!

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

Roland Schröder
Ehrenmitglied V.I.P. h.c.
Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen



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

Beiträge: 13824
Registriert: 02.04.2004

Inventor 2025.2.1
Windows 11

erstellt am: 26. Jul. 2026 21:55    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

So, hab mal weiter probiert mit Macro-Aufruf aus dem GUI, dann kommt der zuvor erwähnte Fehler nicht mehr. Das ist also kein Thema.

"Alle Schraffuren wieder sichtbar" geht auch.

Allerdings ist das mit Shift und Ctrl noch nicht richtig. Ctrl macht keine Änderung, es wird also weiter immer enger, und Shift macht alles auf 1.
Was mich sehr wundert, weil ich das so im Code nicht erkennen kann.

Ich habe aber auch noch einen Wunsch:
Ist es möglich, die Auswahl bestehen zu lassen? Faktor 0,7... finde ich nach wie vor richtig, aber manchmal ist es mehrfach erforderlich, und oft will ich auch wieder zurück (wie das bei grafischen Sachen oft so ist, dass ich das Ergebnis gar nicht mehr so toll finde, wenn ich es dann sehe.)

------------------
Roland  
www.Das-Entwicklungsbuero.de

It's not the hammer - it's the way you hit!

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

KraBBy
Mitglied
Maschinenbau-Ingenieur


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

Beiträge: 788
Registriert: 19.09.2007

Inventor Professional 2025
Win11

erstellt am: 26. Jul. 2026 22:55    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 Roland Schröder 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Roland Schröder:
Allerdings ist das mit Shift und Ctrl noch nicht richtig. Ctrl macht keine Änderung, es wird also weiter immer enger, und Shift macht alles auf 1.

Das klingt so, als ob es der ältere Code wäre. Ist der noch vorhanden?
Zitat:
Ich habe aber auch noch einen Wunsch:
Ist es möglich, die Auswahl bestehen zu lassen?


Das wäre möglich. Ein einfaches rückgängig reicht nicht?

------------------
Gruß KraBBy

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

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

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

(c)2026 CAD.de | Impressum | Datenschutz