Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Namensgebung aus Variablen und Text

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:  Namensgebung aus Variablen und Text (593 mal gelesen)
Catialuder
Mitglied
Entwicklung


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

Beiträge: 90
Registriert: 20.09.2004

erstellt am: 13. Jun. 2006 13:10    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

Moin,

ich versuche mich gerade etwas in die Makroprogrammierung einzufuchsen, deshalb bitte nicht hauen bei "unklaren Selbstverständlichkeiten" 

Aber zum Thema: über eine Inputbox kann der Benutzer die Nummer des zu erstellenden Bereiches eingeben. Es wird ein GeometricalSet erzeugt, welches umbenannt werden soll, z.B. in "Section 5"
Wo und wie kann ich also den Namen aus einer Variablen und dem Standartext zusammen mischen. Im Moment kann ich entweder die Variable oder reinen Text anzeigen lassen.

Bisher sieht es so aus:

Code:

Language="VBSCRIPT"

Sub CATMain()

CATIA.StatusBar = "Section erzeugen.CATScript"

Dim Nr As String
Nr = ""
Nr = InputBox ("Nummer der Section", "Nummer Section", Nr)

Dim HB1 As HybriedBodies
Set HB1 = CATIA.ActiveDocument.Part.Hybridbodies.Item ("Design")

Dim HStep As HybridBodies
Set HStep = HB1.Hybridbodies

Dim Section As HybridBody
Set Section = HStep.Add
Section.Name = Nr    '------- oder eben "Section "

End Sub


Vielen Dank für die Hilfe
das Catialuder

Und na klar, schön wäre es natürlich auch, wenn automatisch die letzte Nummer ausgelesen wird und dann ohne Benutzereingabe eine fortlaufende Nummerierung erfolgt. Aber ich wollte erst mal langsam anfangen.
Was nicht heißen soll, dass ich nicht an der Lösung interessiert bin. 

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

Catialuder
Mitglied
Entwicklung


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

Beiträge: 90
Registriert: 20.09.2004

erstellt am: 13. Jun. 2006 13:49    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

Ok, erste Antwort gerade durch Zufall gefunden.
Veknüpen mit &
Also
Code:

Section.Name = "Section " & Nr

Allerdings scheint es so als könnte man mit 'Item' immer nur auf die ersten Ordner im Strukturbaum zugreifen. Wie kann ich ein GeometricalSet in einem GeometricalSet erzeugen, welches nicht in der ersten Hierarchie-Ebene des Strukturbaums liegt. In obigen Falle also innerhalb von Section 5?

Danke und Gruß
das Catialuder

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

Tapani.
Mitglied



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

Beiträge: 56
Registriert: 12.05.2006

erstellt am: 13. Jun. 2006 18:14    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 Catialuder 10 Unities + Antwort hilfreich

moin,

ein HybridBody hat (zumindest ab R14) wieder eine HybridBodies-Collection, und die natürlich auch wieder ein Add.

In Code-Form sähe das so aus (im leeren Part gestartet):

Code:
sub CATMain()
  set hybs1 = CATIA.ActiveDocument.Part.HybridBodies
  set hyb1 = hybs1.Add
  hyb1.Name = "stufe 1"
  set hybs2 = hybs1.Item(1).HybridBodies
'oder
  set hybs2 = hyb1.HybridBodies
  set hyb2 = hybs2.Add
  hyb2.Name = "stufe 2"
 
  msgbox CATIA.ActiveDocument.Part.HybridBodies.Item(1).HybridBodies.Item(1).Name
end sub

und die Frage nach der automatischen Nummerierung:
mit der Count-Property kriegt man raus wieviele Elemente es in der Collection gibt. Da braucht man dann nur eins aufaddieren und das ganze an den String anhängen.

CUSee You
    Tapani

------------------
Don't take life so seriously....
it's not a permanent  condition

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

Catialuder
Mitglied
Entwicklung


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

Beiträge: 90
Registriert: 20.09.2004

erstellt am: 14. Jun. 2006 10:22    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 Tapani für die schnelle Antwort.

Im Moment benutze ich das Buch von Ziethen, allerdings fällt mir der Einstieg doch noch recht schwer. Kann mir noch jemand verraten wo bzw. wie ich anfängertaugliche Syntaxhilfen finde? Wenn ich z.B. "Count" als Suchbefehl in der CATIA Doku benutze, bin ich mind. einen Tag mit verschiedenen (für mich unwichtigen) Artikeln beschäftigt.
Im Buch taucht der Befehl bisher auch nur in einem anderen Zusammenhang auf, so dass ich mir nicht ableiten kann, wie ich z.B. die Anzahl der Geometrical Sets eines selektierten GeoSet. in einem String ausgeben kann.
Ähnliches Problem habe ich mit dem einfügen eines GeoSet in einem selektierten Set. Was ist hierdran falsch?

Code:

Dim USel As Selection
Set USel = CATIA.ActiveDocument.Selection

Dim HBs2 As HybridBodies
Set HBs2 = USel

Dim HB2 As HybridBody
Set HB2 = HBs2.Add


Vielen Dank und Gruß
das Catialuder

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

Lusilnie
Mitglied



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

Beiträge: 1486
Registriert: 13.07.2005

