Autor
|
Thema: VBA: nothing an CATIA-Funktionen übergeben (1373 mal gelesen)
|
martinINPRO Mitglied Dipl.-Ing.
Beiträge: 21 Registriert: 24.06.2008
|
erstellt am: 08. Jul. 2008 08:47 <-- editieren / zitieren --> Unities abgeben:
Hallo! In einigen Funktionen kann man als Parameter "nothing" übergeben. Im CATScript ist das kein Problem. Wie kann man das jedoch in VBA realisieren. Hier bekomme ich in der Regel einen Typkonflikt. Kennt einer hier die Lösung? Gruß, Martin
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
martinINPRO Mitglied Dipl.-Ing.
Beiträge: 21 Registriert: 24.06.2008
|
erstellt am: 08. Jul. 2008 08:55 <-- editieren / zitieren --> Unities abgeben:
Ich habe bereits schon folgendes getestet; hier die Results: hsfLoft.AddSectionToLoft(ref_sketch0, 1, nothing) : Typkonflikt hsfLoft.AddSectionToLoft(ref_sketch0, 1, "nothing") : Typkonflikt hsfLoft.AddSectionToLoft(ref_sketch0, 1, "") : Typkonflikt hsfLoft.AddSectionToLoft(ref_sketch0, 1, 0) : Typkonflikt hsfLoft.AddSectionToLoft(ref_sketch0, 1, ) : Parameter nicht optional Gruß, Martin
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
FiRo Mitglied Skript-Student
Beiträge: 26 Registriert: 07.11.2007 V5R17
|
erstellt am: 08. Jul. 2008 10:53 <-- editieren / zitieren --> Unities abgeben: Nur für martinINPRO
|
martinINPRO Mitglied Dipl.-Ing.
Beiträge: 21 Registriert: 24.06.2008
|
erstellt am: 08. Jul. 2008 10:56 <-- editieren / zitieren --> Unities abgeben:
|
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 08. Jul. 2008 15:40 <-- editieren / zitieren --> Unities abgeben: Nur für martinINPRO
Soweit ich weiß muss im VB das übergebene OBjekt, vor allem wnen es referenziert wird vom gleichen Typ sein. Sprich du brauchst ein objekt, dass dem entsprechendne Typ entspricht, aber Nothing ist. Das CATScript ist in der Lage selbst einen Typecast zu machen, weshalb es dort oft keien Konflikte gibt. Also Dim dir ein Objekt, des entsprechendne zu übergebenden Typs und übergib das. Ich dneke das wird reichen. ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
denyo_1 Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 08. Jul. 2008 16:11 <-- editieren / zitieren --> Unities abgeben: Nur für martinINPRO
Hallo Henry, das war zuerst auch meine Vermutung es funktioniert aber trotzdem nicht. Ich hab meinen Punkt gedimt, und es funktioniert werden wenn ich den Punkt auf Nothing setze noch auf "" noch auf 0. Entweder erwartet er eine Funktion oder Variable oder die Typen stimmen nicht überein. ------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jens Hansen Mitglied Senior Consult
Beiträge: 1055 Registriert: 05.08.2000 Win7 CATIA V5 R19 VB.Net C#
|
erstellt am: 09. Jul. 2008 09:06 <-- editieren / zitieren --> Unities abgeben: Nur für martinINPRO
|
martinINPRO Mitglied Dipl.-Ing.
Beiträge: 21 Registriert: 24.06.2008
|
erstellt am: 21. Jul. 2008 12:41 <-- editieren / zitieren --> Unities abgeben:
Ich habe nun eine Umgehungslösung gefunden; diese ist zwar nicht so schön, aber funktioniert! Dim ref_pt = part.CreateReferenceFromGeometry(pt) hsfLoft.AddSectionToLoft(ref_sketch, 1, ref_pt) hsfLoft.RemoveSectionPoint(ref_sketch) Ich tue so, also ob ich eine Referenz habe. Diese wird angemeldet und auch übergeben. Anschliessend wird diese mit .RemoveSectionPoint() wieder gelöscht.
Eleganter wäre es natürlich hier ohne dem Löschen auszukommen! Gruß, Martin
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |