Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Makro wiederholen Schleife erzeugen

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 wiederholen Schleife erzeugen (1721 mal gelesen)
Picturato
Mitglied
Techniker

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

Beiträge: 8
Registriert: 04.01.2017

Catia V5 19 Service Pack 2

erstellt am: 04. Jan. 2017 14:43    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

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 Feedback
PS: 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


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: 04. Jan. 2017 14:50    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 Picturato 10 Unities + Antwort hilfreich

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

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

Beiträge: 8
Registriert: 04.01.2017

Catia V5 19 Service Pack 2

erstellt am: 04. Jan. 2017 16:04    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

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


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: 04. Jan. 2017 16:17    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 Picturato 10 Unities + Antwort hilfreich

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 oLineNormal 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

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

Beiträge: 8
Registriert: 04.01.2017

Catia V5 19 Service Pack 2

erstellt am: 04. Jan. 2017 19:58    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

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 PartDocument
Set oPartDocument = CATIA.ActiveDocument

Dim oPart As Part
Set oPart = oPartDocument.Part

sel.clear

Dim sFilter(0)
sFilter(0)  =  "HybridBody"

Dim Status As String
Status = sel.selectelement2(sFilter,"GeometricalSet Selektieren in dem sich die Flaeche befindet",false)

Dim oHybridbody As Hybridbody
Set oHybridbody = sel.item(1).value

sel.clear

Dim oHybridshape As Hybridshape
Set oHybridshape = oHybridbody.Hybridshapes.item(1)

Dim  oHybridShapeFact 'As HybridShapeFactory
Set oHybridShapeFact = oPart.HybridShapeFactory

Dim refSurface As Reference
Set refSurface = oPart.CreateReferenceFromObject(oHybridshape)
sel.Search "CATPrtSearch.Point,all"

Dim i as Integer

for i =  1 to sel.Count2

Dim oLineNormal As HybridShapeLineNormal
sel.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


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: 04. Jan. 2017 20:11    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 Picturato 10 Unities + Antwort hilfreich

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

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

Beiträge: 8
Registriert: 04.01.2017

Catia V5 19 Service Pack 2

erstellt am: 04. Jan. 2017 20:31    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

Eingangspunkt des script konnte nicht gefunden werden

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

Picturato
Mitglied
Techniker

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

Beiträge: 8
Registriert: 04.01.2017

Catia V5 19 Service Pack 2

erstellt am: 04. Jan. 2017 20: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


Makrotest.CATPart

 
Anbei sende ich Dir mal mein Muster an dem ich es Testen möchte

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

Picturato
Mitglied
Techniker

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

Beiträge: 8
Registriert: 04.01.2017

Catia V5 19 Service Pack 2

erstellt am: 04. Jan. 2017 20:42    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

Und das aktuelle script.
-----------------------------

Language="VBSCRIPT"

Sub CATMain()


Dim sel As Selection
Set sel =  CATIA.ActiveDocument.Selection

Dim oPartDocument As PartDocument
Set oPartDocument = CATIA.ActiveDocument

Dim oPart As Part
Set oPart = oPartDocument.Part

sel.clear

Dim sFilter(0)
sFilter(0)  =  "HybridBody"

Dim Status As String
Status = sel.selectelement2(sFilter,"GeometricalSet Selektieren in dem sich die Flaeche befindet",false)

Dim oHybridbody As Hybridbody
Set oHybridbody = sel.item(1).value

sel.clear

Dim oHybridshape As Hybridshape
Set oHybridshape = oHybridbody.Hybridshapes.item(1)

Dim  oHybridShapeFact 'As HybridShapeFactory
Set oHybridShapeFact = oPart.HybridShapeFactory

Dim refSurface As Reference
Set refSurface = oPart.CreateReferenceFromObject(oHybridshape)
sel.Search "CATPrtSearch.Point,all"

Dim i as Integer

for i =  1 to sel.Count2

Dim oLineNormal As HybridShapeLineNormal
Set 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


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: 04. Jan. 2017 20:48    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 Picturato 10 Unities + Antwort hilfreich

Servus
Bei mir läuft das Makro, auch mit deinem Part.

Gruß
Bernd

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

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

Picturato
Mitglied
Techniker

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

Beiträge: 8
Registriert: 04.01.2017

Catia V5 19 Service Pack 2

erstellt am: 04. Jan. 2017 21:28    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

Super vielen Dank nu habe ich es auch :-)
Mein Fehler --> hatte es nicht unter CATScript gespeichert.

Nochmals vielen Dank

Arthur

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