Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Point Repetiition

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:  Point Repetiition (1763 mal gelesen)
Basti1379
Mitglied



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

Beiträge: 18
Registriert: 24.01.2019

CATIA V5

erstellt am: 17. Feb. 2019 18:19    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

Code:
'********************Points Repetiition*****************

If Laenge > 0 Then

Dim j As Integer
Dim n As Integer

For j = 0 to 1 step 0.02
For n = 1 to 50 step 1

Set oreference = ohybridShapeBoundary
Set oreference2 = ohybridShapePointOnCurve

Set ohybridShapePointOnCurve2 = ohybridShapeFactory.AddNewPointOnCurveWithReferenceFromPercent (oreference, oreference2, j, False)


ohybridBody.AppendHybridShape ohybridShapePointOnCurve2
ohybridShapePointOnCurve2.name ="HelpingPoint." & n

Next
Next


End If


Hi ich hänge grade fest.Ich würde gerne 50 Punkte erstellen und diese durchnummerieren von 1 bis 50.

Das Macro erstellt derzeit 2500 

Mit freundlichen Grüßen

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: 17. Feb. 2019 18:39    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 Basti1379 10 Unities + Antwort hilfreich

Servus

Ich würde nur eine Schleife verwenden:

Code:
Dim lngPercentageStep As long
Dim n As Integer
Dim iNumberOfPoints as Integer

Set oreference = ohybridShapeBoundary
Set oreference2 = ohybridShapePointOnCurve

iNumberOfPoints = 50
lngPercentageStep = 1 / iNumberOfPoints

For n = 1 to iNumberOfPoints
  Set ohybridShapePointOnCurve2 = ohybridShapeFactory.AddNewPointOnCurveWithReferenceFromPercent (oreference, oreference2,  n * lngPercentageStep , False)
  ohybridBody.AppendHybridShape ohybridShapePointOnCurve2
  ohybridShapePointOnCurve2.name ="HelpingPoint." & CStr(n)
Next


Gruß
Bernd

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

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

Basti1379
Mitglied



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

Beiträge: 18
Registriert: 24.01.2019

CATIA V5

erstellt am: 17. Feb. 2019 18:49    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

Zitat:
Original erstellt von bgrittmann:
Servus

Ich würde nur eine Schleife verwenden:

Code:
Dim lngPercentageStep As long
Dim n As Integer
Dim iNumberOfPoints as Integer

Set oreference = ohybridShapeBoundary
Set oreference2 = ohybridShapePointOnCurve

iNumberOfPoints = 50
lngPercentageStep = 1 / iNumberOfPoints

For n = 1 to iNumberOfPoints
   Set ohybridShapePointOnCurve2 = ohybridShapeFactory.AddNewPointOnCurveWithReferenceFromPercent (oreference, oreference2,  n * lngPercentageStep , False)
   ohybridBody.AppendHybridShape ohybridShapePointOnCurve2
   ohybridShapePointOnCurve2.name ="HelpingPoint." & CStr(n)
Next


Gruß
Bernd


Hi vielen Dank für die super Hilfe es klappt wunderbar.

Gruß Basti

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

Basti1379
Mitglied



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

Beiträge: 18
Registriert: 24.01.2019

CATIA V5

erstellt am: 21. Feb. 2019 21:34    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

Hi zusammen ich würde gerne eine Measure loop mit einer For-Next Schleife kombinieren.Hat jemand eine Idee wie ich es realisieren könnte?
Code:
'**************************Measure Loop ********************
Dim oref1 As Reference
Dim oref2 As Reference
Dim MinimumDistance As Double
Dim Summe As Integer

For n = 1 to iNumberOfPoints
Summe =  n + 1

Set oref1 = oHybridBody.hybridShapes.Item("HelpingPoint." & CStr(n))
Set oref2 = oHybridBody.hybridShapes.Item("HelpingPoint." & CStr(Summe))

Set TheSPAWorkbench = CATIA.ActiveDocument.GetWorkbench("SPAWorkbench")
Set TheMeasurable = TheSPAWorkbench.GetMeasurable(oref1)

MinimumDistance = TheMeasurable.GetMinimumDistance(oref2) 

If MinimumDistance = Laenge / iNumberOfPoints then

Next

Else

Dim Vector (2)
Dim oHybridShapeLine as HybridShapeLinePtPt
Set oreference = oSelection.Item(1).Value

