Beschränkungen bringen Sketcher an der Grenze? (Invalid constraint index)

In diesem Forum Fragen und Diskussionen in Deutsch
Forum rules
Foren-Regeln und hilfreiche Informationen

WICHTIG: Bitte zuerst lesen, bevor Sie posten
JochenB
Posts: 17
Joined: Wed Jun 29, 2022 7:39 pm

Re: Beschränkungen bringen Sketcher an der Grenze? (Invalid constraint index)

Post by JochenB »

chrisb wrote: Tue Aug 09, 2022 11:41 pmDort habe ich allerdings noch die teilweise fehlerhafte Verwendung der Tangenten entdeckt: Du darfst diese Beschränkung nicht mit der Koinzidenz kombinieren, Da musst Du die Punkt-zu-Punkt-Tangente nehmen. Hier ein Beispiel, es gibt noch mehr davon.
Oh Danke für den Hinweis, das ist eine große Hilfe, ohne die hätte ich das nie gefunden!

Ich habe das gefixt und kann immerhin wieder alle Beschränkungen setzen und sie sogar ändern. Nun rechnet er sein 5 Minuten … ich lasse ihn nachts mal an und schaue morgen wieder.

Warum hab ich Koinzidenz-Beschränkungen verwendet: Mit der Tangenten-Beschränkung ist es mir mitunter nicht gelungen, die Endpunkte der Bögen und Linien zusammenzuführen.

Dazu meine erste Frage: Sehe ich es im Wiki richtig, dass es verschiedene Möglichkeiten dieser Tangenten-Beschränkung gibt, je nachdem, was man für Elemente auswählt? Man kann z. B. Bögen mit Bögen verbinden oder Bogen-Endpunkte mit Bogen-Endpunkten, das scheint nicht das Gleiche zu sein. Beim Ersten sucht er sich den Verbindungspunkt selber, ggf. außerhalb eines Bogens, beim Zweiten verbindet es hart die gewählten Endpunkte der Bögen, oder? Vermutlich habe ich Erstes getan, wollte aber Zweites.

Eine zweite Frage dazu: In der Liste der Beschränkungen im Aufgabenbereich der Skizze kann ich mir "Erweiterte Informationen" anzeigen lassen. Dann stehen Klammerangaben hinter den jeweiligen Beschränkung, z. B. "Constraint156 [(13,1),(60,2)]"
  1. Ist die Zahl vor dem Komma immer die Nummer des betroffenen Elements (13 und 60)?
  2. Was bedeutet die Zahl nach dem Komma?
Wenn A) zutrifft, dann waren meine Koinzidenz-Bedingungen nicht nur falsch sondern auch völlig kaputt. Sie verbinden Elemente, die garnicht aneinanderstoßen sollen. Im Beispiele liegen zwischen Line 13 (Gleis im Heizhaus) und Linie 60 (Brücke) 120 Meter.
chrisb wrote: Tue Aug 09, 2022 11:41 pm
chrisb wrote: Tue Aug 09, 2022 11:27 pmDu arbeitest mit m wo sonst oft nur mm angesagt sind. Ich habe daher mal diverse Parameter deutlich gröber eingestellt. Dann geht auch das Einstellen eines Drehwinkels für die Grundplatte.
Leider funktionieren diese Werte nicht bei "Skizze Bf-Gleise 750mm".
Da ich nicht an beiden Skizzen gleichzeitig arbeite sollte mir das reichen. Das probier ich noch aus. Bin erstmal glücklich, dass dank deiner Hilfen ich mit dem Sketcher weiter arbeiten kann und muss ins Bett.
chrisb
Veteran
Posts: 53786
Joined: Tue Mar 17, 2015 9:14 am

Re: Beschränkungen bringen Sketcher an der Grenze? (Invalid constraint index)

Post by chrisb »

JochenB wrote: Thu Aug 11, 2022 12:16 am Dazu meine erste Frage:
Die verschiedenen Arten der Tangentialbeschränkung habe ich in meinem Sketcher-Dokument beschrieben (siehe meine Signatur).
[*]Ist die Zahl vor dem Komma immer die Nummer des betroffenen Elements (13 und 60)?
Fast. In den erweiterten Informationen beginnt die Zählung der Elemente bei 0. Die Zahl nach dem Komma gibt an wo die Beschränkung angewendet wird: 1=Start, 2=Ende, 3=Mitte.
muss ins Bett.
Ich auch!
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
JochenB
Posts: 17
Joined: Wed Jun 29, 2022 7:39 pm

