Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Bug in Document.Dirty?

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:  Bug in Document.Dirty? (1631 mal gelesen)
pbm
Mitglied
Ingenieur


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

Beiträge: 76
Registriert: 19.04.2004

erstellt am: 19. Apr. 2004 15:20    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

Hi,

ich brauche Hilfe, weil ich nicht weiterkomme.
Laut Inventor APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface) Hilfe ist Dirty in Document-Object ein read-write property.
Wenn aber das Property schon True ist, kann ich mit oDoc.Dirty=False (s. Code) das Wert nicht ändern.
Ist das ein Bug in Inventor (R8, SP 1) oder mache ich was falsch.

Danke im Voraus...

Sub main()
  Dim oApp As Application
  Dim oDoc As Document
  Set oApp = ThisApplication
  Set oDoc = oApp.ActiveDocument
  oDoc.Dirty = False
  MsgBox oDoc.Dirty
End Sub

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

waldi
Mitglied
 Softwerker


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

Beiträge: 272
Registriert: 07.08.2001

erstellt am: 19. Apr. 2004 19:00    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 pbm 10 Unities + Antwort hilfreich

Hi,

würde mich wundern, wenn du das dirty Flag einfach auf False setzen kannst. Das Flag zeigt dir, ob an deinem Dokument seit dem letzten Speichern etwas geändert wurde. Auf False bringst du es normalerweise mit Document.Save oder Document.SaveAs

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: 19. Apr. 2004 20: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 Nur für pbm 10 Unities + Antwort hilfreich

Mich würde das auch stark wundern. Ich glaube eher an das "Copy and Paste Syndrom" beim Hilfe Ersteller 

Nein, "dirty" Eigenschaft als write würde keinen Sinn ergeben. Das ist ein Schreibfehler...

------------------
Grüße daywa1k3r

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

waldi
Mitglied
 Softwerker


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

Beiträge: 272
Registriert: 07.08.2001

erstellt am: 20. Apr. 2004 07: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 pbm 10 Unities + Antwort hilfreich

Hi nochmal,

nene, Sachen gibts. Es gibt tatsächlich tief in den tlbs versteckt eine get und put Property für das Dirty Flag. Man kann das Ding also tatsächlich (theoretisch) selbst auf False setzen. Angenommen wird der Wert allerdings nicht. Ich glaube, da hat nicht nur beim Doku erstellen Mister Copy'n'Paset zugeschlagen. :-)

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

PaulSchuepbach
Moderator
Programmierer




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

Beiträge: 1005
Registriert: 01.10.2003

erstellt am: 20. Apr. 2004 07:53    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 pbm 10 Unities + Antwort hilfreich

Hallo Zusammen,

das ist mit Garantie ein Schreibfehler (bestimmt der Einzige in der APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface)-Hilfe....) - noch was: die dirty-flag arbeitet nicht immer 100% zuverlaessig. Also Vorsicht damit.

Gruesse,

Paul

www.morecam.ch/cad.htm

www.ashburyroad.com

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: 20. Apr. 2004 07: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 pbm 10 Unities + Antwort hilfreich

Hi,

also ich habe gestern auch mit Mathias darüber diskutiert und fazit:

dirty flag auf true zu setzen ist vielleicht gar nicht so vekehrt. Du hast an der Datei etwas gemacht, möglicher Weise mit Apprentice, so dass der Inventor nichts davon bekommt, und willst ihm aber sagen, dass du was gemacht hast. Ok, dirty flag auf true.

Dirty flag auf false ist eigentliche Schwachsinn. Das ist ja schon klar. Aber wie schon bekannt hat Boolean halt true und false, und da kommt der Chaos.

Letztendlich scheint mir das doch richtig zu funktionieren, da:

1. die benutzen eine Boolean
2. die unterbinden false flag

Also, es scheint alles klar zu sein 

Aber cool wäre es trotzdem:

Das Dokument:
Hilfe, hilfe ich bin "dirty"

Der Programmierer: Shut up !

you.dirty = false
you.update 

------------------
Grüße daywa1k3r

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: 20. Apr. 2004 07: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 Nur für pbm 10 Unities + Antwort hilfreich

Zitat:
die dirty-flag arbeitet nicht immer 100% zuverlaessig

Das geht ja noch. Mein Gott wer arbeitet noch 100% 
Aber langsam glaube ich dass die healt flag grundsätzlich falsch arbeitet.
Wenn du da true bekommst kannst ruhig von false ausgehen  Die hätten die auch LSDhealt nennen können.

------------------
Grüße daywa1k3r

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

waldi
Mitglied
 Softwerker


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

Beiträge: 272
Registriert: 07.08.2001

erstellt am: 20. Apr. 2004 08:22    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 pbm 10 Unities + Antwort hilfreich

Hast du auch beachtet, das HealthStatus kein Boolean sondern einen long liefert? Ich prüfe immer auf kUpToDateHealth und das läuft zuverlässig.

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: 20. Apr. 2004 08:42    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 pbm 10 Unities + Antwort hilfreich

Ja, klar HealthStatusEnum, aber letztendlich interessiert mich ja auch nur ob kUpToDateHealth (11778) Object is up-to-date. Daher ist ja fast wie Boolean  Allerding funktioniert es bei mir sehr selten. Ich muss aber dazu sagen, dass ich es explizit auf ApprenticeServerDrawingDocument anwende. Wo es mit 80% Sicherheit nicht funktionert ist:

1. Wenn die referenzierende Dokumente eine Textur haben
2. Bei der Adaptivität von refernzierneden Dokumenten

Aber das ist leider nicht alles. Das Problem ist aber bekannt, und die Leute arbeiten daran. Mich würde aber interessieren ob du mit ApprenticeServerDrawingDocument wohl keine Probleme hast ?

------------------
Grüße daywa1k3r

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

waldi
Mitglied
 Softwerker


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

Beiträge: 272
Registriert: 07.08.2001

erstellt am: 20. Apr. 2004 08: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 Nur für pbm 10 Unities + Antwort hilfreich

Ich benutze es nur bei Features und da kann man sich schon darauf verlassen, dass es stimmt. Aber in deinem Fall ist wohl ein Bug.

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

pbm
Mitglied
Ingenieur


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

Beiträge: 76
Registriert: 19.04.2004

erstellt am: 20. Apr. 2004 13:03    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

Hi,

danke erstmals für die zahlreichen Beiträgen.
dirty=false macht schon Sinn, wenn ich ein Dokumnet mit VB öffne und Änderungen mache, die für den User nicht interresant sind. Dann sage am Ende durty=false.
Das Beispiel kommt von EDM-Bereich, wenn ich ein Dokument zum Anschauen lade. Dann macht das Inv-Fenster "Sollen die Änderungen gespeichert werden" beim Schliessen für den User kein Sinn, und diese Meldung kann man mit setzen von dirty=false elegant umgehen, schein aber doch nicht zu funktionieren.
Andere Möglichkeit ist Zwischenspeichern oder Schliessen-Event abzufangen, ich wollte aber wissen was die klugen Köpfen über dirty sagen werden :-)

Gruss,
pbm

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: 20. Apr. 2004 13:32    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 pbm 10 Unities + Antwort hilfreich

Zitat:

Das Beispiel kommt von EDM-Bereich, wenn ich ein Dokument zum Anschauen lade. Dann macht das Inv-Fenster "Sollen die Änderungen gespeichert werden" beim Schliessen für den User kein Sinn, und diese Meldung kann man mit setzen von dirty=false elegant umgehen

Folgendes:

1. Bauteil1.ipt erstellen
2. Bauteil1.idw erstellen mit referenz auf Bauteil1.ipt
3. Beide Dateien schliessen und die idw mit Apprentice prüfen
----a) Dirty = False
----b) HealtStatus = Object is up-to-date.

4. Bauteil1.ipt verändern - abspeichern - schliessen
5. Die idw mit Apprentice prüfen
----a) Dirty = False
----b) HealtStatus = Object needs to be recomputed with respect to its 'driver(s).'

6. IDW öffnen nichts machen - schliessen -> Meldung "Änderungen an Bauteil1.idw speichern ?"
7. Die idw mit Apprentice prüfen
----a) Dirty = False
----b) HealtStatus = Object needs to be recomputed with respect to its 'driver(s).'

Was ich sagen will, ist dass du die Meldung nicht mit dirty = false umgehen kannst, da dirty ja sowieso schon auf false ist. Und HealtStatus ist Read-only. Aber wie schon gesagt, das ist Apprentice...

------------------
Grüße daywa1k3r

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

pbm
Mitglied
Ingenieur


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

Beiträge: 76
Registriert: 19.04.2004

erstellt am: 20. Apr. 2004 13: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

aller klar,

danke noch mal...

- pbm

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