Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  2D Linie im Drawing, die Existenz abfragen, bei Bedarf erzeugen und umbenennen

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:  2D Linie im Drawing, die Existenz abfragen, bei Bedarf erzeugen und umbenennen (1652 mal gelesen)
Hokay
Mitglied



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

Beiträge: 143
Registriert: 27.07.2004

Win7-Enterprice
Catia V5 R24 SP1

erstellt am: 05. Nov. 2008 12:56    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 Zusammen,

ich versuch verzweifelt ein CATScript zu schreiben welcher auf einem Drawing die Existenz einer Linie mit Namen (z.B."Linie.xyz") abfragt.
Wenn diese nicht vorhanden ist dann erzeuge diese mit Position (z.B. 0,0,100,100)und benenne diese Linie wieder "Linie.xyz"
Hat da jemand nen Beistpielscript oder kann mir jemand helfen!!!

Ich bekomme das irgendwie nicht hin.
Der Macrorecorden zeichnet bei uns auch nichts auf.

Vielen Dank im Voraus
Hokay

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

denyo_1
Moderator
Manager


Sehen Sie sich das Profil von denyo_1 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: 05. Nov. 2008 17: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 Nur für Hokay 10 Unities + Antwort hilfreich

Hallo Hokay,

das Problem ist das viele Funktionen aus der Drafting WB kein Journaling unterstützen (d.h. sie werden NICHT vom Makrorecorder aufgezeichnet). Dabei handelt es sich vor allem um das erstellen von Linien, Punkten, Splines, etc..

Man bräucht von dir jedoch noch ein paar Info´s sonst wird es schwer dir ein kleines Beispielscript zu schreiben.

1. Ist die Linie immer in einer bestimmten View oder kann sie sich in jeder View der drawing befinden (also auch direkt auf dem Blatt oder im Background)?

2. In welche View soll die Linie erstellt werden falls sie nicht da ist? Soll der Anwender eine View auswählen oder soll das Makro die Linie in eine neue View erstellen?

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

Die KATJA ist halt doch nur ne zickige Französin

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

Hokay
Mitglied



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

Beiträge: 143
Registriert: 27.07.2004

Win7-Enterprice
Catia V5 R24 SP1

erstellt am: 06. Nov. 2008 10: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


Template_2.jpg

 
Hallo denyo_1
vielen Dank für Deine Antwort.

Zu Deiner 1. Frage:
Die Linie, genauer gesagt handelt es sich um 6 Linien sind nicht in einer View sondern immer direkt auf dem Blatt. Diese 6 Linien sollen einen Zeichenbereich symbolisieren (siehe Bildanhang) der durch Parameter Blattgröße verändert werden kann.
Aber das führt hier glaube ich zu weit.
Wenn ich es schaffe 1 Linie abzufragen, zu erzeugen, und umzubennenen, dann bekomme ich den Rest dann schon dupliziert.

Frage 2: ist hinfällig

Mit freundlichen Grüßen
Hokay

[Diese Nachricht wurde von Hokay am 06. Nov. 2008 editiert.]

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

denyo_1
Moderator
Manager


Sehen Sie sich das Profil von denyo_1 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: 06. Nov. 2008 17:56    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 Hokay 10 Unities + Antwort hilfreich

Hallo Hokay,

hab heute leider keine Zeit mehr werd´s mir morgen aber mal vornehmen. Aber jetzt noch eine andere Frage. Wie ich jetzt aus deinem Bild sehe handelt es sich vermutlich um einen Zeichnungsrahmen. Warum holst du dir nicht den TitleBlock Editor und nutzt diesen.

hier mal ein Link zur neusten Version
TitleBlock Editor

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

Die KATJA ist halt doch nur ne zickige Französin

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

denyo_1
Moderator
Manager


Sehen Sie sich das Profil von denyo_1 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: 06. Nov. 2008 18: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 Hokay 10 Unities + Antwort hilfreich

Hallo Hokay,

hatte gerade mal 5min. Zeit und hab dir mal ein kleines Beispielscript gebastelt. Das Script fragt nun ab ob eine Linie mit dem Namen "Linie.1" in der MainView (also direkt auf dem Blatt) existiert (Linie.2 ist das selbe (siehe Script)). Ist dies der Fall wird nichts gemacht. Existiert die Linie nicht, wird sie erstellt. Die Koordinaten des Start- bzw. Endpunktes werden im Script angegeben. Hier müsstest du halt jetzt die Beziehung zur Blattgröße herstellen (ein kleines Beispiel wäre: Wenn du das Teil als VB-Script aufbaust dann kannst du ne UserForm machen mit ner Combo-Box. Hier soll der User die Blattgröße auswählen. Anschließend wird im Script aufgrund der Einstellung in der Combo-Box die Koordinaten der 12 Punkte ausgewertet und an die 6 Linien übergeben.)

Anmerkung: Ich habe die Abfrage jetzt über eine Schleife verwirklicht. Man könnte das auch über ein GetItem hinbekommen aber da bin ich kein Freund von. Da es so und so nur 6 Linien also max. 19 Item´s in der MainView geben sollte sollte das auch kein Poblem mit der Geschwindigkeit geben.

Hier jetzt das Scriptbeispiel:

Code:

Sub CATMain()

'Allgemeine Def´s
Set oDoc = CATIA.ActiveDocument
Set oSheets = oDoc.Sheets
Set oSheet = oSheets.ActiveSheet
Set oViews = oSheet.Views
Set oView = oViews.Item(1)
Set myFac = oView.Factory2D
oView.Activate

