|
CATIA V5 Programmierung : Punkte suchen und in Array schreiben
tomtom1972 am 12.04.2007 um 10:40 Uhr (0)
Hallo,das ist ganz einfach:Set oSelection = CATIA.ActiveDocument.SelectionoSelection.ClearoSelection.Search "CATGmoSearch.Point,all"Dim aPointArray()ReDim aPointArray(oSelection.Count)For n = 1 to oSelection.Count Set aPointArray(n) = oSelection.Item(n).ValueNextDas wars. Jetzt sind deine Punkte im Array.Eine andere Möglichkeit (und um auf das .Search zu verzichten) wäre das rekursive Scanen deiner Struktur.Zu dem Ganzen gibts im übrigen schon mehrere Beiträge im Forum. Einfach mal die Suchfunktion verwen ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Punkte suchen und in Array schreiben
Physimathi am 12.04.2007 um 11:08 Uhr (0)
Danke,habe eine deutsche version und somit die Suche auf Punkt gesetzt. Nun sind die Punkte im Array. TollIch merke auch immer wieder, das eben viel im Forum steht, nur wenn man nicht weis wonach man suchen soll, dann sucht man sich verrückt.Euch einen schönen Tag.Sub CATMain()Set oSelection = CATIA.ActiveDocument.SelectionoSelection.ClearoSelection.Search ("Type=Punkt, all")Dim aPointArray() As Point2DReDim aPointArray(oSelection.Count)For n = 1 To oSelection.Count Set aPointArray(n) = oSelection.Item(n). ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Punkte suchen und in Array schreiben
Physimathi am 12.04.2007 um 12:03 Uhr (0)
Hallo,wie es eben so ist, mit dem Tun kommen die Fragen.Mein Skript:Sub CATMain()Set oSelection = CATIA.ActiveDocument.SelectionDim Auswahl(0)oSelection.ClearAuswahl(0) = "Point2D"MsgBox ("Selektieren Sie bitte einen Punkt")Status = oSelection.SelectElement2(Auswahl, "Select", False)Set oSelectedElement = oSelection.Item(1).Value Nimm erste SelektionMsgBox ("Punkt in Selection")End SubNun meine Frage:Im Baum kann ich einen Punkt anklicken, welcher dann in die Selection geht. Doch gehe ich auf den Punkt im ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Part in Produktstruktur lokalisieren
tomtom1972 am 16.04.2007 um 09:47 Uhr (0)
Hallo,ich weiß nicht, ob ich dein Problem richtig verstanden habe !?Wenn du ein in einer Struktur verbautes Part selektiert hast:Msgbox Catia.ActiveDocument.Selection.Item(1).Value.Parent.Parent.Parent.NameGruß------------------tomtom1972
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Part in Produktstruktur lokalisieren
tomtom1972 am 16.04.2007 um 10:56 Uhr (0)
Hallo,das ist klar: Das Part, welches du auswählst, ist ein .Item der CATIA.Documents. Und das Parent.Parent... der selbigen ist die CATIA.Installation, also die CNEXT.exeWenn du in deiner Rotine nur Parts selektieren können möchtest, musst du erst wieder von .Document (dem CATPart) auf die Instanz des selbigen (.Product) und von da aus übers .Partent.Parent.... das .CATProduct suchen. Also so:Sub CATMain()Set oSelection = Catia.ActiveDocument.SelectionDim InputObjectType(0)InputObjectType(0) = "Part"Statu ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Part in Produktstruktur lokalisieren
tomtom1972 am 16.04.2007 um 11:41 Uhr (0)
Noch mal Hallo,im Anhang (pdf) findest du mal zur Veranschaulichung ein paar Screenshots von VB-WatchWindow (CATIA Sturuktur).1 Seite: Selection wenn InputObjectType(0) = "Part":Das .Parent der Selektion ist das Document, und das ist ein Item der CATIA.Documents. Von da aus kommst du über .Parent auf die Application selbst (CNext).2 Seite: Links oben: InputObjectType(0) = "Part", aber über .FindObject wieder auf die zugehörige Instanz ist das gleiche wie (rechts unten im Bild) von oben durch den Tree gewan ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Part in Produktstruktur lokalisieren
tomtom1972 am 16.04.2007 um 13:01 Uhr (0)
Hallo,"FindObject" ist eine Methode die zur Selection gehört.Damit kannst du Objekte ausfindig machen, zu welchen das selektierte Elemente gehört. Oder anders gesagt: Dein selektiertes Element ist immer auch Teil verschiedener anderer Objekte, die du dir mit Hilfe dieser Methode ausgeben lassen kannst.Bsp.: Teilfläche(BRep) ist Teil einer Surface ist Teil eines Parts gehört zu einer Instance etc. ....Immer den Automation Typ mit dem prefix "CATIA". Also z.B.:Suchst du das Solid, dann .FindObject("CATIAS ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : ParameterSets finden
Proofin am 17.04.2007 um 14:25 Uhr (0)
Moin Legat,ich weiß nicht ob es dir hilft aber unter den Objekt Parameters gibt es die Methode SubList(). Dieser Funktion kannst du ein Objekt übergeben und bekommst denn alle Parameter unter diesem Objekt.z.BDim oParams as Parametersdim SubParams as Parametersset oParams = CATIA.ActiveDocument.Part.Parametersset SubParams = oParams.SubList(irgendeinBody, true)GrußProofin
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Gesucht: .uppercase oder Ähnliches für String-Bearbeitung
der-quest am 17.04.2007 um 16:55 Uhr (0)
Hallo zusammen,die CATIA-Hilfe und dieses Forum konnten mir bislang nicht helfen. Gibt es eine Funktion für CATScript, um einen String aus Groß- und Kleinbuchstaben komplett in Großbuchstaben zu erhalten (myString.Uppercase), oder muss man wirklich ein eigenes Makro schreiben, das Buchstaben für Buchstaben ersetzt via Replace?Gruß & Dankder-quest
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : ParameterSets finden
Legat am 18.04.2007 um 07:04 Uhr (0)
Hallo zusammen,das mit der SubList ist schon klar.An "FindObject" habe ich auch schon gedacht. Nur leider muss ich vorher einen Parameter direkt ansprechen, was auch nicht gerade schnell geht.Ich hatte gehofft das in R16 jetzt eine Methode geschaffen wurde um auch diesen Fall abzudecken. CATIA macht es einem halt nicht gerade leicht. Trotzdem besten Dank.Gruß Legat
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Punkt selektieren und als Referenz weitergeben
dabaeda am 18.04.2007 um 11:41 Uhr (0)
Hallo zusammen,als Anfänger im Programmieren, wollte ich zunächst einmal folgendes Problem lösen: Benutzer soll Punkt selektieren, dieser soll dann als Referenz für eine Ebene dienen.Nun habe ich folgendes programmiert:Sub CATMain()3D-Werkzeugkasten deklarieren-----------------------------Dim MeinPart as Partset MeinPart=CATIA.ActiveDocument.PartDim Wzk3D as HybridshapeFactorySet Wzk3D=MeinPart.HybridShapeFactoryGeöffneten Körper deklarien------------------------------dim Hbody as hybridbodyset Hbody=MeinP ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : MultiOutput Elemente
dc_tke am 19.04.2007 um 11:31 Uhr (0)
Hallo,ich habe von einem MultiOutput Element (Intersect - 2 Punkte) eine Referenz ezeugt und davon wieder ein PointDatum. Nun möchte ich an die Koordinaten des PointDatum kommen. Mit Measurable bekomme ich den Typ 0=CATMeasurableUnknown.Hat jemand eine Idee? Mit beiliegendem Skript kann man das Scenario aufbauen:Sub CATMain() Set documents1 = CATIA.Documents Set partDocument1 = documents1.Add("Part") Set part1 = partDocument1.Part Set hybridBodies1 = part1.HybridBodies Set hybridBody1 = hybridBodies1.Add() ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : MultiOutput Elemente
tomtom1972 am 20.04.2007 um 20:28 Uhr (0)
Hallo dc_tke,du musst das Datum anders erzeugen und das Measurable des Punktes in deinem Code ist auch falsch.zu (1)Die Funktion zum Isolieren des Multi-Elemets, die du benötigst ist AddNewDatums(CATIAReference iElem) As CATSafeArrayVariant zu (2)Die Funktion zum Messen des Punktes ist GetPoint( CATSafeArrayVariant oCoordinates) Code:Sub CATMain()Set documents1 = CATIA.DocumentsSet partDocument1 = documents1.Add("Part")Set part1 = partDocument1.PartSet hybridBodies1 = part1.HybridBodiesSet hybridBod ...
|
In das Form CATIA V5 Programmierung wechseln |