| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co. |
| |
 | KISTERS 3DViewStation mit neuer Zerschneidefunktionen und erweitertem PMI-Support, eine Pressemitteilung
|
Autor
|
Thema: freistich via makro (1570 mal gelesen)
|
silima Mitglied
 Beiträge: 3 Registriert: 01.12.2006
|
erstellt am: 16. Mrz. 2007 15:08 <-- editieren / zitieren --> Unities abgeben:         
Hallo! ich darf blöderweise für meine Studienarbeit Makroprogrammierung in Catia machen. Mein prof will, dass ich ein Makro für die automatische erstellung von freistichen bastle... Sonst bin ich in Catia doch ganz gut, aber bei Programmierung beißts dann aus, ich kann eigentlich kein VB. Immerhin schafft es meine Programmierkunst schon, eine msgbox auszugeben (haha!) und der user kann einen punkt auswählen. den will ich benutzen, um die Geometrie des Freistichs da rum zu bauen. jetz frag ich mich, wie ich das Makro dazu bring, die koordinaten des durch den user gewählten punktes einzulesen, so dass ich diese dann als starpunkt für die erstellung einer linie in der skizze verwenden kann! wäre nett, wenn mir da jemand weiterhelfen könnte. außerdem will ich mich nicht einfach auf zahlenwerte beziehen, das Makro soll linien in bestimmten abständen erstellen, also z. b. -0,3 cm in X-Richtung vom ursprünglichen wert entfernt. wie mach ich das am besten? schon mal dank fürs drüber nachdenken :-) lg susi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 19. Mrz. 2007 07:59 <-- editieren / zitieren --> Unities abgeben:          Nur für silima
|
Timberwolve Mitglied
 
 Beiträge: 233 Registriert: 21.07.2006
|
erstellt am: 20. Mrz. 2007 10:01 <-- editieren / zitieren --> Unities abgeben:          Nur für silima
Also Powercopy oder UDF ist ne gute Idee, wenn jedoch ne Programmierung erforderlich ist, dann bringt das nicht viel;-) Hast du vielleicht ein Beispielbild wie das ganze Fertig aussehen sollte??? Zusätzlich dazu sollte klar sein was der Benutzer alles eingeben muss damit der Freistich dann vollständig deklariert ist. Wenn du mal diese Dinge postest können wir dir vielleicht weiterhelfen. Gruß Timber
------------------ Wenn alle Stricke reissen, nehm ich ein Drahtseil Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
silima Mitglied
 Beiträge: 3 Registriert: 01.12.2006
|
erstellt am: 21. Mrz. 2007 21:43 <-- editieren / zitieren --> Unities abgeben:         
ich weiß, dass das ganze mit PowerCopy etc. wahrscheinlich einfacher gehen würd. Das Ziel dieser Studienarbeit ist es aber, das ganze als Makro zu programmieren... da hat timberwolve ganz recht. ich habe schon eine gute idee, wie das makro aussehen soll, aber es hapert halt dran, dass ich nicht weiß, wie ich genau programmiere, was ich haben will... hab die letzten tage schon einiges gelernt. trotzdem hängt es an einem ganz bestimmten punkt: ich will die x- und y-koordinaten eines punktes einer skizze einlesen, so dass die werte als wert z. b. xpunkt und ypunkt im makro zur verfügung stehen... das ist eigentlich schon alles. drei oder vier programmzeilchen hierzu wären nett! auf die zweite frage in meinem anfangsbeitrag (wie geh ich relativ in x-richtung um einen gewissen betrag) hab ich schon eine lösung gefunden. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Timberwolve Mitglied
 
 Beiträge: 233 Registriert: 21.07.2006
|
erstellt am: 22. Mrz. 2007 13:35 <-- editieren / zitieren --> Unities abgeben:          Nur für silima
Muss es ein Skizzenpunkt sein?? Warum nimmst du keinen 3D-Punkt??? Ich würde vielleicht den Skizzenpunkt einfach vermassen, dann könntest du auf die Constraints zurückgreifen bzw. die Werte die dann darin stehen. Gruß Timber ------------------ Wenn alle Stricke reissen, nehm ich ein Drahtseil Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Timberwolve Mitglied
 
 Beiträge: 233 Registriert: 21.07.2006
|
erstellt am: 22. Mrz. 2007 13:48 <-- editieren / zitieren --> Unities abgeben:          Nur für silima
Hallo nochmal. Also Ich hab nun ne Lösung für dich. Es geht auch mit nem unbemasstem Punkt: Hier ein kleines Beispiel: Vorraussetzung: Der Punkt muss als Objekt schon vorliegen Code:
Dim Koordinaten(1) 'dies deklariert ein Array worin die Koordinaten geschrieben werden. 2DPunkt.GetCoordinates Koordinaten 'Dieser Befehl befüllt das Array mit dem X und Y Wert Msgbox "X=" & Koordinaten(0) & "Y=" & Koordinaten(1)
An der Stelle an dem mein "2DPunkt" steht, musst du das Objekt des Punktes eintragen. Dann funktioniert das wunderbar. HOffe es hilft die weiter
Gruß Timber ------------------ Wenn alle Stricke reissen, nehm ich ein Drahtseil Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
silima Mitglied
 Beiträge: 3 Registriert: 01.12.2006
|
erstellt am: 15. Apr. 2007 03:38 <-- editieren / zitieren --> Unities abgeben:         
vielen dank für die antworten, hat mir auf jeden fall weiter geholfen. im moment hab ich ein problem mit datentypen. wenn ich eine inputbox anlege, gibt mir diese die eingabe als String zurück, auch wenn es sich um Zahlen handelt, oder? Wie wandle ich nun diesen String (der hoffentlich nur aus Zahlen besteht) in eine Zahlen-Variable, am besten Double um? ich hatte mal programmieren an der uni, allerdings nicht in VB sondern in Delphi (haha, bitte nicht lachen anfangen!), dort kann man mit ner funktion StrToFloat einen String in eine Gleitkommazahl umwandeln... Ich hab mir auch schon den Kopf darüber zerbrochen, aber ich krieg es einfach nicht hin. IsNumeric gibt mir ja auch bloß zurück, ob der String eine Zahl ist oder nicht (true oder false) hab auch schon Val ausprobiert, aber da sagt mir der Editor immer, dass die Typen unverträglich sind. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lusilnie Mitglied
   
 Beiträge: 1486 Registriert: 13.07.2005
|
erstellt am: 15. Apr. 2007 23:08 <-- editieren / zitieren --> Unities abgeben:          Nur für silima
Hallo silima, die Umwandlung von "String" in "Double" erfolgt mit: Code: Double = CDbl(String)
Allerdings musst Du hier noch das Problem des "richtigen" Dezimal-Trennzeichens berücksichtigen, je nach Betriebssystem, Spracheinstellung,... 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 |