Re: Beschränkungen bringen Sketcher an der Grenze? (Invalid constraint index)

Post by JochenB »

Shalmeneser wrote: Wed Aug 10, 2022 12:50 am * Do you need all the railways in the same sketch ? divide ut regnes
I need it for the entire train station because all the tracks have to fit together without any kinks. For example I try to make the plan fit on the end by making small changes on the begin oft the station.
Shalmeneser wrote: Wed Aug 10, 2022 12:50 am * Do you need dimensions ? Sketcher_ConstrainTangent and Sketcher_ConstrainParallel are not enough? …
The station is in a bend in the river, nothing is straight or symmetrical. In the original plan from 1887 there are some dimensions such as radii and point angles that I would like to adopt.
Shalmeneser wrote: Wed Aug 10, 2022 12:50 am … And Sketcher_ConstrainBlock ?
That was actual an mistake. I misapplied the tangent constraint and cured it with additional constrain conditions.
Shalmeneser wrote: Wed Aug 10, 2022 12:50 am * Do you need arcs ? Try Sketcher_CreateBSpline
Yes and no. In the original plan, concrete radii are mentioned, which I would like to adopt first. But then I use flexible tracks on the model railway, so I don't need them anymore. The important thing is to know the radii. They must not be too small, otherwise the vehicles will derail.
Shalmeneser wrote: Wed Aug 10, 2022 12:50 am * Why is your placement in km ?
The large distances are due to the coordinate system of terrain model, which I imported as a point cloud. FreeCad automatically decides whether this is given in kilometers, meters or millimeters.

Do you think I should move everything to the origin to see if it works better then? I could try that. That will fit to the suggestion of Chrisb to use other solver parameters because the large dimensions
chrisb
Veteran
Posts: 53786
Joined: Tue Mar 17, 2015 9:14 am

Re: Beschränkungen bringen Sketcher an der Grenze? (Invalid constraint index)

Post by chrisb »

@JochenB, Du solltest Dich unbedingt mit Sketcher External vertraut machen, wenn Du die Sketche aufteilen willst. Eventuell auch mit Sketcher CarbonCopy.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
JochenB
Posts: 17
Joined: Wed Jun 29, 2022 7:39 pm

Re: Beschränkungen bringen Sketcher an der Grenze? (Invalid constraint index)

Post by JochenB »

Hallo Chrisb,

wunderbar, das wichtige Problem ist gelöst: Nach dem Löschen der Koinzidenz- und Neusetzen der Tangenten-Bedingungen kann ich jetzt tatsächlich am Gleisplan weiterarbeiten. Alles funktioniert wie gewünscht, solange ich die Bedingungen in kleinen Schritten ändere. Wie erwartet rechnet es bei so vielen Bedingungen gerne mal eine Minute, aber damit kann ich leben. Nur bei großen Änderungen rechnet es sich tot.

Vielen Dank!

Zum Problem mit den nicht drehbaren, großen Elementen:
chrisb wrote: Tue Aug 09, 2022 11:27 pm Du arbeitest mit m wo sonst oft nur mm angesagt sind. Ich habe daher mal diverse Parameter deutlich gröber eingestellt. Dann geht auch das Einstellen eines Drehwinkels für die Grundplatte.
Das hilft bei mir leider nicht, ich kann es auch mit diesen Werten nicht drehen.
chrisb wrote: Tue Aug 09, 2022 11:41 pmDas Problem mit den großen Werten solltest Du mal auf ein möglichst kleines Beispiel reduzieren und dann im englischen Forum vorstellen und Abdullah mit einbeziehen.
Im Anhang die Datei wie empfohlen reduziert auf das Minimale, also ein Rechteck mit 4 Koinzidenz- und 3 Senkrecht-Beschränkungen. Ich habe alles andere gelöscht und den Ursprung auf 0 gesetzt. Sobald ich die Längen des Rechtecks auf 36m und 99,6m setze kann ich es nicht mehr drehen.

Siehe Anhang:
example large dimnsions.FCStd
(4.8 KiB) Downloaded 10 times

Versuche ich es mit einer Winkel-Beschränkung und ändere diese von 180 auf 181°, so kommt die Fehlermeldung

Maßliche Einschränkung: Invalid constraint index: 9

und folgende Meldung im Ausgabefenster:

Code: Select all

23:41:43 Traceback (most recent call last):
File "<string>", line 1, in <module>
<class 'ValueError'>: Invalid constraint index: 9
23:41:43 App.getDocument('example_large_dimnsions').getObject('Sketch005').setDatum(9,App.Units.Quantity('181.000000 deg'))
Wenn ich versuche einen Punkt per Maus anzufassen und zu drehen kommt Folgendes im Ausgabefenster:

Code: Select all

23:44:06 Traceback (most recent call last):
File "<string>", line 1, in <module>
<class 'ValueError'>: Not able to move point with the id and type: (1, 2)
23:44:06 App.getDocument('example_large_dimnsions').getObject('Sketch005').movePoint(1,2,App.Vector(362649696.000000,5620986880.000000,0),0)
23:44:06 Drag point: Not able to move point with the id and type: (1, 2)
Ist das bei dir auch so?

Ich selber kann diese einfachen Dinge sicher auch mittels Draft machen, wie von @thomas-neemann empfohlen. Aber spannend wäre schon, dieses Problem zu lösen.

Wenn OK, würde ich das ins englische Forum stellen und hoffe, dass Tante Google und ich das Übersetzen gut hinbekommen.
chrisb
Veteran
Posts: 53786
Joined: Tue Mar 17, 2015 9:14 am

Re: Beschränkungen bringen Sketcher an der Grenze? (Invalid constraint index)

Post by chrisb »

JochenB wrote: Thu Aug 11, 2022 10:09 pm Ist das bei dir auch so?
Im Prinzip ja, ich habe die konkreten Situationen allerdings nicht nachgestellt.
Ich selber kann diese einfachen Dinge sicher auch mittels Draft machen, wie von @thomas-neemann empfohlen.
Die ganzen Übergänge geschmeidig hinzubekommen dürfte Dich endlos viel Zeit kosten. Wir sehen hier von thomas ja nur Einweg-Modelle, die bei Änderungen viel Arbeit nach sich ziehen. Dann kannst du lieber versuchen, im Maßstab 1:100 zu arbeiten und - wenn nötig - die cm ganz am Schluss mit einem Klon wieder auf m skalieren.
Aber spannend wäre schon, dieses Problem zu lösen.
Auf jeden Fall!
Wenn OK, würde ich das ins englische Forum stellen und hoffe, dass Tante Google und ich das Übersetzen gut hinbekommen.
Das klappt schon. Du solltest auf dieses Thema hier verlinken, Abdullah kann nämlich nicht nur Sketcher, sondern auch ganz gut deutsch verstehen.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
JochenB
Posts: 17
Joined: Wed Jun 29, 2022 7:39 pm

Re: Beschränkungen bringen Sketcher an der Grenze? (Invalid constraint index)

Post by JochenB »

Hallo,

ich hatte das Thema der nicht drehbaren Elemente hier anagesprochen:Sketcher: rotation of a simple rectangle with large dimensions does not work, what to do?

Auch hier wurde bestätigt, dass aufgrund der großen Entfernungen zwischen Element und Ursprung der Skizze sich ein einfaches Rechteck nicht drehen lässt, sobald es feste Längen als Beschränkung bekommt. Die Lösung ist jedoch einfach: Im ersten Schritt die Elemente nahe des Ursprungs verschieben, z. B. auf diese Weise:
  1. einen Knoten des Elements und den Ursprung der Skizze auswählen (=Sketcher_SelectOrigin)
  2. beides per Koinzident-Beschränkung verbinden (= Sketcher_ConstrainCoincident)
Das Rechteck liegt dann aber nicht mehr da, wo es hinsoll.

Also als zweiten Schritt die gesamte Skizze um den Betrag zurück verschieben, um der das Rechteck im ersten Schritt verschoben wurde. Dazu habe ich in den Eigenschaften der Skizze bei "Placement" den X- und Y-Wert entsprechend gesetzt. Damit ist das Rechteck wieder am alten Platz, nur der Ursprung innerhalb der Skizze ist nahe dem Rechteck.

Mein Knoten im Kopf war, dass ich nicht auf dem Schirm hatte, dass der Ursprung der Skizze und der Ursprung der gesamten Datei nicht identisch sein müssen.

Grundsätzlich wäre aber wünschenswert, wenn Sketcher auch mit großen Werten umgehen kann. Alternativ sollte es eine Fehlermeldung geben, die darauf hinweist, dass man die Elemente näher an den Ursprung der Skizze schieben soll. Daher ist das Problem zwar für mich gelöst, aber grundsätzlich ist es noch nicht ideal.
Post Reply