Autor
|
Thema: freistich via makro (1443 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: 11780 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 |
| Technischer Systemplaner (m/w/d) / Technischer Zeichner (m/w/d) | Die Gerhardt Braun Unternehmensgruppe entwickelt, produziert und montiert flexible Raumsysteme für den Wohnungsbau, Industrie und Gewerbe. Diese beinhalten Trennwände, Einhausungen, Überdachungen und Kompaktboxen. Mit rund 250 kompetenten MitarbeiterInnen und über 200 Montagepartnern sind wir an 9 Standorten in Europa vertreten. Wir sind ein agiles Familienunternehmen in einer wachstumsgeprägten Branche.... | Anzeige ansehen | Konstruktion, Visualisierung |
|
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 |