Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Skizzensichtbarkeit - Makro macht Unsinn

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 Autodesk Produkte
Autor Thema:  Skizzensichtbarkeit - Makro macht Unsinn (2244 mal gelesen)
Doc Snyder
Ehrenmitglied V.I.P. h.c.
Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen



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

Beiträge: 13115
Registriert: 02.04.2004

AIP2013SP2.2 XPproSP2 MS-IntelliMouse-Optical SpacePilot
DellM4600 2,13GHz 2GB FxGo1400 1920x1200
am Dock Dell2711

erstellt am: 20. Aug. 2009 23: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!

Ich hab mir das unten zitierte Makro gebastelt, mit dem ich in Baugruppen oder Bauteilen sämtliche Skizzen wechselweise aus- und einblenden kann. Funktioniert soweit schön, nur habe ich bald festgetellt, dass es die Datei beschädigt.

Obwohl das Makro den Wert Visible für alle Skizzen wieder auf 1 setzt, was dann sowohl im Browser als auch in der Objektüberwachung zu sehen ist, gibt es in der damit bearbeiteten Datei nun eine Reihe Skizzen, die man trotzdem nicht mehr sehen kann. Nur wenn man sie öffnet, sind sie wieder normal zu sehen und zu bearbeiten. Auch beim Überfahren mit der Maus im Browser werden sie normal gehighlightet. Normal allerdings sind sie nicht mehr sichtbar, obwohl das Icon bunt ist. Die Sichtbarkeit mit RMK im Broser aus- und wieder einzuschalten hilft auch nichts.

Der Fehler scheint dann aufzutreten, wenn man das Makro während der Bearbeitung einer Skizze benutzt, das konnte ich in einem Test.ipt provozieren. Gerade beim Bearbeiten von Skizzen aber brauch ich das, alle anderen Skizzen unsichtbar machen zu können, und zwar in einem Master-Layout, das nur Ebenen und Skizzen enthält.

