| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| Baugruppen-Handling mit 3DEXPERIENCE SOLIDWORKS |
Autor
|
Thema: Fehlermeldung: Der Punkt liegt außerhalb der Modellgröße (1455 mal gelesen)
|
Paul-Werner Mitglied
Beiträge: 6 Registriert: 28.08.2004
|
erstellt am: 12. Mai. 2010 17:14 <-- editieren / zitieren --> Unities abgeben:
Hi, ich habe ein Macro geschrieben, das mir die x- und y-Koordinaten von Punkten berechnet und diese dann auch in SW setzt. Allerdings muss ich das ganze ziemlich genau machen. D.h. ich habe einige Nachkommastellen. Der Befehl "Set skPoint = Part.SketchManager.CreatePoint(x, y, 0)" kann das ganze aber nur bis 0,0023 genau auflösen. Nun habe ich mir gedacht, dass ich das einfach hochskaliere ( * 1000000). Jetzt bekomme ich jedoch folgende Fehlermeldung: "Die Skizze wurde nicht aktualisiert, da das Lösen der Skizze zu ungültiger Geometrie (wie Linienlnge Null) führen würde. - Löschen der ungültigen Geometrie - Änderung der Beziehung oder Bemaßung, um die ungültige Geometrie zu eliminieren. " Allerdings habe ich nur Punkte definiert und keine Linien. Wenn ich danach mit einem der erzeugten Punkte eine Spline beginnen möchte erscheint diese Fehlermeldung: " Der Punkt liegt außerhalb der Modellgröße." Ich muss dazu sagen, dass die Punkte dann ungefähr die Koordinate 60.000 haben. Kann mir jemand helfen? Kann man die Modellgröße erhöhen? Kann ich aus einem Macro einen Punkt erzeugen, der mit mehr als nur 3 Nachkommastellen genau gesetzt wird? Danke schon mal im Vorraus. Gruß Paul-Werner Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur
Beiträge: 3682 Registriert: 21.06.2001 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform ** CSWP 04/2011 ** ** CSWE 08/2011 **
|
erstellt am: 12. Mai. 2010 17:37 <-- editieren / zitieren --> Unities abgeben: Nur für Paul-Werner
Hallo Paul-Werner. Wie kommst Du auf den Wert 0,0023? Könnte das ein Fang- bzw. Rasterproblem beim Erstellen der Punkte sein? Bei SWX2007 gab's den Befehl ModelDoc2::SetAddToDB, der solche Probleme vermieden hat. Bitte Sys-Info ausfüllen oder kurz im Beitrag schreiben, welche Version Du benutzt. Gruß, Torsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Krümmel Moderator Konstrukteur mit rotierter Vergangenheit
Beiträge: 6238 Registriert: 14.09.2008 Was mit SWX so alles geht ;-)
|
erstellt am: 12. Mai. 2010 19:13 <-- editieren / zitieren --> Unities abgeben: Nur für Paul-Werner
|
Paul-Werner Mitglied
Beiträge: 6 Registriert: 28.08.2004
|
erstellt am: 13. Mai. 2010 10:54 <-- editieren / zitieren --> Unities abgeben:
Ich arbeite mit der 64 bit Version von SW Student Design Kit 2009. Auf den Wert 0,0023 bin ich durch ausprobieren gekommen. Wenn ich über das Macro einen Punkt bei x=0,0022 zeichnen lassen wollte, dann hat er ihn mir bei x=0 gezeichnet. Was macht der Befehl ModelDoc2::SetAddToDB? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StefanBerlitz Guter-Geist-Moderator IT Admin (CAx)
Beiträge: 8756 Registriert: 02.03.2000 SunZu sagt: Analysiere die Vorteile, die du aus meinem Ratschlag ziehst. Dann gliedere deine Kräfte entsprechend und mache dir außergewöhnliche Taktiken zunutze.
|
erstellt am: 17. Mai. 2010 09:57 <-- editieren / zitieren --> Unities abgeben: Nur für Paul-Werner
Hallo Paul, Zitat: Original erstellt von Paul-Werner: Kann mir jemand helfen? Kann man die Modellgröße erhöhen?
Nein, die Limits für den Modellraum sind nicht einstellbar. Zitat: Original erstellt von Paul-Werner: Kann ich aus einem Macro einen Punkt erzeugen, der mit mehr als nur 3 Nachkommastellen genau gesetzt wird?
Ja, kein Problem, typischerweise gehen 8 Nachkommastellen, aber wie Krümmel geschrieben hat kleinste Länge ist 0,0001 mm Zitat: Original erstellt von Paul-Werner: Was macht der Befehl ModelDoc2::SetAddToDB?[/B]
Gibt es die API-Hilfe nicht in der Studentenversion? Wenn dem so ist ist das Makroschreiben bestimmt nicht so einfach Also Zitat aus der API Hilfe: One of the benefits of adding sketch entities directly to the database is that you can avoid grid and entity snapping. For example, if you create a sketch line whose endpoint is near another entity or near a grid point, the new line endpoint will snap to the other item or grid point. Using SetAddToDB( True ) will avoid this behavior during sketch entity creation. Ciao, Stefan ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Stefans SolidWorks Blog Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paul-Werner Mitglied
Beiträge: 6 Registriert: 28.08.2004
|
erstellt am: 19. Mai. 2010 15:50 <-- editieren / zitieren --> Unities abgeben:
Hi Stefan, danke für die Hilfe. Jetzt kann ich die Punkte genügend genau skizzieren. In der Studentenversion kann man die API Hilfe nutzen. Ich habe mich dort jedoch überhaupt nicht zurecht gefunden und konnte nach meinem Problem nicht genau genug suchen. Dies ist mein erstes Macro und meine erste Erfahrung mit Visual Basic. Schöne Grüße Paul-Werner Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paul-Werner Mitglied
Beiträge: 6 Registriert: 28.08.2004
|
erstellt am: 31. Mai. 2010 08:25 <-- editieren / zitieren --> Unities abgeben:
So, ich bin's nochmal. Die Punkte konnte ich einwandfrei zeichnen. Nun möchte ich eine Spline statt der Punkte zeichnen. Dies mache ich folgender Maßen: Code: Dim skSegment As Object Set skSegment = Part.SketchManager.CreateSpline((pointArray))
Allerdings zeichnet er mir die Spline nicht. Ich gehe davon aus, dass es das gleiche Problem wie oben ist. Jedoch bin ich nicht in der Lage den Befehl "Part.SetAddToDB True" auf mein jetziges Problem umzuschreiben. Wenn mir bitte wieder jemand helfen könnte, wäre das super. MfG Paul-Werner Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paul-Werner Mitglied
Beiträge: 6 Registriert: 28.08.2004
|
erstellt am: 31. Mai. 2010 11:34 <-- editieren / zitieren --> Unities abgeben:
Ich habe das Problem folgender Maßen gelöst. Code: Part.SetAddtoDB True points(0)=... points(1)=... . . . pointarray=points() Part.SetAddtoDB FalseSet skSegment = Part.SketchManager.CreateSpline((pointArray))
Gruß Paul-Werner Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |