Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Spline schließen in 2D

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:  Spline schließen in 2D (2331 mal gelesen)
Malte369
Mitglied



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

Beiträge: 13
Registriert: 13.07.2013

Catia V5 R19
Win8
AMD Quad-Core 3,6Ghz
8GB Ram

erstellt am: 13. Jul. 2013 14: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

Hallo Leute,
ich bastele gerade an meiner Abschlussarbeit.

Hierzu verwende ich ein Sub, welches einen Spline auf einer Skizze erzeugt und weiter verwendet.

Das klappt soweit (auch dank dieses Forum) einwandfrei.
Einziges Problem: Ich würde gerne den Befehl des Fensters "Spline schließen" verwenden.
Das bekomme das einfach nicht hin.
Ich hoffe es hat jemand eine Idee?!


Ich erstelle den Spline mit: "Set Spline = factory2D.CreateSpline (Punkte)"
vielleicht gibt es hier einen Zusatz mit dem ich den Spline als geschlossen deklarieren kann?

Hier das Programm:

Set partDocument1 = CATIA.ActiveDocument
Set Bauteil = partDocument1.Part
Set bodies1 = Bauteil.Bodies
Set body1 = bodies1.Item("Koerper")
Set sketches1 = body1.Sketches
Set sketch1 = sketches1.Item("Skizze.1")
Bauteil.InWorkObject = sketch1
Set factory2D = sketch1.OpenEdition()

Set selection1 = partDocument1.Selection
selection1.Clear
Set geometricElements1 = sketch1.GeometricElements
Set spline2D1 = geometricElements1.Item("Spline")
selection1.Add spline2D1
selection1.Delete


Randomize
Radius =10
alpha =7.2
PI=3.14159
Tol = 0.1


'Anzahl = 360/alpha

Dim Punkte(50)

For i = 0 to 50 Step 1

alphaneu=alphaneu+alpha
alphaers=alphaneu*PI/180
Radiusers=Radius-(Tol/2)+(Tol*Zufallszahl1)

A = Radiusers*cos(alphaers)
G = Radiusers*sin(alphaers)

Set Punkte(i) = factory2D.CreateControlPoint (G,A)
Next

Dim Spline 'As Spline2D
Set Spline = factory2D.CreateSpline (Punkte)            '!!!!!!!!!! auschlagebender Befehl

Spline.Name = "Spline"

sketch1.CloseEdition
Bauteil.Update
End Sub

Function Zufallszahl1()
'=================================================================

Dim Zufallszahl
Zufall = Rnd(1)
[Zufallszahl1] = [Zufall]                                  ''Rueckgabe des Wert Zufallszahl
End Function

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

clausb
Ehrenmitglied V.I.P. h.c.



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

Beiträge: 2914
Registriert: 20.12.2000

erstellt am: 13. Jul. 2013 15:08    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 Malte369 10 Unities + Antwort hilfreich

Walter Geppert
Ehrenmitglied V.I.P. h.c.
Frank und Frei



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

Beiträge: 2143
Registriert: 12.12.2000

Konstruktion von Sondermaschinen, Montageautomaten, Meß- und Prüfeinrichtungen, Vorrichtungen und Produktentwicklung mit Creo Elements/Direct Modeling 20.4, AdvancedDesign, Surfacing, Simulate, SolidPower, ModelManager auf
HP ZBook 17 G4, Windows 10 Pro 64

erstellt am: 13. Jul. 2013 15: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 Malte369 10 Unities + Antwort hilfreich

Wurde soeben von mir verschoben 

------------------
meine LISP-Makros sind auf osd.cad.de Disclaimer
Grüße aus Wien

Walter

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

Malte369
Mitglied



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

Beiträge: 13
Registriert: 13.07.2013

Catia V5 R19
Win8
AMD Quad-Core 3,6Ghz
8GB Ram

erstellt am: 13. Jul. 2013 15:13    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

Oha, zu viele Tabs offen  ...
Danke

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

Malte369
Mitglied



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

Beiträge: 13
Registriert: 13.07.2013

Catia V5 R19
Win8
AMD Quad-Core 3,6Ghz
8GB Ram

erstellt am: 14. Jul. 2013 23:54    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

Niemand eine Idee?!

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: 15. Jul. 2013 09:08    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 Malte369 10 Unities + Antwort hilfreich

Servus
Bei 2D-Splines hab ich in der Doku leider keinen Methode dazu gefunden.
Wenn du einen 3D-Spline ausweichen kannst, kannst du mit ".SetClosing" den 3D-Spline schließen (Siehe Doku und Forensuche)

Gruß
Bernd

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

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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

Beiträge: 1118
Registriert: 29.05.2008

DELL PRECISION T3500
Intel(R) Xeon(R) CPU W3540 @ 2.93GHz
12285 MB RAM
NVIDIA Quadro FX 1800
Microsoft Windows 7 Enterprise Service Pack 1
CATIA V5 R19 SP09 HF69
VB6.5
CAA RADE CDC

erstellt am: 15. Jul. 2013 10:07    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 Malte369 10 Unities + Antwort hilfreich

Wie wäre es, mit dem ersten Punkt noch einmal als letzten setzen oder ein Constraint auf die den ersten und den letzten Punkt?

------------------
Mit freundlichen Grüßen,
Henry Schneider
alias Lila

Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren:
Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen,
die Natur versucht, immer bessere Idioten zu bauen

Xing

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

Malte369
Mitglied



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

Beiträge: 13
Registriert: 13.07.2013

Catia V5 R19
Win8
AMD Quad-Core 3,6Ghz
8GB Ram

erstellt am: 15. Jul. 2013 10:25    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

Danke erstmal für die Mühen!

Ich werden dann wohl auf den 3d ausweichen.
Kann ich den denn austauschen?

Bei dem 2d Spline war die Idee, dass ich dem Block die Skizze unterm Hintern wegziehen und einfach einen neuen Spline einsetze ohne dieses "Stützelement für Skizze ändern" zu müssen. Das schien mir als am Fehlerunanfälligsten.
Zusätzlich habe ich nur eine Skizze, weil je nach radius muss ich schon so 80 Punkte setzen.


Das mit den ersten und letzten Punkt habe ich momentan so gelöst, ABER dann bildet sich eine scharfe Kante.

Über die Constrains habe ich mir auch schon gedanken gemacht.
Das blöde ist, dass man entweder das besagt Häkchen setzt oder man muss:
-Punkte Kongurenz
-beide Tangentenstetigkeiten  einblenden (In dem Auswahlfenster wenn man auf den Spline doppelklickt)
-die beiden Kongurenz setzten

und wenn ich es schon nicht hinbekomme das Häkchen zu setzen... 


Schönen Gruß

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

Malte369
Mitglied



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

Beiträge: 13
Registriert: 13.07.2013

Catia V5 R19
Win8
AMD Quad-Core 3,6Ghz
8GB Ram

erstellt am: 15. Jul. 2013 10: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

Ach ich sehe gerade ich kann einen 3D Spline auch auf mehrere Punkte in EINER Skizze beziehen, muss die dann nur vernünftig benennen.

macht es jetzt programmier-technisch mehr Sinn:

den Block jedesmal zu löschen und einen neuen einzusetzen
oder
das Stützelement ändern?

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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

Beiträge: 1118
Registriert: 29.05.2008

DELL PRECISION T3500
Intel(R) Xeon(R) CPU W3540 @ 2.93GHz
12285 MB RAM
NVIDIA Quadro FX 1800
Microsoft Windows 7 Enterprise Service Pack 1
CATIA V5 R19 SP09 HF69
VB6.5
CAA RADE CDC

erstellt am: 15. Jul. 2013 10:52    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 Malte369 10 Unities + Antwort hilfreich

Die scharfe Kante haste sicher nur, weil die Tangenten nicht aufeinander liegen.

Versuch den beiden Punkten mal die gleiche Tangente mitzugeben, dann sollte auch die Kante verschwinden.

------------------
Mit freundlichen Grüßen,
Henry Schneider
alias Lila

Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren:
Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen,
die Natur versucht, immer bessere Idioten zu bauen

Xing

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

Malte369
Mitglied



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

Beiträge: 13
Registriert: 13.07.2013

Catia V5 R19
Win8
AMD Quad-Core 3,6Ghz
8GB Ram

erstellt am: 15. Jul. 2013 11: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

probiere das auch mal aus...

Muss ganz ehrlich sagen in den Constrains per Makro kenne ich mich nicht so aus.