Was mir bereits aufgefallen ist: der in der Überwachung unterhalb der Zeile oPart.ComponentDefinition.Sketches.Item(#).Visible aufgeführte Wert VisibleBelowEndOfPart ist bei den betroffenen Skizzen 0, und bei den gesunden Skizzen 1.
Ich habe daraufhin in dem Makro ergänzt, auch diesen Wert auf 1 zu setzen, das hilft aber nix, er bleibt bei den betroffenen Skizzen trotzdem 0.

Bauteilende rauf und runter hat auch nix gebracht.

 

Code:
If ThisApplication.ActiveDocumentType = kPartDocumentObject Then
        Dim oPart As PartDocument
        Set oPart = ThisApplication.ActiveDocument
        Dim oSketch As Sketch
        Dim v As Boolean
        If oPart.ComponentDefinition.Sketches.Item(1).Visible Then
          v = 0
        Else
          v = 1
        End If
        For Each oSketch In oPart.ComponentDefinition.Sketches
            oSketch.Visible = v
            oSketch.VisibleBelowEndOfPart = v
        Next
    End If

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

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

daywa1k3r
Moderator
Softwareentwickler




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

Beiträge: 3497
Registriert: 01.08.2002

Alienware m17x, Win7, Inventor2012

erstellt am: 21. Aug. 2009 00:09    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 Doc Snyder 10 Unities + Antwort hilfreich

KANN ES GERADE NICHT TESTEN, ABER... WENN DU DIR SICHER BIST, DASS ES NUR IM SKIZZENBEARBEITUNGSMODUS PASSIERT, DANN BEENDE DIE BEARBEITUNG UND MERKE DIR DIE SKIZZE IN DER DIE BEARBEITUNG STATT GEFUNDEN HAT. NACH DEM DU DEIN MAKRO AUSGEFÜHRT HAST, WECHSLE WIEDER IN DIE BEARBEITUNG UND GUT IST (SKETCH OBJEKT NÄHER ANSCHAUEN...). VIELLEICHT HILFT ES?

SORRY, MEINE TASTATUR SPINNT...

------------------
Grüße Igor

FX64 Software Solutions - Inventor Tools

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

Doc Snyder
Ehrenmitglied V.I.P. h.c.
Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen



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

Beiträge: 13115
Registriert: 02.04.2004

AIP2013SP2.2 XPproSP2 MS-IntelliMouse-Optical SpacePilot
DellM4600 2,13GHz 2GB FxGo1400 1920x1200
am Dock Dell2711

erstellt am: 21. Aug. 2009 00: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

 
Zitat:
Original erstellt von daywa1k3r:
...beende die Bearbeitung und merke Dir die Skizze,in der die Bearbeitung stattgefunden hat. Nachdem Du Dein Makro ausgeführt hast, wechsle wieder in die Bearbeitung...
Das würde natürlich den Fehler vermeiden, ist aber ausgesprochen lästig und unbefriedigend. Da ist es ja schon weniger aufwändig, doch wieder wie früher mit RMK im Browser die anderen Skizzen (un)sichtbar zu schalten, das geht nämlich auch, wenn man eine Skizze geöffnet hat. Allerdings nur für die oberhalb, früher gelegenen Skizzen. Und da, so vermute ich, kommt das Problem auch her. Die unterhalb, später gelegenen Skizzen sind beim Bearbeiten einer Skizze nicht zugänglich, sie liegen praktisch unterhalb des momentanen Bauteilendes. Irgendwas läuft da schief.

Das Makro kann ich aber auf jeden Fall nicht so fehlerträchtig lassen, denn ich muss die beschädigte Datei ja auch irgendwie wieder in Ordnung bringen. Davon hängt eine ganze Konstruktion ab! Wäre blöd, wenn man da so viele Skizzen einfach nicht sehen kann.

Und weiter Beobachtungen:

1.
Abgeleitete Komponente führt alle sichtbar geschalteten Skizzen trotz der Sichtbarkeitsstörung auswählbar auf (vor allem dafür brauch ich das Makro, weil man unsichtbar geschaltete Skizzen bei AK nicht auswählen kann), im Grafikbereich sind sie aber auch da nicht zu sehen. Wenn man sie dann ausgewählt hat, sind alle Projektionen sichtbar und normal zu benutzen, aber das sind ja auch neue Skizzen in einem neuen Bauteil.

2.
Wenn ich das Bauteilende ganz nach oben schiebe und

Code:
For Each oSketch In oPart.ComponentDefinition.Sketches
            oSketch.Visible = 1
            oSketch.VisibleBelowEndOfPart = 1
        Next
auführe, sind alle Skizzen wunderbar sichtbar wie einst im Mai.
Wenn ich das Bauteilende aber dann wieder nach unten schiebe, ist alles wieder falsch wie vorher, und auch das erneute Ausführen dieses Befehls nützt nichts. 

3.
Wenn ich eine Skizze bearbeite und das eigentliche Makro ausführe, sind alle vorher gelegenen Skizzen wirklich sichtbar. Wenn ich die Skizze schließe, verschwinden sie wieder.

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

[Diese Nachricht wurde von Doc Snyder am 21. Aug. 2009 editiert.]

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

daywa1k3r
Moderator
Softwareentwickler




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

Beiträge: 3497
Registriert: 01.08.2002

Alienware m17x, Win7, Inventor2012

erstellt am: 21. Aug. 2009 08: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 Doc Snyder 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Doc Snyder:
Das würde natürlich den Fehler vermeiden, ist aber ausgesprochen lästig und unbefriedigend.

Ich meinte natürlich, du sollst dein Makro das machen lassen (Edit / ExitEdit) und nicht mit RMK.

------------------
Grüße Igor

FX64 Software Solutions - Inventor Tools

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

Doc Snyder
Ehrenmitglied V.I.P. h.c.
Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen



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

Beiträge: 13115
Registriert: 02.04.2004

AIP2013SP2.2 XPproSP2 MS-IntelliMouse-Optical SpacePilot
DellM4600 2,13GHz 2GB FxGo1400 1920x1200
am Dock Dell2711

erstellt am: 21. Aug. 2009 18:04    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 daywa1k3r:
...Makro das machen lassen...
Oh! Ich werde mir Mühe geben. 

Aber selbst wenn ich es schaffe, dass das Makro auf diese Weise dann kein Unheil mehr anrichten kann, muss ich doch auch die verstellte Datei reparieren. Ich würde gerne herausfinden, wie ich die wieder in Ordnung bringen kann.

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

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

Doc Snyder
Ehrenmitglied V.I.P. h.c.
Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen



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

Beiträge: 13115
Registriert: 02.04.2004

AIP2013SP2.2 XPproSP2 MS-IntelliMouse-Optical SpacePilot
DellM4600 2,13GHz 2GB FxGo1400 1920x1200
am Dock Dell2711

erstellt am: 21. Aug. 2009 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

Rätselhaft!

Gestern habe ich die beschädigte Datei nach allerlei Reparaturversuchen geschlossen, nicht ohne vor dem Überschreiben eine Kopie der vorherigen Version festzuhalten. Nu mach ich sie heute wieder auf (Inventor wurde nicht neu gestartet), da ist alles wieder gut.

Sollte mein Versuch mit .VisibleBelowEndOfPart=1 also doch genützt haben?

Aber wieso all das erst nach dem Schließen und wieder Öffnen?   
Ist so was üblich oder kann sich das jetzt nur um einen Irrtum meinerseits handeln?

Der Wert .VisibleBelowEndOfPart ist jetzt jedenfalls für jede Skizze wieder 1, nur für Skizzen unterhalb des Bauteilendes ist er 0. Das Verschieben des Bauteilendes verändert ihn. Mir scheint, er hat eine andere Funktion als der Name mich zunächst vermuten ließ.

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

[Diese Nachricht wurde von Doc Snyder am 21. Aug. 2009 editiert.]

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

dit71
Mitglied
Konstrukteur


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

Beiträge: 43
Registriert: 27.02.2004

AIP 2011
P4
4GB RAM
Win XP

erstellt am: 05. Mrz. 2010 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 Doc Snyder 10 Unities + Antwort hilfreich

Das mit dem Skizzen ausblenden ist eine gute Idee und ich habe es für meine Zwecke so angepaßt daß ich die Skizzen beim bearbeiten von Bauteilen in einer Baugruppe ein-und ausblenden kann (ActiveEditObject). Leider aktualisiert sich Browser und Bildschirm nur wenn ich zoome oder mit der Maus über den Browser bewege. Gibt es einen refresh Befehl für den Bildschirm? opart.update hat nichts gebracht.

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

daywa1k3r
Moderator
Softwareentwickler




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

Beiträge: 3497
Registriert: 01.08.2002

Alienware m17x, Win7, Inventor2012

erstellt am: 05. Mrz. 2010 14:19    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 Doc Snyder 10 Unities + Antwort hilfreich

Code:

ThisApplication.ActiveView.Update

?

------------------
Grüße Igor

FX64 Software Solutions - Inventor Tools

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

dit71
Mitglied
Konstrukteur


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

Beiträge: 43
Registriert: 27.02.2004

AIP 2011
P4
4GB RAM
Win XP

erstellt am: 08. Mrz. 2010 07: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 Doc Snyder 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von daywa1k3r:
Code:

ThisApplication.ActiveView.Update

?


Danke, manchmal steh ich echt auf der Leitung.

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

Alexander_M
Mitglied
Maschinenbautechniker


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

Beiträge: 926
Registriert: 09.03.2006

IV 2008 SP2
Win XP SP2
P4 3,4 GHz
3 GB RAM
NVIDA Quatro NVS 285 128MB

erstellt am: 09. Aug. 2012 10:39    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 Doc Snyder 10 Unities + Antwort hilfreich

ACHTUNG! Sie antworten auf einen Beitrag der älter als 1 Jahr ist!

Hallo die Herren,

Im IV 2012 greift dieses Makro nicht durch die Baugruppe hindurch. Heißt in der IPT macht es was es soll, in der IAM macht's nichts. Kann jemand helfen. Danke! Meine VBA Kenntnisse neben copy & paste  =0


------------------
Gruß

Alexander

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 09. Aug. 2012 19: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 Nur für Doc Snyder 10 Unities + Antwort hilfreich

ACHTUNG! Sie antworten auf einen Beitrag der älter als 1 Jahr ist!

Hmmmmm, vielleicht weil es ein Makro für Parts ist??? Dann Copy&Paste mal.

Code:
Private Sub SwitchSketchVisibility()

Dim oSketch As sketch
Dim v As Boolean

If ThisApplication.ActiveDocument.DocumentType = kPartDocumentObject Then
    Dim oPart As PartDocument
    Set oPart = ThisApplication.ActiveDocument
    If oPart.ComponentDefinition.Sketches.Item(1).Visible Then
      v = 0
    Else
      v = 1
    End If
    For Each oSketch In oPart.ComponentDefinition.Sketches
      oSketch.Visible = v
      oSketch.VisibleBelowEndOfPart = v
    Next
ElseIf ThisApplication.ActiveDocument.DocumentType = kAssemblyDocumentObject Then
    Dim oAss As AssemblyDocument
    Set oAss = ThisApplication.ActiveDocument
    Dim oRefedDoc As Document
    For Each oRefedDoc In oAss.AllReferencedDocuments
        If oRefedDoc.DocumentType = kPartDocumentObject Then
            If oRefedDoc.ComponentDefinition.Sketches.Item(1).Visible Then
                v = 0
            Else
                v = 1
            End If
            For Each oSketch In oRefedDoc.ComponentDefinition.Sketches
                oSketch.Visible = v
                oSketch.VisibleBelowEndOfPart = v
            Next
        End If
    Next
End If

ThisApplication.ActiveView.Update

End Sub


------------------
MfG
Ralf

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)2023 CAD.de | Impressum | Datenschutz