Set oref1 = oHybridBody.hybridShapes.Item("HelpingPoint." & CStr(n))
Set oref2 = oHybridBody.hybridShapes.Item("HelpingPoint." & CStr(Summe))

Set oHybridShapeLine = ohybridShapeFactory.AddNewLinePtPt ( oref1, oref2)
ohybridBody3.AppendHybridShape oHybridShapeLine
oHybridShapeLine.Name = Direction.1

oHybridShapeLine.GetDirection Vector


Set oHybridShapeExtremum1 = ohybridShapeFactory.AddNewExtremum(oreference ,Vector (0),Vector(1), Vector(2) )
ohybridBody2.AppendHybridShape oHybridShapeExtremum1
oHybridShapeExtremum1.Name = Extrema.1

Next
End If


[Diese Nachricht wurde von Basti1379 am 21. Feb. 2019 editiert.]

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: 21. Feb. 2019 22:51    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 Basti1379 10 Unities + Antwort hilfreich

Servus

Beschreibe mal was der Code bezwecken soll.
Zwischen was soll gemessen werden?
Klappt deine Messung?
Wo ist dein Problem?

Gruß
Bernd

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

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

Basti1379
Mitglied



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

Beiträge: 18
Registriert: 24.01.2019

CATIA V5

erstellt am: 21. Feb. 2019 23:57    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

Zitat:
Original erstellt von bgrittmann:
Servus

Beschreibe mal was der Code bezwecken soll.
Zwischen was soll gemessen werden?
Klappt deine Messung?
Wo ist dein Problem?

Gruß
Bernd


Das Makro erstellt eine Linie und in Abhängigkeit von der Länge Punkte.

Ich möchte jetzt zwischen diesen Punkten messen zwischen 1 und 2 dann 2 und 3 usw.

Wenn eine Länge von dem Kriterium "Gesamtlänge / Punkte =Abschnitt " abweicht soll er hier ein Extremum erstellt werden.Die Messung  soll jedoch nicht Abgebrochen werden sondern bis zur Max. Anzahl der Punkte weiter laufen.

Meine Idee wäre ein Loop Count einzubauen und dann dort wieder einsteigen.

Bin mir aber nicht sicher was hier am sinnvollsten wäre.

Gruß,
Basti

Edit: Die Messungen hab ich mit MsgBox überprüft und die erste Messung passt.

Das Macro sagt "Next" Anweisung erwartet.
Hängt wohl an der For-Next Schleife.(meins wäre ja ehr If-Next)

[Diese Nachricht wurde von Basti1379 am 22. Feb. 2019 editiert.]

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: 22. Feb. 2019 19:12    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 Basti1379 10 Unities + Antwort hilfreich

Servus

Meine Idee dazu:

Code:
For n = 1 to iNumberOfPoints
  'Punkt erstellen
  if n > 2 then
      'Messung zwischen ohybridShapePointOnCurve2  und oPreviousPointOnCurve
      'falls erforderlich die weiter Geometrie erstellen
  end if
  Set oPreviousPointOnCurve = ohybridShapePointOnCurve2
next
Gruß
Bernd

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

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

Basti1379
Mitglied



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

Beiträge: 18
Registriert: 24.01.2019

CATIA V5

erstellt am: 25. Feb. 2019 18:33    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

Hi zusammen,

Ich würde gerne die Select Case Methode benutzen jedoch sagt Catia "Anweisung erwartet" bei 1 to 5 und 9 to 10

Code:
Dim Number
Number = 8   
Select Case Number 
Case 1 To 5   
    msgbox("1 bis 5")

Case 6, 7, 8   
    msgbox(" 6,7,8")
Case 9 To 10   

Case Else 
  msgbox( "Not between 1 and 10" )
End Select


Laut den Seiten sollte es gehen.
https://docs.microsoft.com/de-de/office/vba/language/reference/user-interface-help/select-case-statement

https://docs.microsoft.com/de-de/dotnet/visual-basic/language-reference/statements/select-case-statement

Hat jemand eine Ahnung von der Methode?

Gruß,
Basti

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: 25. Feb. 2019 19:36    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 Basti1379 10 Unities + Antwort hilfreich

Servus Basti

In was programmierst du?
AFAIK ist in CATScript und catvbs nicht alles von VBA implementiert (das To funktioniert in diesem Fall zumindest nicht). zB fehlen dort auch die nützlichen Collections als eigenes Objekt.

Gruß
Bernd

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

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