Jetzt will ich mich erstmal damit beschäftigen bevor ich mir hier weitere Fragen vorkauen lasse 

Ich werde in den nächsten Tagen mal Statusmeldung machen oder wenn ich Fragen ab nochmal an euch heran treten!

Danke Soweit!

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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

Beiträge: 1118
Registriert: 29.05.2008

DELL PRECISION T3500
Intel(R) Xeon(R) CPU W3540 @ 2.93GHz
12285 MB RAM
NVIDIA Quadro FX 1800
Microsoft Windows 7 Enterprise Service Pack 1
CATIA V5 R19 SP09 HF69
VB6.5
CAA RADE CDC

erstellt am: 15. Jul. 2013 12: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 Nur für Malte369 10 Unities + Antwort hilfreich

Einfach die Methode SetTangent() der ControlPoint2D verwenden.

Code:

Methods


o Sub GetTangent( CATSafeArrayVariant  oTangent)

Returns the tangent properties of the spline control point
Parameters:
oTangent[0]
The X Coordinate of the tangent determined at the control point
oTangent[1]
The Y Coordinate of the tangent determined at the control point
o Sub SetTangent( double  iTangentX,
double  iTangentY)

Imposes the tangent properties of the spline control point
Parameters:
iTangentX
The X Coordinate of the tangent determined at the control point
iTangentY
The Y Coordinate of the tangent determined at the control point


------------------
Mit freundlichen Grüßen,
Henry Schneider
alias Lila

Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren:
Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen,
die Natur versucht, immer bessere Idioten zu bauen

Xing

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

Malte369
Mitglied



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

Beiträge: 13
Registriert: 13.07.2013

Catia V5 R19
Win8
AMD Quad-Core 3,6Ghz
8GB Ram

erstellt am: 17. Jul. 2013 15:18    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

Sorry, aber ich kriege es nicht hin.

Also als erstes mal zur Theorie:
Ich nehme meinen ersten Punkt.
Dann erstelle ich einen Vektor dem ich mit GetTangent() 2 richtungsweisende Werte zuweise.

Als nächstes meinen letzten Punkt mit GetTangent diesen Vektor zuweisen.

Stimmt das so?

dann der PText:

For i = 0 to (Anzahlpunkte-1) Step 1

alphaneu=alphaneu+alpha
alphaers=alphaneu*PI/180
Radiusers=Radius-(Tol/2)+(Tol*Zufallszahl1)

A = Radiusers*cos(alphaers)
G = Radiusers*sin(alphaers)

Set Punkte(i) = factory2D.CreateControlPoint (G,A)

if k=0 then
Set Punkte(Anzahlpunkte) = factory2D.CreateControlPoint (G,A)
k=1
End If
Next

Dim RVektor(1)                          <------------
Punkte(0).GetTangent RVektor            <------------

Punkte(Anzahlpunkte).SetTangent RVektor <------------


Dim Spline 'As Spline2D
Set Spline = factory2D.CreateSpline (Punkte)

Fehlermeldung: Verfahren GetTangent ist fehlgeschlagen

Was mache ich falsch?

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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

Beiträge: 1118
Registriert: 29.05.2008

DELL PRECISION T3500
Intel(R) Xeon(R) CPU W3540 @ 2.93GHz
12285 MB RAM
NVIDIA Quadro FX 1800
Microsoft Windows 7 Enterprise Service Pack 1
CATIA V5 R19 SP09 HF69
VB6.5
CAA RADE CDC

erstellt am: 23. Jul. 2013 13:45    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 Malte369 10 Unities + Antwort hilfreich

Nein Zuweisen tuste natürlich mit SetTangent()

Dann verstehe ich

Code:

if k=0 then
Set Punkte(Anzahlpunkte) = factory2D.CreateControlPoint (G,A)
k=1
End If

nicht und würde empfehlen Deien Variablen sprechender zu benennen.

Dann zur möglichen Fehlerursache: Versuch RVektor mal nicht als Array zu dimensionieren, sondern nur als Variant, ich glaub die Funktion macht das selber und ruf es mit

Code:

Dim RVektor
Call Punkte(0).GetTangent(RVektor)

auf.

------------------
Mit freundlichen Grüßen,
Henry Schneider
alias Lila

Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren:
Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen,
die Natur versucht, immer bessere Idioten zu bauen

Xing

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