erstellt am: 14. Jun. 2006 21:32    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 Catialuder 10 Unities + Antwort hilfreich

Hallo Catialuder,

zur Frage nach der Dokumentation von Befehlen auch von mir die immer wieder gegebene Antwort: die V5-Automation-Help.
Zu Erreichen über die CATIA-Hilfe oder über den "Macros_Editor->Help" (Tools->Macro->Macros->Edit) oder über das Kontext-Menü von Einträgen im Object-Browser des Viual_Basic_Editor, falls Du mit Windows arbeitest und VBA installiert ist.
Der Object-Browser kann Dir aber auch schon bei der Suche weiterhelfen, den gibts sowohl im Viual_Basic_Editor als auch im Macros_Editor.

Zu Deinem Code:
Der ist mir zu "minimalistisch", um Dir helfen zu können.
Ich denke, schau Dir mal den "Object-Browser" an, der hilft Dir sicher weiter, welche Angaben die Befehle noch brauchen...
Oder schaue in die Beispiele der V5-Automation-Hilfe...

Du kannst natürlich auch den Code Deiner Problemstelle posten und dazu Fragen stellen, doch dann müssen zumindest die "Eingaben" besser zu erkennen sein.


mfg,
Lusilnie

------------------

Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!!

frei nach größeren Geistern

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

Catialuder
Mitglied
Entwicklung


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

Beiträge: 90
Registriert: 20.09.2004

erstellt am: 15. Jun. 2006 10:15    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 Lusilnie,

danke für den Tipp mit den Dokus. Leider scheint die Help, beim Start über Makros, hier nicht richtig eingerichtet zu sein. Ich öffne also wie gewohnt die Online-Doku und kann dann bei der Suche "Automation Documentation" auswählen. Allerdings erhalte ich dann immernoch eine sehr hohe Anzahl an (nicht hilfreichen) Seiten.
Die Hilfeseiten des MS Visual Basic Editors sind da schon effizienter, auch wenn Beispiele etc. immer nur auf Tabellen u.ä. abgestimmmt sind.

Das der Code zu "minimalistisch" ist, ist wohl auch das Problem, dass er nicht funktioniert  .
Ne ehrlich, ich hätte gedacht, die erste Zeile
Sub CATMain()
und End Sub
kann ich beim posten auch weglassen.
Ansonsten hoffte ich, mit sowenig Zeilen in dem GeoSet, das der Benutzer zuvor selektiert hat, ein neues GeoSet zu erzeugen.
Also, was fehlt noch?

Gruß
das Catialuder

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

Tapani.
Mitglied



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

Beiträge: 56
Registriert: 12.05.2006

erstellt am: 15. Jun. 2006 14:22    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 Catialuder 10 Unities + Antwort hilfreich

moin,

angenommen dein GeoSet ist selektiert, dann sollte folgendes funktionieren:

Code:
Dim USel As Selection
Set USel = CATIA.ActiveDocument.Selection
Dim HBs2 As HybridBodies
Set HBs2 = USel.Item(1).Value

Dim HB2 As HybridBody
Set HB2 = HBs2.Add


, da in der Selection mehrere Objekte selektiert sein können, brauchst du das Item und da der Rückgabewert von Item "SelectedElement" ist noch das .Value, da das  dir erst das selektierte Element zurück gibt. Eine Fußangel ist noch, dass wenn du in der Geometrieansicht Objekte selektierst, meist nur die BRep-Representation in der Selektion steht. Wenn man Objekte im Strukturbaum selektiert, passiert das nicht. Wenn man im Script selektieren läßt (Selection.SelectElement2...) kann man den zu wählenden Objekttyp explizit angeben.

CUSee You

    Tapani

------------------
Don't take life so seriously....
it's not a permanent  condition

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

Catialuder
Mitglied
Entwicklung


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

Beiträge: 90
Registriert: 20.09.2004

erstellt am: 15. Jun. 2006 18:13    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

Mal wieder Danke Tapani für die schnelle Antwort.
Allerdings funktioniert Dein Code bei mir nicht. Ich habe ein neues, leeres Script mit
Code:

Language = "VBSCRIPT"
Sub CATMain()
'...Dein Code
End Sub erzeugt.

Er meckert immernoch in der Zeile
Set HB2 = HBs2.Add

Gruß
Catialuder

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

Tapani.
Mitglied



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

Beiträge: 56
Registriert: 12.05.2006

erstellt am: 16. Jun. 2006 09: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 Catialuder 10 Unities + Antwort hilfreich

moin,

das kommt davon, wenn man nicht jede Kleinigkeit testet vorm Posten :-)

Es muß natürlich

Code:
Language = "VBSCRIPT"
Sub CATMain()
Set USel = CATIA.ActiveDocument.Selection
Set HBs2 = USel.Item(1).Value.HybridBodies
Set HB2 = HBs2.Add
End Sub

heissen! Und es muß immer noch ein GeoSet selektiert sein bevor das Makro ausgeführt wird.

CUSee You
    Tapani

------------------
Don't take life so seriously....
it's not a permanent  condition

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

Catialuder
Mitglied
Entwicklung


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

Beiträge: 90
Registriert: 20.09.2004

erstellt am: 16. Jun. 2006 11:16    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

Super, das funktioniert!
Danke und Gruß
Catialuder

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