|  |  | 
|  | CATIA V5 Grundkurs | Einsteiger - 5 Std. 15 Min 48 | 
|  |  | 
|  | KISTERS 3DViewStation optimiert die Lizenzverwaltung für ihre Kunden, eine Pressemitteilung 
 | 
| Autor | Thema:  Makro wiederholen Schleife erzeugen (2186 /  mal gelesen) | 
 | Picturato Mitglied
 Techniker
 
 
      Beiträge: 8Registriert: 04.01.2017
 Catia V5 19 Service Pack 2 |    erstellt am: 04. Jan. 2017 14:43  <-- editieren / zitieren -->    Unities abgeben:            
  Möchte auf eine Fläche eine Senkrechte basierend auf einem Punkt auf der Fläche erstellen. Da ich nun über 100 Punkte auf der Fläche  ( Punkt 1 Punkt 2 usw) habe, benötoge ich eine schleife des Macro die für alle Punkte eine Senkrechte generiert. Vielen Dank für Euer FeedbackPS: meine Stärken liegen sicherlich nicht beim erstellen eines Makro http://ww3.cad.de/foren/ubb/icons/icon6.gif
 Language="VBSCRIPT" Sub CATMain() Set partDocument1 = CATIA.ActiveDocument Set part1 = partDocument1.Part Set hybridShapeFactory1 = part1.HybridShapeFactory Set parameters1 = part1.Parameters Set hybridShapeSurfaceExplicit1 = parameters1.Item("Fläche.1") Set reference1 = part1.CreateReferenceFromObject(hybridShapeSurfaceExplicit1) Set hybridBodies1 = part1.HybridBodies Set hybridBody1 = hybridBodies1.Item("Point") Set hybridShapes1 = hybridBody1.HybridShapes Set hybridShapePointOnSurface1 = hybridShapes1.Item("Punkt.1") Set reference2 = part1.CreateReferenceFromObject(hybridShapePointOnSurface1) Set hybridShapeLineNormal1 = hybridShapeFactory1.AddNewLineNormal(reference1, reference2, 0.000000, 20.000000, False) Set hybridBody2 = hybridBodies1.Item("Senkrechte") hybridBody2.AppendHybridShape hybridShapeLineNormal1 part1.InWorkObject = hybridShapeLineNormal1 part1.Update
 End Sub  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | bgrittmann Moderator
 Konstrukteur
 
         
 
      Beiträge: 12117Registriert: 30.11.2006
 CATIA V5R19 |    erstellt am: 04. Jan. 2017 14:50  <-- editieren / zitieren -->    Unities abgeben:           Nur für Picturato   
  Servus Willkommen im Forum. Bitte Systeminfo ausfüllen. Wenn du keine Ahnung von Programmierung hast wären folgende Schritte angebracht: 1. allgemein in VB(A) einarbeiten 2. deinen aufgezeichneten Code verstehen dazu auch mal in die Literatur von Catia schauen 3. deine unter 1. erhaltenen Kenntnisse auf deinen Code anwenden und ergänzen (Aufbau, Schleifen, ...) GrußBernd
 PS: Manchmal liefert auch die Forensuche schon was fast passendes. ------------------Warum einfach, wenn es auch kompliziert geht.
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Picturato Mitglied
 Techniker
 
 
      Beiträge: 8Registriert: 04.01.2017
 Catia V5 19 Service Pack 2 |    erstellt am: 04. Jan. 2017 16:04  <-- editieren / zitieren -->    Unities abgeben:            
  Vielen Dank, für Deine Hilfe. Bin leider nicht weitergekommen. ( Makro im Link ist leider ohne Funktion) Bitte entschuldige, ich dachte es ist ein leichtes mir hier eine Schleife einzubauen. Nun dies scheint aber ohne tiefere Kenntnisse nicht möglich zu sein. Vielen Dank dennoch Arthur 
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | bgrittmann Moderator
 Konstrukteur
 
         
 
      Beiträge: 12117Registriert: 30.11.2006
 CATIA V5R19 |    erstellt am: 04. Jan. 2017 16:17  <-- editieren / zitieren -->    Unities abgeben:           Nur für Picturato   
  Servus Hast du das Makro als CATScipt gespeichert? Handelt es sich bei den Punkten um 3D-Punkt (Punkte in Skizzen gehen mit dem Code nicht)? Hast du die Anmerkungen zum dem Code gelesen? Im Code ist noch ein Fehler: in der Zeile mit Set oLineNorma l muss es sel.Item2(i).Reference  heißen. GrußBernd
 ------------------Warum einfach, wenn es auch kompliziert geht.
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Picturato Mitglied
 Techniker
 
 
      Beiträge: 8Registriert: 04.01.2017
 Catia V5 19 Service Pack 2 |    erstellt am: 04. Jan. 2017 19:58  <-- editieren / zitieren -->    Unities abgeben:            
  Vielen Dank, für Deine Unterstützung.Habe alle so umgesezt wie beschrieben. ( siehe unten)
 Punkte sind 3D Punkte und die Fläche ist in einem eigenem Geoset.
 Problem ich bekomme eine Fehlermeldung und im script ist die lezte Zeile     oPart.Update ()    rot. solltest Du nochmals Zeit habe würde ich mich freuen. Gruß Arthur    -------------Language="VBSCRIPT"
 Sub CATMain() Dim sel As Selection
 Set sel =  CATIA.ActiveDocument.Selection
 Dim oPartDocument As PartDocumentSet oPartDocument = CATIA.ActiveDocument
 Dim oPart As PartSet oPart = oPartDocument.Part
 sel.clear Dim sFilter(0)sFilter(0)  =  "HybridBody"
 Dim Status As StringStatus = sel.selectelement2(sFilter,"GeometricalSet Selektieren in dem sich die Flaeche befindet",false)
 Dim oHybridbody As HybridbodySet oHybridbody = sel.item(1).value
 sel.clear Dim oHybridshape As HybridshapeSet oHybridshape = oHybridbody.Hybridshapes.item(1)
 Dim  oHybridShapeFact 'As HybridShapeFactorySet oHybridShapeFact = oPart.HybridShapeFactory
 Dim refSurface As ReferenceSet refSurface = oPart.CreateReferenceFromObject(oHybridshape)
 sel.Search "CATPrtSearch.Point,all"
 Dim i as Integer for i =  1 to sel.Count2 Dim oLineNormal As HybridShapeLineNormalsel.Item2(i).Reference = oHybridShapeFact.AddNewLineNormal(refSurface, sel.Item2(1).Reference, 20, -20, false)
 oHybridbody.AppendHybridShape oLineNormal
 oPart.InWorkObject = oLineNormal
 oPart.Update ()
 next sel.Clear End Sub Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | bgrittmann Moderator
 Konstrukteur
 
         
 
      Beiträge: 12117Registriert: 30.11.2006
 CATIA V5R19 |    erstellt am: 04. Jan. 2017 20:11  <-- editieren / zitieren -->    Unities abgeben:           Nur für Picturato   
  Servus Wie lautet die Fehlermeldung? Die von mir verbesserte Zeile muss Code:Set oLineNormal = oHybridShapeFact.AddNewLineNormal(refSurface, sel.Item2(i).Reference, 20, -20, false)
 
 heißen. ggf musst du auch bei oPart.Update die Klammer weglassen. GrußBernd
 ------------------Warum einfach, wenn es auch kompliziert geht.
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Picturato Mitglied
 Techniker
 
 
      Beiträge: 8Registriert: 04.01.2017
 Catia V5 19 Service Pack 2 |    erstellt am: 04. Jan. 2017 20:31  <-- editieren / zitieren -->    Unities abgeben:            | 
                        | Picturato Mitglied
 Techniker
 
 
      Beiträge: 8Registriert: 04.01.2017
 Catia V5 19 Service Pack 2 |    erstellt am: 04. Jan. 2017 20:40  <-- editieren / zitieren -->    Unities abgeben:            | 
                        | Picturato Mitglied
 Techniker
 
 
      Beiträge: 8Registriert: 04.01.2017
 Catia V5 19 Service Pack 2 |    erstellt am: 04. Jan. 2017 20:42  <-- editieren / zitieren -->    Unities abgeben:            
  Und das aktuelle script. ----------------------------- Language="VBSCRIPT" Sub CATMain() Dim sel As Selection
 Set sel =  CATIA.ActiveDocument.Selection
 Dim oPartDocument As PartDocumentSet oPartDocument = CATIA.ActiveDocument
 Dim oPart As PartSet oPart = oPartDocument.Part
 sel.clear Dim sFilter(0)sFilter(0)  =  "HybridBody"
 Dim Status As StringStatus = sel.selectelement2(sFilter,"GeometricalSet Selektieren in dem sich die Flaeche befindet",false)
 Dim oHybridbody As HybridbodySet oHybridbody = sel.item(1).value
 sel.clear Dim oHybridshape As HybridshapeSet oHybridshape = oHybridbody.Hybridshapes.item(1)
 Dim  oHybridShapeFact 'As HybridShapeFactorySet oHybridShapeFact = oPart.HybridShapeFactory
 Dim refSurface As ReferenceSet refSurface = oPart.CreateReferenceFromObject(oHybridshape)
 sel.Search "CATPrtSearch.Point,all"
 Dim i as Integer for i =  1 to sel.Count2 Dim oLineNormal As HybridShapeLineNormalSet oLineNormal = oHybridShapeFact.AddNewLineNormal(refSurface, sel.Item2(i).Reference, 20, -20, false)
 oHybridbody.AppendHybridShape oLineNormal
 oPart.InWorkObject = oLineNormal
 oPart.Update
 next sel.Clear End Sub Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | bgrittmann Moderator
 Konstrukteur
 
         
 
      Beiträge: 12117Registriert: 30.11.2006
 CATIA V5R19 |    erstellt am: 04. Jan. 2017 20:48  <-- editieren / zitieren -->    Unities abgeben:           Nur für Picturato   | 
                       
 | Picturato Mitglied
 Techniker
 
 
      Beiträge: 8Registriert: 04.01.2017
 Catia V5 19 Service Pack 2 |    erstellt am: 04. Jan. 2017 21:28  <-- editieren / zitieren -->    Unities abgeben:            |