Autor
|
Thema: Representation für Termination automatisieren (1810 / mal gelesen)
|
minotito Mitglied Student
Beiträge: 31 Registriert: 11.11.2019
|
erstellt am: 04. Dez. 2019 11:14 <-- editieren / zitieren --> Unities abgeben:
Hallo liebe CAD-Community,komme leider um mein Problem nicht rum und erstelle das wegen erneut ein Thema zum selben Problem.... Was gemacht werden muss: Terminations mit den ID nummern 1,2,3,4,.....X sollen als Representation die Punkte mit den Namen Term1PT,Term2PT,.....X (Anzahl Terminations=Anzahl Punkte) haben. Heißt: ID-nummer: 1 Representation: Term1PT __________________________ (Siehe BILD) ID-nummer: 2 Representation: Term2PT usw. Manuell funktioniert es wie folgt: - Doppelklick auf Termination mit der ID-Nummer 1 - Fensteröffnet sich mit den Angaben : ID-nummer: 1 Representation: No Selection - Den Punkt mit den Namen "Term1PT selektieren --> ID-nummer: 1 Representation: Term1PT - "OK" und fertig Als Ansatz habe ich dieses Makro erstellt ( Sprache stimmt nicht) Soll nur dazu dienen zu vermitteln was ich mir dabei gedacht habe.
Code: Sub CATMain()Set partDocument1 = CATIA.ActiveDocument Set Selection = partDocument1.Selection For i = 0 To n 'n= anzahl Punkte tmpStr = "CATElectricalSearch.Termination.Elec_Id_Number= & i ,all" Selection.Search tmpStr Selection.Search tmpStr.SetCATElectricalSearch.Termination.Elec_Representation = "Term" & i & "PT"
Next End Sub
Als Hilfe hattee ich einen Abschnitt von einem anderen Makro Code: tmpStr = "CATElectricalSearch.Termination.Elec_Id_Number=*,all" 'suche nach Termination Selection.Search tmpStrSelection.Search("Name=Term*PT,all") 'suche nach Punkt
Da sich ID- Nummer und Representation im selben Fenster befinden kann man ( denke ich ) durch ändern des Befehls zu:
Code: tmpStr = "CATElectricalSearch.Termination.Elec_Representation=*,all"
Die Representation Suchen / selektieren. Hoffe Ihr könnt mir Helfen... Gruß minotito Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 04. Dez. 2019 19:15 <-- editieren / zitieren --> Unities abgeben: Nur für minotito
Servus Ich fürchte dass das nicht so einfach geht wie du dir das vorstellst. Den Code den du gefunden hast, sucht "nur" die Terminations über die Suche. Ich glaube nicht dass du da so auf die Representation zugreifen kannst. (probier mal über die Edit -> Search aus ob das manuell geht) Folgende Idee hab ich noch (ohne Erfolgsgarantie): Terminations suchen und die Tasteneingabe/Selektion nachstellen (Sendkeys). Ist aber recht komplex. (viel Spaß beim einlesen und rumprobieren) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
minotito Mitglied Student
Beiträge: 31 Registriert: 11.11.2019
|
erstellt am: 05. Dez. 2019 08:46 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, habe mal etwas rum probiert und mit
Code: Sub CATMain()Set partDocument1 = CATIA.ActiveDocument Set Selection = partDocument1.Selection tmpStr = "CATElectricalSearch.Termination.Elec_Id_Number=1,all" 'Sucht Termination mit der ID-Nummer: 1 Selection.Search tmpStr 'Selektiert diese n="CATElectricalEdit.Termination.Elec_Representation = "Term1PT",all"
End Sub
zeigt er mir keine Fehler aber macht auch nichts ...... Ich verstehe nicht wie ich einen Bezug auf die Selektion mach, also dass er mir die Selektierte Termination editiert.....
Nur für mein Verständnis Selektieren ist wie ,wenn ich manuell einmal auf z.B einen Punkt drücke? Kann man irgend wie sagen, dass er die gefundene Termination doppelt anklicken kann? Guß minotito Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 05. Dez. 2019 09:06 <-- editieren / zitieren --> Unities abgeben: Nur für minotito
Servus Doppelklick könnte über die WinAPI gehen. Oder per Sendkeys die Steuerung über die Tastatur nachbilden: Menü-Bearbeiten öffnen (Alt + B) -> mit Courser eins hoch (Up) -> Cursor nach rechts -> Enter zum die Definition zu öffnen Gruß Bernd PS: Wenn du Sendkeys nutzen willst: schau dir erst andere Themen dazu an und stelle diese nach bevor du diese auf dein Problem anwendest ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
minotito Mitglied Student
Beiträge: 31 Registriert: 11.11.2019
|
erstellt am: 05. Dez. 2019 10:06 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, ein Funken Hoffnung, dass das Problem mit dem Electrical doch gelöst werden kann . Danke dafür. Mit Sendkeys kann man keine Maus-Klicks simulieren und das Makro im Link (WinAP!) verstehe ich das Makro nicht ?!? Heißt ich kann mit [CODE][tmpStr = "CATElectricalSearch.Termination.Elec_Id_Number=1,all" 'Sucht Termination mit der ID-Nummer: 1 Selection.Search tmpStr 'Selektiert diese/CODE] Nach der Termination suchen und selektieren und dann mit SendKeys “{ENTER}” oder ähnliches weiter machen ? Gruß minotito
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 05. Dez. 2019 10:12 <-- editieren / zitieren --> Unities abgeben: Nur für minotito
Servus Ja du kannst die Terminations suchen. Für die Methode mit Sendkeys darf IMHO immer nur ein Objekt selektiert sein. (probier mal die Tastendrücke manuell) Gruß Bernd PS: Schau dir mal Beispiel/Doku/Schulungsunterlagen zur Selektion an ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
minotito Mitglied Student
Beiträge: 31 Registriert: 11.11.2019
|
erstellt am: 05. Dez. 2019 15:46 <-- editieren / zitieren --> Unities abgeben:
Hey, komme wieder nicht weiter.... Mausklick bekomme ich irgendwie nicht hin.... und Sendkeys hilft mir nicht weiter, da nicht via Maus gesteuert werden kann..... Code: Sub Linking()Set partDocument1 = CATIA.ActiveDocument Set Selection = partDocument1.Selection Selection.Search ("Name=Term*PT,all") N = Selection.Count MsgBox N For i = 0 To N tmpStr = "CATElectricalSearch.Termination.Elec_Id_Number=" & i & ",all" Selection.Search tmpStr 'Zwischen Teil-Fehlt Selection.Search ("Name=Term" & i & "PT,all") Next End Sub
macht der überhaupt, wenn es gehen sollte den Maus-Klick auf meine Selection? Habe heute den ganzen Tag damit verbracht auszuprobieren " Selection.Open...." / "CATElectrical.Termination.Elec_Representation(1,Term1PT)" und und und ..... Hat jemand noch Rat ? Oder weiß vielleicht wo man am besten Fragen kann ? Gruß minotito
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 05. Dez. 2019 15:56 <-- editieren / zitieren --> Unities abgeben: Nur für minotito
Servus Warum läuft die Schleife von 0 anstatt von 1? Ich würde prüfen ob in der inneren Schleife auch was gefunden wird. Zu Sendkeys schau dir zB mal diese Diskussion an (und versuche dies nachzuvollziehen, selbst laufen zu lassen) Hast du schon mal in Doku geschaut? Oder woher hast du die Methode Open bei der Selection? Programmierst du im VBA-Editor? Dann mach dich da mal mit der Funktion von Watch/Local-Fenster vertraut Gruß Bernd PS: Zu Ergänzung: Verwendung von Sendkeys ist meiner Ansicht nur ein Notbehelf und muss nicht unbedingt stabil laufen (was ist wenn der User dabei selbst noch auf der Tastatur herum tippt) Edit: Sendkeys ist keine Maussteuerung sondern Tastatureingabe. Versuch mal meine Aufzählung nachzuvollziehen) ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
minotito Mitglied Student
Beiträge: 31 Registriert: 11.11.2019
|
erstellt am: 09. Dez. 2019 10:07 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, hatte das mit der Schleife nicht gesehen/bemerkt danke. Sendkeys kann ich hier nicht verwenden.... Habe es manuell versucht, nur lässt sich über die Tastatur nicht ändern. ja verwende VBA-Editor und kenne das Watch-Fenster für die Befehle. Habe mit Open bei Selection ausprobiert ob es geht. Ist es nicht möglich irgendwo nachzugucken was es alles für Befehle (VBA) für die Terminations gibt ? Suche die ganze Zeit im Internet aber finde nichts dazu. Gruß minotito Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 09. Dez. 2019 10:20 <-- editieren / zitieren --> Unities abgeben: Nur für minotito
Servus Da in der Doku nichts dazu steht (hast du da mal nachgeschaut?), gibt es auch nichts. (außer du findest selbst undokumentierte Funktionen/Befehle) Deshalb auch von mir der vorgeschlagene komplexe Umweg über Sendkeys (der eventuell nicht geht oder nicht stabil läuft) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
minotito Mitglied Student
Beiträge: 31 Registriert: 11.11.2019
|
erstellt am: 09. Dez. 2019 10:24 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 09. Dez. 2019 10:25 <-- editieren / zitieren --> Unities abgeben: Nur für minotito
|
minotito Mitglied Student
Beiträge: 31 Registriert: 11.11.2019
|
erstellt am: 09. Dez. 2019 11:13 <-- editieren / zitieren --> Unities abgeben:
Hey, Also habe jetzt folgendes gefunden (Siehe Bild). Habe 2 Probleme: 1. Kann damit nicht wirklich was anfangen ( wie soll ich das Anwenden) 2. Da steht Read Only heißt das ich kann die Property nicht ändern ? Gruß minotito [Diese Nachricht wurde von minotito am 09. Dez. 2019 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
minotito Mitglied Student
Beiträge: 31 Registriert: 11.11.2019
|
erstellt am: 09. Dez. 2019 13:14 <-- editieren / zitieren --> Unities abgeben:
Hey, bin jetzt am ausprobieren Code: Sub Linking()Set partDocument1 = CATIA.ActiveDocument Set Selection = partDocument1.Selection Selection.Search ("Name=Term*PT,all") N = Selection.Count MsgBox N Dim TerminationIDNumber() As CATBSTR For i = 1 To N 'tmpStr = "CATElectricalSearch.Termination.Elec_Id_Number=" & i & ",all" 'Selection.Search tmpStr
Set TerminationIDNumber("" & i) = TerminationRefDesignator.Term1PT Next End Sub
bekomme aber eine Fehlermeldung... (siehe Bild). Gruß minotito Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 09. Dez. 2019 14:08 <-- editieren / zitieren --> Unities abgeben: Nur für minotito
Servus TerminationIDNumber ist eine Eigenschaft eines Objekts, aber von welchem? Ist dass das du bearbeiteten willst (PlugMap Data bzw EHMInsertionActPlugMapViewData )? Ich kenne mich mit der Workbench nicht aus. Bitte beschäftige dich erst mit den Grundlagen von VB und CATScript. Du kopierst meiner Ansicht nur Dinge zusammen ohne diese zu verstehen. Gruß Bernd PS: Ich behaupte einfach mal: das was du per Makro vor hast geht nicht ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
minotito Mitglied Student
Beiträge: 31 Registriert: 11.11.2019
|
erstellt am: 09. Dez. 2019 14:29 <-- editieren / zitieren --> Unities abgeben:
Hey Bernd, in Bezug auf CATIA verstehe ich VB nicht wirklich.... Excel VBA kann ich. ich weiß,dass es eine Eigenschaft ist... will das er mir die Termination mit der Eigenschaft TerminationIDNumber.1 eine weitere Eigenschaft setzt: "TerminationRefDesignator" soll der Punkt Term1PT sein. Wie ich den Zusammenhang erstelle weiß ich nicht... Wie ändert man Eigenschaften von bestehenden Objekten? Kenne die Befehlreihennfolge nicht. Gruß minotito Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 09. Dez. 2019 14:55 <-- editieren / zitieren --> Unities abgeben: Nur für minotito
Servus Selektiere mal eine Termination (von Hand) und schau per Watchfenster ob das Ding überhaupt Eigenschaften hat: Code: Sub CATMain()dim oSel as Object 'Selection dim oSelectedObject as Variant Set oSel = Catia.Activedocument.Selection if oSel.count <> 0 then Set oSelectedObject = osel.item2(1).value MsgBox TypeName(oSelectedObject) end if End Sub
Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
minotito Mitglied Student
Beiträge: 31 Registriert: 11.11.2019
|
erstellt am: 09. Dez. 2019 15:37 <-- editieren / zitieren --> Unities abgeben:
Hey, Watchfenster bleibt leer, da representation= Unset und Typname: Part. hätte höchstens die ID-nummer angeben müssen. Das Problem ist die Eigenschaft ist kein Wert sonder ein Punkt. Finde auch nichts zum nachlesen wie man einen Punkt als Eigenschaft wählt... Gruß minotito
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 09. Dez. 2019 15:38 <-- editieren / zitieren --> Unities abgeben: Nur für minotito
|
minotito Mitglied Student
Beiträge: 31 Registriert: 11.11.2019
|
erstellt am: 10. Dez. 2019 07:46 <-- editieren / zitieren --> Unities abgeben:
Hey, also erst mal das Bild vom Watchfenster: hast mich gestern voll verunsichert... benutze ich das Watchfenster falsch oder was ?!? watchfensteröffnen -> addwatch-> Expression eingeben -> Watch typ = watch Expression Ich will nicht, dass man mir dass fertige Makro gibt... Will selbst drauf kommen. Nur wie gesagt ich, weiß nicht wie man die Eigenschaften von einem bestehenden Object ändert.
Versuche an Beispielen zu verstehen wie das geht Z.B.:
Code: Dim myParameters As Parameters Set myParameters = myProduct.UserRefProperties Dim getThickness,getMaterial, getMass, nom, partName, RealPartNumber As String getThickness = myParameters.Item(part1.Name &"\Properties\Thickness").ValueAsString getMaterial = myParameters.Item(part1.Name&"\Properties\Material").ValueAsString getMass = myParameters.Item(part1.Name & "\Properties\Mass").ValueAsString getNEWID = myParameters.Item(part1.Name & "\Properties\NEW_ID").ValueAsString
Aber meine Eingenschaft ist ja kein Wert sondern ein Punkt.... Gruß
minotito Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 10. Dez. 2019 08:04 <-- editieren / zitieren --> Unities abgeben: Nur für minotito
Servus Zum Watchfenster: gehe noch einen Schritt beim Makro weiter und poste dann nochmal das Bild. (bzw dann auch prüfen ob dir Intelisense eventuelle Methoden zu dem Objekt ausgibt) Zu der Eigenschaft die du sucht: ich will dir zeigen ob es diese "Eigenschaft" überhaupt gibt (bzw per Makro ansprechen lässt) Ein Beispiel wie ein Punkt an ein Objekt/Eingenschaft zugewiesen wird, siehe bei HybridShapePointCoord die PtRef In deinem Beispielcode greifst du auf einen Parameter zu nicht auf die "Eigenschaft". Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
minotito Mitglied Student
Beiträge: 31 Registriert: 11.11.2019
|
erstellt am: 10. Dez. 2019 12:12 <-- editieren / zitieren --> Unities abgeben:
Hey, Zitat: bzw dann auch prüfen ob dir Intelisense eventuelle Methoden zu dem Objekt ausgibt
Das habe ich nicht wirklich verstanden was ich prüfen soll ?!? Ein Schritt im Makro Weiter (Siehe Bild). Zitat: Zu der Eigenschaft die du sucht: ich will dir zeigen ob es diese "Eigenschaft" überhaupt gibt (bzw per Makro ansprechen lässt)
1. Fall: Wenn ich Rechts-klick auf die 1 Termination mache und auf Properties gehe ( Siehe Bild).... 2. Fall: Wenn ich Doppel-klick auf die 1 Termination mache (siehe Bild) Ich brauche ja im Fall 2 die Representation. Heißt, dass es dem zufolge keine Eigenschaft ist oder was ? Jetzt verstehe ich auf was du hinaus willst. Gruß minotito Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 10. Dez. 2019 12:21 <-- editieren / zitieren --> Unities abgeben: Nur für minotito
Servus Ich will dir zeigen wie du selbst herausfindest ob per Makro diese Elemente ansprechbar sind. mein Code starten -> Haltemarke bei der MsgBox -> a) im Watchfenster schauen was es dort gibt (und ggf Bild posten) und b) im Code für oSelectedObject schauen ob Intellisense (Autovervollständigung) was anbietet. Ich weiß was du willst: a) befürchte ich das das per Makro nicht geht b) kenne mich in der Workbench nicht aus Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
minotito Mitglied Student
Beiträge: 31 Registriert: 11.11.2019
|
erstellt am: 10. Dez. 2019 12:58 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 10. Dez. 2019 13:08 <-- editieren / zitieren --> Unities abgeben: Nur für minotito
Servus Du hast vor dem starten des Makros auch eine Termination gewählt? Wenn ja, kann diese per Makro nicht angesprochen werden und das darüber liegende Part wird im Watch-Fenster angezeigt. Somit sind scheinbar die Terminations nicht per Makro ansprechbar/editierbar. Meine Ansicht nach: lass es (auf diesem Weg) sein Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
minotito Mitglied Student
Beiträge: 31 Registriert: 11.11.2019
|
erstellt am: 12. Dez. 2019 09:32 <-- editieren / zitieren --> Unities abgeben:
Hey, okay hab es auch eingesehen.... Habe ja ein template erstellt wo ich bereits 175 Terminations habe und 175 Punkte, die schon mit einander verlinkt sind ( wie gewollt ). Habe jetzt ein Macro zum löschen der "Überflüssigen" Punkte und Terminations. hab mich eingearbeitet für das Makro zum ändern der Koordinaten von bestehenden Punkten. Nur weiß ich nicht wie ich hierbei genau vorgehen muss ?? genau wie beim erstellen von neuen Punkten ? Koordinaten einlesen ( von Excel ) und anstelle von erzeugen von neuen Punkt alten Punkt verwenden ( wenn ja wie?) oder Alten Punkt selektieren, dann Punkte einlesen ( von Excel ) ? Wäre nett, wenn man mir erklären könnte wie man die Koordinaten ändern könnte. Das Einlesen funktioniert schon. Gruß minotito Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 12. Dez. 2019 10:04 <-- editieren / zitieren --> Unities abgeben: Nur für minotito
Servus Ich würde den Punkt ansprechen (über die HybridShape-Collection des GeoSets) und dann die Koordinaten anpassen: Code: myPointCoord.X.Value = 30 myPointCoord.Y.Value = 50 myPointCoord.Z.Value = 60
Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
minotito Mitglied Student
Beiträge: 31 Registriert: 11.11.2019
|
erstellt am: 12. Dez. 2019 12:07 <-- editieren / zitieren --> Unities abgeben:
Hey, heißt ich kann jetzt sagen z.B
Code:
XCoord = CDbl(WS.Cells(nRow, 2).Value) YCoord = CDbl(WS.Cells(nRow, 3).Value) ZCoord = CDbl(WS.Cells(nRow, 4).Value)myPointCoord.X.Value = XCoord myPointCoord.Y.Value = YCoord myPointCoord.Z.Value = ZCoord
das mit dem Ansprechen vom Punkt hab ich noch nicht ganze verstanden wie das gehen soll .... Gruß, minotito Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 12. Dez. 2019 12:16 <-- editieren / zitieren --> Unities abgeben: Nur für minotito
Servus Bitte schau endlich mal in ein Fachbuch. Auch die Doku, das Watchfenster und die Objektauflösung könnten dir weiterhelfen. Beispiel: Code: Sub CATMain()Set partDocument1 = CATIA.ActiveDocument Set part1 = partDocument1.Part Set hybridBodies1 = part1.HybridBodies Set hybridBody1 = hybridBodies1.Item("MeinGeoSetName") 'oder über den Index for i = 1 to hybridBody1.hybridShapes.count Set MyPoint = hybridBody1.hybridShapes.item(1) MsgBox MyPoint.Name next End Sub
Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
minotito Mitglied Student
Beiträge: 31 Registriert: 11.11.2019
|
erstellt am: 12. Dez. 2019 14:29 <-- editieren / zitieren --> Unities abgeben:
Hey, So meinte ich es nicht habe anstelle von .item(....) .Point(.....) benutzt, da hat es gehakt. nur habe ich jetzt ein anderes Problem.... Ab der Zeile wo ich die Coordinaten angeben will hat zeigt der eine Fehlermeldung... (Siehe Bild) Woran kann das liegen ? Und zum Fachbuch: kannst du mir eins empfehlen ? Hatte vor mein Praktikum noch nie was mit CATIA oder VBAs für CATIA zu tun. Lege mir auf jeden Fall eins zu, brauche dann nicht ständig hier stören. Danke Gruß, minotito Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 12. Dez. 2019 17:37 <-- editieren / zitieren --> Unities abgeben: Nur für minotito
Servus Fachbücher: siehe Literaturliste auf catia.cad.de Zu deinem Fehler: du schreibst oben Point und in der nächsten Zeile PointCoord. Das passt nicht zusammen. Vorsicht bei Benennungen von Variablen/Objekten: manche Namen sind nicht zulässig (ggf machen Objekt-Typ als Objektname Probleme) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
minotito Mitglied Student
Beiträge: 31 Registriert: 11.11.2019
|
erstellt am: 13. Dez. 2019 09:05 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, Vielen Vielen Dank für deine Hilfe. Ich weiß bin dir am Ende auf die Nerven gegangen, aber hast mir damit sehr geholfen. Funktioniert jetzt alles, und dein Tipp am Ende war sehr gut. Code: Set Point = myHBody.HybridShapes.Item("Term" & n & "PT")Dim oX Set oX = Point.x oX.Value = x Dim oY Set oY = Point.y oY.Value = y Dim oZ Set oZ = Point.z oZ.Value = z
so klappt das alles jetzt. Damit ist dem eigentlichen Problem umgangen worden. Gruß minotito Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |