Hot News aus dem CAD.de-Newsletter:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Linie einfärben

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:   Linie einfärben (698 mal gelesen)
PeterSilie84
Mitglied


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

Beiträge: 9
Registriert: 14.07.2008

erstellt am: 23. Jul. 2008 11:01    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 möchte gerne eine Linie die eine bestimmte Länge hat z.B. über einen Check oder einer Rule einfärben. Sobald die Linie ein bestimmtes Maß überschreitet, wird sie z.B. rot dargestellt.

Ich besitze zwar das Buch "Makroprogrammierung mit Visual Basic Skript", allerdings konnte ich bisher keine geeignete Funktion dafür finden. Im Idealfall wäre die Erstellung im Knowledge Advisor und würde ohne Makros auskommen.

Das Ganze sollte natürlich parametrisch sein und bei einer Änderung der Linienlänge neu berechnet werden.

Ich habe bisher noch wenig Erfahrung mit Programmierung in CATIA V5. Kann jemand helfen?

Grüße, Peter.

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

Mörchen
Ehrenmitglied V.I.P. h.c.
CAD-Trainerin (CATIA V5)



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

Beiträge: 3830
Registriert: 14.03.2007

Release 19 SP2

erstellt am: 23. Jul. 2008 12:00    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 PeterSilie84 10 Unities + Antwort hilfreich

Hallo Peter,

soweit ich weiß, kann man die Farbe eines Elementes nicht über eine Formel oder Check verändern, weil es für die Farbe keinen Parameter gibt. Da muss man ein Macro machen. Vielleicht hilft der Makrorekorder. Mit Makros kenne ich mich zuwenig aus, um weiterzuhelfen.

Gruß
Mörchen

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: 23. Jul. 2008 19: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 PeterSilie84 10 Unities + Antwort hilfreich

Hallo Peter,

es geht schon auch ohne Makros.
Mache z.B. ein Reaction auf Update der Linie und füge da als Kode folgendes ein:

Code:
if length(`Geometrical Set.1\Line.1` )>100mm
{
`Geometrical Set.1\Line.1` ->SetAttributeString("Color","#ff0000")
}
else
{
`Geometrical Set.1\Line.1` ->SetAttributeString("Color","#ffffff")
}

Habe es auch erst vor kurzem dazugelernt.

Gruß,
Zoltan

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

PeterSilie84
Mitglied


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

Beiträge: 9
Registriert: 14.07.2008

erstellt am: 24. Jul. 2008 13: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 Zoltan,

danke für den Tipp mit der Reaction! Das funktioniert soweit ganz gut. Ich wollte deinen Code noch erweitern und habe folgendes probiert:

Die Linie soll zwischen den Längen 50mm und 100mm gelb sein, ist sie länger als 100mm wird sie rot und bei allen anderen Längen, bzw. wenn sie kleiner als 50mm ist, wird sie grün eingefärbt.
Leider kenn ich mich zu wenig mit Codes aus, deshalb will das Ganze noch nicht so richtig laufen.

Mein Code sieht bisher so aus:

Code:
------------------------------------------------------------------------------------------------------------------------------------------
if length(`Geometrical Set.1\Line.1` )>100mm
{
`Geometrical Set.1\Line.1` ->SetAttributeString("Color","#ff0000")
}
if length(`Geometrical Set.1\Line.1`)>50mm
{
`Geometrical Set.1\Line.1` ->SetAttributeString("Color","#ffff00")
}
if length(`Geometrical Set.1\Line.1`)<50mm
{
`Geometrical Set.1\Line.1` ->SetAttributeString("Color","#00ff00")
}
-----------------------------------------------------------------------------------------------------------------------------------------

Das Problem ist dass die Linie nicht rot wird wenn sie über 100mm lang ist, da der Code besagt dass sie schon gelb ist wenn sie über 50mm lang ist!

Weißt du vielleicht weiter? Wie funktioniert das mit den Operatoren "<=" "and" "or" ">=" ?

Gruß
Peter

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

Mörchen
Ehrenmitglied V.I.P. h.c.
CAD-Trainerin (CATIA V5)



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

Beiträge: 3830
Registriert: 14.03.2007

Release 19 SP2

erstellt am: 24. Jul. 2008 13:08    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 PeterSilie84 10 Unities + Antwort hilfreich

Hallo Peter,

mit and (or) geht das so:

if length(`Geometrical Set.1\Line.1` )>=100mm and length(`Geometrical Set.1\Line.1` )<100mm
{Anweisung}

also den Parameter wiederholen.

Ansonsten musst Du mit if, else if und else arbeiten:

Das Programm überprüft zunächst, ob die  1. Bedingung erfüllt ist (if...) und führt gegebenenfalls die dazugehörige Anweisung aus und überspringt die anschließenden else if-Klauseln.

Trifft die erste Bedingung nicht zu, wird kontrolliert, ob die 2. Bedingung passt (else if...) und dann die 2. Anweisung ausgeführt wird.

Falls die 2. Bedingung auch nicht erfüllt wird, geht es weiter zur nächsten Bedingung und so weiter, bis die zutreffende Bedingung gefunden ist.

Trifft keine der Bedingungen zu, die hinter den Schlüsselwörtern „if“ und „else if“ aufgeführt sind, wird die letzte Anweisung (nach „else...“ ) abgearbeitet.

Gruß
Mörchen

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

PeterSilie84
Mitglied


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

Beiträge: 9
Registriert: 14.07.2008

erstellt am: 24. Jul. 2008 13:48    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

Vielen Dank! Das war genau die Information die mir noch fehlte!

Für die die es interessiert ist das der Code:

________________________________________________________________________________________________________
if length(`Geometrical Set.1\Line.1` )>=100mm
{
`Geometrical Set.1\Line.1` ->SetAttributeString("Color","#ff0000")
}
else if length(`Geometrical Set.1\Line.1` )>=50mm and length(`Geometrical Set.1\Line.1` )<100mm
{
`Geometrical Set.1\Line.1` ->SetAttributeString("Color","#ffff00")
}
else
{
`Geometrical Set.1\Line.1` ->SetAttributeString("Color","#00ff00")
}
________________________________________________________________________________________________________

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)2020 CAD.de | Impressum | Datenschutz