'Punktedefinition für erste Linie (L1)
Punkt_1_X_L1 = 10
Punkt_1_Y_L1 = 0
Punkt_2_X_L1 = 10
Punkt_2_Y_L1 = 100

'Punktedefinition für zweite Linie (L2)
Punkt_1_X_L2 = 50
Punkt_1_Y_L2 = 0
Punkt_2_X_L2 = 50
Punkt_2_Y_L2 = 100

'hier musst du halt die Punkte definieren die du für deine Linien brauchst

'Abfrage bzw. erstellen Linie 1 (myL1)
Z = 0
For i = 1 To oView.GeometricElements.Count
    Set myL1 = oView.GeometricElements.Item(i)
    If myL1.Name = "Linie.1" Then
        Z = Z + 1
    End If
Next
If Z = 0 Then
    Set myL1 = myFac.CreateLine(Punkt_1_X_L1, Punkt_1_Y_L1, Punkt_2_X_L1, Punkt_2_Y_L1)
    myL1.Name = "Linie.1"
End If

'Abfrage bzw. erstellen Linie 2 (myL2)
Z = 0
For i = 1 To oView.GeometricElements.Count
    Set myL2 = oView.GeometricElements.Item(i)
    If myL2.Name = "Linie.2" Then
        Z = Z + 1
    End If
Next
If Z = 0 Then
    Set myL2 = myFac.CreateLine(Punkt_1_X_L2, Punkt_1_Y_L2, Punkt_2_X_L2, Punkt_2_Y_L2)
    myL2.Name = "Linie.2"
End If


End Sub


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

Die KATJA ist halt doch nur ne zickige Französin

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

Hokay
Mitglied



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

Beiträge: 143
Registriert: 27.07.2004

Win7-Enterprice
Catia V5 R24 SP1

erstellt am: 07. Nov. 2008 14:07    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 Daniel
vielen Dank für Deine Hilfe und für den kleinen Script.
So ähnlich habe ich mir das vorgestellt. Werden den Rest drum herum bestimmt selbst hin bekommen.
Aber noch mal ne Frage:
UserForm ... -  sehr guter Hinweis. Das kenne ich aus Excel VBA. Habe ich in Catia noch nie gemaht oder gesehen wie man das macht. Kannst Du mir dazu nochmals unter die Arme greifen?
Das fänd ich echt super.
Geht sowas in CATScript überhaupt oder brauch ich da auch VBA.


Mit Freundlichen Grüßen
Hokay

[Diese Nachricht wurde von Hokay am 07. Nov. 2008 editiert.]

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

denyo_1
Moderator
Manager


Sehen Sie sich das Profil von denyo_1 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: 07. Nov. 2008 16: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 Nur für Hokay 10 Unities + Antwort hilfreich

Hallo Hokay,

um eine UserForm zu erstellen brauchst du Visual Basic. Dies ist aber direkt in CATIA intergriert (falls es installiert ist). Wenn CATIA geöffnet und aktiv ist, einfach ALT+F11 drücken (oder Tools -> Macro -> Visual Basic Editor). Falls diese Auswahl gedimmt ist, wurde der Editor nicht mitinstalliert und muss von der CATIA CD nachinstalliert werden.

Ansonsten funktioniert das ganze wie in Office Programmen auch.

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

Die KATJA ist halt doch nur ne zickige Französin

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

Hokay
Mitglied



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

Beiträge: 143
Registriert: 27.07.2004

Win7-Enterprice
Catia V5 R24 SP1

erstellt am: 11. Nov. 2008 10:02    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 Daniel,

Ok Habs gerafft wie's geht.

Aber kann man das auch mit CATScript erreichen.
Mein Chef will kein VBA
Wir wollen ausschließlich CATScript.
Bzw. Wie rufe ich diese UserForm aus einem CATScript heraus auf.

MFG Hokay

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

denyo_1
Moderator
Manager


Sehen Sie sich das Profil von denyo_1  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: 11. Nov. 2008 12:21    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 Hokay 10 Unities + Antwort hilfreich

Hallo Hokay,

die UserForm existiert nur in CATvba, kann also nicht aus einem CATscript bzw. CATvbs aufgerufen werden.
Ich denke deinem Chef geht es darum, das ein CATscript auf jedem Rechner (egal ob Intel oder AIX, etc.) läuft.
Um solch ein Programm zu erstellen (mit GUI und auf allen Systemen ausführbar) brauchst du eine andere Programmiersprache bzw. Compiler (z.B. „TCL/TK”)
Ich denke aber dafür ist der Aufwand nicht gerechtfertigt.
Ich würde es dann über ein CATscript mit Inputbox machen.
Ist dann zwar keine schöne GUI aber funktioniert.

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

Die KATJA ist halt doch nur ne zickige Französin

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

Hokay
Mitglied



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

Beiträge: 143
Registriert: 27.07.2004

Win7-Enterprice
Catia V5 R24 SP1

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

Hallo Daniel,

Werd die auswahl über Inputbox händeln und Bei CATScript bleiben.
Ich komme die nächsten 14 tage jetzt leider kaum dazu meinen Script weiter zu basteln.
Bis dahin erst einmal vielen vielen Dank für Deine Hilfe.

10 Units sind auf dem Weg :-)

MFG Hokay

[Diese Nachricht wurde von Hokay am 12. Nov. 2008 editiert.]

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