Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Makro Linie senkrecht zur Fläche

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:  Makro Linie senkrecht zur Fläche (1507 mal gelesen)
me23
Mitglied



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

Beiträge: 146
Registriert: 24.07.2007

erstellt am: 09. Mrz. 2016 11:46    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 zusammen

da ich aber absolut keine Ahnung von Makroprogrammierung habe würde ich dazu Eure Hilfe benötigen.Das bestehende Makro hab ich mir über den Makrorecorder aufgezeichnet. Da unten angehängte Makro erzeugt mir eine Linie - Punkt - zur Fläche. Das würde ich gerne so ändern das der Punkt.1 von mir immer augewählt werden kann oder daß gleich, wenn möglich, alle Punkte in dem geometrischen Set genommen werden.
-----------------------
Language="VBSCRIPT"

Sub CATMain()

Set partDocument1 = CATIA.ActiveDocument

Set part1 = partDocument1.Part

Set hybridShapeFactory1 = part1.HybridShapeFactory

Set hybridBodies1 = part1.HybridBodies

Set hybridBody1 = hybridBodies1.Item("Geometrisches Set.1")

Set hybridShapes1 = hybridBody1.HybridShapes

Set hybridShapeSweepExplicit1 = hybridShapes1.Item("Translation.1")

Set reference1 = part1.CreateReferenceFromObject(hybridShapeSweepExplicit1)

Set hybridBody2 = hybridBodies1.Item("Geometrisches Set.2")

Set hybridShapes2 = hybridBody2.HybridShapes

Set hybridShapePointOnSurface1 = hybridShapes2.Item("Punkt.1")

Set reference2 = part1.CreateReferenceFromObject(hybridShapePointOnSurface1)

Set hybridShapeLineNormal1 = hybridShapeFactory1.AddNewLineNormal(reference1, reference2, 20.000000, -20.000000, False)

Set hybridBody3 = hybridBodies1.Item("Linie")

hybridBody3.AppendHybridShape hybridShapeLineNormal1

part1.InWorkObject = hybridShapeLineNormal1

part1.Update

End Sub

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

Vorab schon mal besten Dank für die Hilfe

------------------
mfg    
me23

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 09. Mrz. 2016 12:40    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 me23 10 Unities + Antwort hilfreich

Servus
Wenn du keine Ahnung von Makroprogrammierung hast: mit einer PowerCopy sollt das auch schnell möglich sein.

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

Randle
Mitglied
CAD/PLM Consultant


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

Beiträge: 695
Registriert: 12.04.2003

Win10 x64
CATIA V5 R18, R19, R21, R27-29

erstellt am: 11. Mrz. 2016 09:56    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 me23 10 Unities + Antwort hilfreich

Hallo,

wenn es nur um ein paar (~30-50) Elemente geht, bzw. um eine immer mal wieder auftretende Anwendungsfall, wäre ein Powercopy sicherlich das Mittel der Wahl. Ansonsten wäre ein Makro sicher effektiver/komfortabler.
Generell solltest du dir mal die Datei "DEIN INSTALLATIONSVERZEICHNIS VON CATIA\intel_a\code\bin\V5Automation.chm" ansehen, wenn du dich zukünftig mit Makroprogrammierung beschäftigen möchtest. Dort findest du ca. 70-80% aller Dinge die du im Bezug auf CATIA V5 und Programmierung brauchst, den Rest findest du hier im Form.

Für deinen speziellen Anwendungsfall brauchst du u.a. aus der V5Automation.chm folgende "Dinge":

HybridBody (Geo Sets)
HybridBodyShape (Geometrie wie Linien, Punkte, Ebenen, Joins, usw.)
HybridBodyShapeFactory (der "Werkzeugkasten" um Geometrie, wie Draht- und Flächengeometrie, zu erzeugen.)
Selection (Auswahl von Elementen in CATIA V5)
SelectElement2, SelectElement3, SelectElement4 (verschieden Möglichkeiten der Auswahl von Elementen durch den Anwender)
CreateReferenceFromObject (um Referenzen von Geometrieen zu erzeugen)


Als allgemeines Programmier/VBA Wissen wären u.a. folgende Dinge zu erwähnen.

If, Then, Else (Abfragen ob Bedingungen erfüllt sind oder nicht um dann entsprechend darauf zu reagieren)
For, Next Schleifen (um Elemente einer Anwender/Makro Selections einzeln zu durchlaufen, abzufragen)
TypeName (um den Elemententyp abzufragen, falls in einer Selection, in einem GeoSet andere Elemente als die benötigten enthalten sind).
Anwenderinteraktionen wie MsgBox, Inputbox.

Der Makrorekorder ist gut um mal rauszufinden welche Objekte wie genutzt werden, wie die spezielle Syntax lautet usw. Wenn man allerdings Einsteiger in dem Thema ist, kann das auch sehr verwirrend sein, da die Namensgebung der Objekte/Variablen nicht unbedingt sehr gut lesbar sind (weil sie z.B. sehr den Namen der jeweiligen Objekttypen gleichen). Ein flexibles Makro das auf unterschiedliche Modelle passt ohne es auch nur wenig anzupassen wird man dort nicht bekommen. Außerdem zeichnet der auch nicht alles auf.

Für deinen Anwendungsfall ein Makro zu schreiben dauert sauber (Fehlerbehandlung, Stabilität, flexibel mit Alternativen Anwenderaktionen, Nachvollziehbarkeit, Einbindung CATIA V5, kleine Anleitung, usw.) ca. 1-1,5h, schnell hingeschmiert ca. 30Min. Wenn du gezielte Fragen hast helfe ich dir gerne weiter (und andere hier im Forum sicher auch), ein fertiges Makro würde ich jetzt nur raushauen, wenn ich ca. 60% bereits irgendwo rumliegen hätte. Wenn du mir die lieferst mach ich den Rest ;-)

Viel Erfolg und Gruß
Randle

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

me23
Mitglied



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

Beiträge: 146
Registriert: 24.07.2007

erstellt am: 11. Mrz. 2016 16:23    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 und besten Dank für die Anworten

Vieleicht mal kurz zum Hintergrund. Ich bekomme ab und zu bis zu 500(Bohrungsmittel)Punkte aus einem anderen System die dann in Catia eingelesen werden. Die Linie soll dann den Bohrungsvektor darstellen. Natürlich ist das dann nicht immer nur eine Fläche sondern auch mal ein paar mehr.
Mit meiner "alsolut null Ahnung von Makro" hab ich mir soweit beholfen das das Makro die Linien zu den Flächen macht. Ich muß mir zwar das Makro immer wieder, je nach Anwendungsfall, ein wenig anpassen ist aber für meine Zwecke, und für mich, völlig ausreichend.

Euch beiden vielen Dank für den Hinweis zur Power Copy und den den aufgeführten Befehlen.


PS: und wenn das Makro dann bei Punkt 387 stehen beleibt ist mir das völlig schnurz. Dann waren es eben nur 387 Punkte 

------------------
mfg    
me23

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