Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  C# - Zugriff auf Catia

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:  C# - Zugriff auf Catia (2657 mal gelesen)
Don Arnestro
Mitglied
Konstrukteur Entwicklung


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

Beiträge: 19
Registriert: 29.11.2009

NX 7.5

erstellt am: 29. Nov. 2009 13:12    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


SourceCodeBlockerstellen.pdf

 
Hallo Gemeinde,
ich bin neu hier, Don Arnestro mein Nick und im wahren Leben Konstrukteur mit einem mittelschweren Hang zum Programmieren.

Sonstige Projekte habe ich mit VBA oder C++ (Konsole) erstellt.
Allerdings nie mit Zugriff auf Catia.
Vor kurzem habe ich meine ersten Schritte mit Catia und VBA gewagt was soweit auch ganz gut funktioniert.
Allerdings stört mich, dass ich unter Catia immer den Editor starten und das Makro ausführen muss. Des Weiteren muss ein Part stets geöffnet sein.
Dies möchte ich ändern. Deshalb bin ich in die Programmierung mit C# eingestiegen.
Erste Schritte hatten Dank Hr. Hanser Ihren Erfolg.
Soweit zu Vorgeschichte:
Hier nun mein Problem.
Ich versuche ein Part zu erstellen. Im Anhang mein Quellcode.

Die Variablen partDocument1 und part1 haben immer den Value "Null".
Es wird zwar kein Fehler ausgeworfen allerdings kommt die Warnung:

Dem Feld "Block_erstellen.Form1.CATIA" wird nie etwas zugewiesen, und es hat immer seinen Standardwert von "null".

Gehe ich durch das Projekt mit Einzelschritten tritt folgender Fehler in der try/catch-Anweisung auf:
System.NullReferenceException
Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
Als Tip kommt:
Erstellen Sie mit dem New-Schlüsselwort eine Instanz.

Dort hänge ich nun als Anfänger und weiß nicht weiter.
Ich hoffe Ihr könnt helfen und bedanke mich schonmal im voraus.

Mit freundlichen Grüßen
Don Arnestro

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

V5Playaz
Mitglied
Dipl.-Ing (BA)


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

Beiträge: 447
Registriert: 12.07.2005

DELL PRECISION 390
3,25 GB RAM
WIN XP PRO SP2
CATIA V5 R16-19
Delmia V5 R19
VB6, VB2008
Adobe Acrobat 9 Pro Extended

erstellt am: 29. Nov. 2009 14:41    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 Don Arnestro 10 Unities + Antwort hilfreich

Hallo Don Arnestro,

unter VB sollte der Code zum Erstellen eines neuen Parts so aussehen:

Code:
Set documents1 = CATIA.Documents
Set partDocument1 = documents1.Add("Part")
Set part1 = partDocument1.Part

Du musst also bei documents1.add sagen welches Element erstellt werden muss. In deinem Fall also ein Part.
Hier wird also nicht der spätere Name festgelegt, sondern der Typ.

Inwieweit dir dies für C# hilft, musst du selbst herausfinden, da ich mich dort nicht auskenne.

grüße Dominik

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

DanielFr.
Moderator
Manager


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

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: 29. Nov. 2009 15: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 Don Arnestro 10 Unities + Antwort hilfreich

Hallo Don Arnestro und ein herzliches Willkommen im Forum  ,

ich gebe Dominik recht. Die Zeile in der du den Part erstellen willst ist falsch. Du darfst hier nicht den Namen des Parts übergeben sondern musst CATIA sagen welche Art von neues Dokument CATIA erzeugen soll. Anschließend kannst du dann über die Methode PartNumber auch den Namen vergeben.

------------------
MFG Daniel

Systeminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...)

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

Don Arnestro
Mitglied
Konstrukteur Entwicklung


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

Beiträge: 19
Registriert: 29.11.2009

erstellt am: 29. Nov. 2009 16: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

Danke Danke Leute,
es hat geklappt!

Hier mein Code in der Try/Catch Anweisung, erhalten für die Nachwelt!:

Code:
                object CATIA = Marshal.GetActiveObject("Catia.Application");
                INFITF.Application catiaapp = (INFITF.Application)CATIA;
                string Test;
                Test = "Part";
                this.PartDocument1 = catiaapp.Documents.Add(ref Test) as PartDocument;
                this.Part1 = this.PartDocument1.Part;

Schönen Sonntag noch!

Greetz
Don Arnestro

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