| |  | CATIA V5 Grundkurs | Einsteiger - 5 Std. 15 Min 48 | | |  | KISTERS 3DViewStation optimiert die Lizenzverwaltung für ihre Kunden, eine Pressemitteilung
|
Autor
|
Thema: VB Typfehler (2261 mal gelesen)
|
DonYouAn Mitglied Dipl.-Ing. Feinwerk- und Mikrotechnik

 Beiträge: 39 Registriert: 19.04.2005 Catia V5 1605, 1803, 1903
|
erstellt am: 07. Apr. 2011 09:31 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich habe vor einiger Zeit ein CATScript geschrieben in dem die Auswahl eines Parameters über dessen Namen erfolgte. Das funktioniert astrein in dem Script. Wenn ich nun dasselbe versuche in einem VB-Programm bringt er eine Fehlermeldung mit der ich nix anfangen kann. Code: Set intDrwParameter = intDrwParametersObj.Item("D_DOC_PART")
Fehlermeldung bezieht sich auf "D_DOC_PART": System.InvalidCastException wurde nicht behandelt. Message="Das COM-Objekt des Typs "System.__ComObject" kann nicht in den Schnittstellentyp "KnowledgewareTypeLib.Parameters" umgewandelt werden. Dieser Vorgang konnte nicht durchgeführt werden, da der QueryInterface-Aufruf an die COM-Komponente für die Schnittstelle mit der IID "{60CE5A40-5478-11D1-A272-0000F87546FD}" aufgrund des folgenden Fehlers nicht durchgeführt werden konnte: Schnittstelle nicht unterstützt (Ausnahme von HRESULT: 0x80004002 (E_NOINTERFACE))." Source="ReplaceFrame" StackTrace: bei ReplaceFrame.SelectSize.fConnectParameters() in V:\makros\ADC-Scripting\visual_basic\PSAD-Toolbox\SelectSize.vb:Zeile 338. bei ReplaceFrame.SelectSize.RB_Start_Click(Object sender, EventArgs e) in V:\makros\ADC-Scripting\visual_basic\PSAD-Toolbox\SelectSize.vb:Zeile 49. bei System.Windows.Forms.Control.OnClick(EventArgs e) bei System.Windows.Forms.Button.OnClick(EventArgs e) bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) bei System.Windows.Forms.Control.WndProc(Message& m) bei System.Windows.Forms.ButtonBase.WndProc(Message& m) bei System.Windows.Forms.Button.WndProc(Message& m) bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) bei System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg) bei System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData) bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context) bei System.Windows.Forms.Application.Run(ApplicationContext context) bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun() bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel() bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine) bei ReplaceFrame.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:Zeile 81. bei System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args) bei System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() bei System.Threading.ThreadHelper.ThreadStart_Context(Object state) bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) bei System.Threading.ThreadHelper.ThreadStart() InnerException: Hat jemand eine Idee woran das liegen könnte? Vielen Dank DonYouAn
------------------ Wenn man's kann ist es keine Kunst. Wenn man's nicht kann erst recht nicht! (Karl Valentin)  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
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: 07. Apr. 2011 17:47 <-- editieren / zitieren --> Unities abgeben:          Nur für DonYouAn
Versuch mal intDrwParametersObj as Object zu definieren. ------------------ 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 Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DonYouAn Mitglied Dipl.-Ing. Feinwerk- und Mikrotechnik

 Beiträge: 39 Registriert: 19.04.2005 Catia V5 1605, 1803, 1903
|
erstellt am: 08. Apr. 2011 08:20 <-- editieren / zitieren --> Unities abgeben:         
Hallo HoBLila, das war die Lösung. intDrwParametersObj war als Parameter deklariert. Als Object macht das Programm was ich will. Aber wieso gibt es da einen Unterschied zwischen CATScript und VB? Naja, egal, Hauptsache es läuft ... Danke und Gruzz DonYouAn ------------------ Wenn man's kann ist es keine Kunst. Wenn man's nicht kann erst recht nicht! (Karl Valentin)  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
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. Apr. 2011 09:40 <-- editieren / zitieren --> Unities abgeben:          Nur für DonYouAn
Die Wege von Dassault sind unergründlich. :-) Spaß beiseite: Wenn Du eine Methode über COM in CATIA aufrufst, der Du Parameter übergeben musst, die einen bestimmten Typ haben, dann will er, dass das aufrufende Object vom Typ Object oder Variant ist, also nicht näher definiert. Was schade ist, da man so das IntelliSense verliert und mehr Speicher verbraucht, es ist aber eben so, auch bei der Selection, wenn Du da SelectElement2() verwenden möchtest... Ich vermute es liegt am LateBinding im CATIA selbst. Naja so lange es funktioniert und man es weiß geht's ja. :-) Edit: Ich korrigiere, die bedingungen waren glaube ich Werte übergeben und zurück erhalten in kombination. ------------------ 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 Xing [Diese Nachricht wurde von HoBLila am 08. Apr. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |