Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Catia V5 Drawing: Is Detail Sheet?

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
Autor Thema:  Catia V5 Drawing: Is Detail Sheet? (2106 mal gelesen)
michse02
Mitglied



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

Beiträge: 13
Registriert: 12.03.2009

Catia V5R16-R19

erstellt am: 03. Jul. 2009 10: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

Hallo,

ich habe folgendes Problem:

Ich habe eine VB.NET Anwendung welche auf Catia V5 zugreift. Dabei prüfe ich, ob ein Sheet ein Detail Sheet ist:

Code:
If Not sheet.IsDetail Then

Wenn ich die Anwendung als Exe Datei ausführe funktioniert das super. Wenn ich die Anwendung als Class Library erstelle und diese direkt aus Catia über ein Catvba starte ist das Ergebnis immer true, egal ob es ein Detail sheet ist oder nicht.
Also IsDetail ist immer true.

Jemand ne Idee wie ich da ein richtiges Ergebnis bekomme oder wie ich anderweitig sicher feststellen kann ob es sich um ein Detail Sheet handelt oder eben nicht?

Gruß
michse02

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

Randle
Mitglied
CAD/PLM Consultant


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

Beiträge: 695
Registriert: 12.04.2003

Win10 x64
CATIA V5 R18, R19, R21, R27-29

erstellt am: 03. Jul. 2009 10:36    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 michse02 10 Unities + Antwort hilfreich

Hallo,

ich kann dir leider keine Lösung anbieten, aber ich kann dir zumindestens sagen das du mit dem Problem nicht alleine bist. Ich hatte genau das selbe Phänomen. Wenn ich das Programm aus dem VB Editor heraus aufrufe funktioniert es, als DLL nicht. Wäre auch an einer Lösung/Erklärung interessiert.

------------------
MfG
Randle

! It's not a bug, it's a feature !

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

zoltan.bekesi
Mitglied



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

Beiträge: 321
Registriert: 22.10.2006

Job:
CATIA V5R19 / XP 32bit
MS Office 2003
Microstation V8 2004 Edition
DELL Precision M6300

erstellt am: 03. Jul. 2009 18: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 michse02 10 Unities + Antwort hilfreich

Hallo,

ich selber hatte mit einige Funktionen in VBA Probleme, die einen Boolean Wert zurückgeben. Negieren wurde einfach nicht ausgeführt. Die Probleme gab es sowohl mit CATIA, als auch mit Scripting.Filesystemobject.
Erklären kann ich es nicht. Ich habe dort einfach die Bedingung im if umgekehrt.
Also anstatt

Code:
If Not sheet.IsDetail Then
'Code hier
Endif
praktisch
Code:
If sheet.IsDetail Then
else
'Code hier
end if
Ist zwar keine schöne Lösung, hat mir aber geholfen.
Ich habe die Vermutung, dass die Verhalten zusammenhängen.

Gruß,
Zoltan

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

michse02
Mitglied



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

Beiträge: 13
Registriert: 12.03.2009

Catia V5R16-R19

erstellt am: 06. Jul. 2009 09: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

Funktioniert leider nicht. sheet.Isdetail ist wirklich immer true.

Jemand noch eine andere Idee?

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

tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 605
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

erstellt am: 06. Jul. 2009 09:44    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 michse02 10 Unities + Antwort hilfreich

Hallo,

probier mal folgendes:

Dim bIsDetail as Boolean = Sheet.IsDetail
If Not bIsDetail Then

Gruß

------------------
tomtom1972

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

michse02
Mitglied



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

Beiträge: 13
Registriert: 12.03.2009

Catia V5R16-R19

erstellt am: 06. Jul. 2009 10:06    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

Leider auch nicht 

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

michse02
Mitglied



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

Beiträge: 13
Registriert: 12.03.2009

Catia V5R16-R19

erstellt am: 09. Jul. 2009 13: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

Falls jemand nochmal ein Ähnliches Problem hat, ich habe es wie folgt gelöst:

ein VBA Script erstellt mit dem Code:

Code:
Function IsDetailSheet(sheet As DrawingSheet)
IsDetailSheet = sheet.IsDetail
End Function


und das über die Com API aufgerufen und das Sheet als Parameter.

nicht schön, aber funktioniert wenigstens...

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

Randle
Mitglied
CAD/PLM Consultant


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

Beiträge: 695
Registriert: 12.04.2003

Win10 x64
CATIA V5 R18, R19, R21, R27-29

erstellt am: 09. Jul. 2009 18: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 michse02 10 Unities + Antwort hilfreich

Hallo,

auch nicht schlecht eine Funktion um eine Funktion zu nutzen. :-)
CATIA = Chaotische Anwendung Trotz Immenser Anstrengungen

Werd ich bei nächster Gelegenheit mal austesten. Vielen Dank für diese Lösung. Wieder was dazu gelernt.

------------------
MfG
Randle

! It's not a bug, it's a feature !

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

C-R
Mitglied
Dipl.-Ing. Maschinenbau-Konstruktion

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

Beiträge: 8
Registriert: 16.07.2009

erstellt am: 17. Jul. 2009 00: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 Nur für michse02 10 Unities + Antwort hilfreich

Hallo,

dieses Problem ist mir auch schon bei mindestens einer weiteren Funktion/Methode begeignet, weiß leider gerade nicht mehr, welche es war. Ich meine FileExists in FileSystems.

Es liegt wohl daran, dass VB, VB Script / CATScript und VBA für das boolsche wahr/true den wert -1 und für falsch/false den Wert 0 nutzen (bringt den Vorteil mit sich, bei Operationen wie UND und ODER nicht zwischen logischen und bitweisen Operationen unterscheiden zu müssen). Alle anderen mir bekannten Sprachen, wie die Sprache C++, in der CATIA selbst geschrieben ist, benutzen für falsch/false ebenfalls den Wert 0, alle anderen Werte werden als wahr/true interpretiert.

Das Problem kann man am besten umgehen, indem man den Rückgabewert immer mit False vergleicht:

Code:

If oSheet.IsDetail = False Then
  ...
End If


bzw.
Code:

If oSheet.IsDetail <> False Then
  ...
End If

Nachprüfen kann man dies zumindest in VBA, indem man den Rückgabewert einer Variable zuweist, deren Typ explicit als Long deklariert ist, der Wert sollte dann +1 betragen. Bei Deklaration ohne Typ zeigt der Debugger als Typ ein Bool in einem Variant gekapselt an, dessen Wert dann Korrekt interpretiert wird, weshalb dieser Fehler etwas tricky zu finden ist. Bsp.:

Code:

Dim lResult As Long
lResult = oSheet.IsDetail

Gruß

Carsten

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

zoltan.bekesi
Mitglied



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

Beiträge: 321
Registriert: 22.10.2006

Job:
CATIA V5R19 / XP 32bit
MS Office 2003
Microstation V8 2004 Edition
DELL Precision M6300

erstellt am: 24. Jul. 2009 18: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 michse02 10 Unities + Antwort hilfreich

Wieder was dazugelernt. So kann man es natürlich auch betrachten.

Gruß,
Zoltan

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