| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | | | PNY präsentiert die neue NVIDIA RTX A400 und die A1000 Grafikkarte, eine Pressemitteilung
|
Autor
|
Thema: Fehler Schnittpunkte im hohen Koordinatenbereich (1811 mal gelesen)
|
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 28. Sep. 2009 14:58 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe ein Problem mit der Methode "IntersectWith", wenn ich Objekte nach Schnittpunkten abfrage. Ich habe zwei Beispiele angehängt mit der gleichen geometrischen Situation, einmal nahe dem Nullpunkt, einmal im ungekürzten GK-Bereich. Nahe dem Nullpunkt arbeitet die Funktion korrekt, es wird kein Schnittpunkt gefunden, aber im ungekürzten GK-Bereich findet die Funktion einen Schnittpunkt (obwohl sich die Objekte definitiv nicht schneiden). Ausprobiert habe ich das ganze unter ACAD 2008. Kann einer von Euch meine Beobachtungen nachvollziehen und wenn es so ist, gibt es ein anderes Mittel, als erst die Objekte nahe Null zu schieben, und nach der Schnittpunktberechnung wieder an die ursprünglichen Position??? Code:
(defun c:test ( / obj1 obj2) (if (and (setq obj1 (car(entsel "\nerstes Obj:"))) (setq obj2 (car(entsel "\nzweites Obj:")))) (mapcar'(lambda(A) (command "_.point" A)) (JB_schnitt obj1 obj2)))) (defun JB_schnitt(obj1 obj2 / sp liste liste1) (vl-load-com) (setq sp (vlax-invoke-method(vlax-ename->vla-object obj1) 'IntersectWith (vlax-ename->vla-object obj2) acExtendNone)) (if(/= -1 (vlax-safearray-get-u-bound (vlax-variant-value sp) 1)) (repeat (/(length(setq liste(vlax-safearray->list(vlax-variant-value sp))))3) (setq liste1 (cons(list (car liste) (cadr liste) (caddr liste))liste1) liste (cdr(cdr(cdr liste)))))) liste1)
------------------ viele Grüße Jörn http://www.bosse-engineering.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 28. Sep. 2009 15:21 <-- editieren / zitieren --> Unities abgeben: Nur für joern bosse
Zitat: Original erstellt von joern bosse: ... einmal nahe dem Nullpunkt, einmal im ungekürzten GK-Bereich. Nahe dem Nullpunkt arbeitet die Funktion korrekt, es wird kein Schnittpunkt gefunden, aber im ungekürzten GK-Bereich findet die Funktion einen Schnittpunkt (obwohl sich die Objekte definitiv nicht schneiden).Ausprobiert habe ich das ganze unter ACAD 2008. Kann einer von Euch meine Beobachtungen nachvollziehen und wenn es so ist, gibt es ein anderes Mittel...
Hi Jörn, nachvollziehen mit ACAD 2007 --> ja andere Lösung als die genannte --> Sorry, nein Edit: BKS auf eines der Objekte ausrichten (sofern möglich) ------------------ Mfg Heiko Elefantenjagd in Afrika "... LISP-Programmierer bauen einen Irrgarten aus Klammern und hoffen, dass sich der Elefant darin verirrt..." (www.uni-leipzig.de/~rotheh/elefant.htm) [Diese Nachricht wurde von Dorfy am 28. Sep. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 28. Sep. 2009 17:51 <-- editieren / zitieren --> Unities abgeben:
Hallo Dorfy, danke für die Antwort. Die Lösung über BKS's zu finden geht glaube ich nicht, da ja immer in Weltkoordinaten gerechnet wird. Vielleicht sollte man den Ursprung der Zeichnung vor der Ausführung verschieben und nicht die Objekte, aber ich glaube das geht auch nicht. Überlege ich mir morgen, ich mache jetzt Feierabend. ------------------ viele Grüße Jörn http://www.bosse-engineering.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 28. Sep. 2009 19:25 <-- editieren / zitieren --> Unities abgeben: Nur für joern bosse
Hi Jörn, habe manuell das BKS auf ein Objekt deiner Zeichnung gedreht und das Prog drüber laufen lassen --> kein Schnittpunkt… mit vlax-curve-getpa... oder der Gleichen prüfen ob der SP auf beiden Objekten liegt oder ob ein Abstand zum vermeindlichen SP besteht ist auch nicht wirklich ne Lösung... ------------------ Mfg Heiko Elefantenjagd in Afrika "... LISP-Programmierer bauen einen Irrgarten aus Klammern und hoffen, dass sich der Elefant darin verirrt..." (www.uni-leipzig.de/~rotheh/elefant.htm) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9803 Registriert: 01.12.2003 One AutoCAD 2.5 - 2024, AutoCAD, Civil 3D, Win10/Win11
|
erstellt am: 28. Sep. 2009 19:58 <-- editieren / zitieren --> Unities abgeben: Nur für joern bosse
Hallo Jörn, habe das Gleiche mit AutoCAD 2010 SP1 getestet. Schnittpunkt im hohen Koordinatenbereich wird (fälschlicherweise) gefunden, wenn BKS auf Welt steht. Legt man ein BKS mit dem Ursprung in die Nähe der Objekte wird kein Schnitt gefunden. Wenn das Methode hat, wäre es zumindest ein brauchbarer Workaround. ------------------ Mit freundlichem Gruß Udo Hübner www.CAD-Huebner.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 29. Sep. 2009 08:20 <-- editieren / zitieren --> Unities abgeben:
Hallo Dorfy, hallo Udo, da gibt mir doch gleich wieder ein bißchen Hoffnung, allerdings funktioniert es bei mir (noch) nicht, das kein Schnittpunkt gefunden wird. Ich glaube ich habe Euch mit meiner Funktion ein wenig in die Irre geführt, denn der POINT auf dem Schnittpunkt wird in WKS-Koords erzeugt, und dann ist er natürlich nicht sichtbar. Ich habe nochmal ein TRANS eingefügt, und bei dieser Funktion wird bei mir definitiv ein Schnittpunkt gefunden, getestet mit verschiedenen BKS's Code:
(defun c:test ( / obj1 obj2) (if (and (setq obj1 (car(entsel "\nerstes Obj:"))) (setq obj2 (car(entsel "\nzweites Obj:")))) (mapcar'(lambda(A) (command "_.point" (trans A 0 1))) (JB_schnitt obj1 obj2)))) (defun JB_schnitt(obj1 obj2 / sp liste liste1) (vl-load-com) (setq sp (vlax-invoke-method(vlax-ename->vla-object obj1) 'IntersectWith (vlax-ename->vla-object obj2) acExtendNone)) (if(/= -1 (vlax-safearray-get-u-bound (vlax-variant-value sp) 1)) (repeat (/(length(setq liste(vlax-safearray->list(vlax-variant-value sp))))3) (setq liste1 (cons(list (car liste) (cadr liste) (caddr liste))liste1) liste (cdr(cdr(cdr liste)))))) liste1)
Wenn Ihr Euer Ergebnis ohne Schnittpunkt aber wiederholen könnt, dann speichert doch bitte mal die Zeichnung mit dem von Euch aktuell gewählten BKS.
------------------ viele Grüße Jörn http://www.bosse-engineering.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 29. Sep. 2009 10:09 <-- editieren / zitieren --> Unities abgeben: Nur für joern bosse
Hi Jörn, Zitat: Original erstellt von joern bosse: ... Ich glaube ich habe Euch mit meiner Funktion ein wenig in die Irre geführt, denn der POINT auf dem Schnittpunkt wird in WKS-Koords erzeugt, und dann ist er natürlich nicht sichtbar.Ich habe nochmal ein TRANS eingefügt, und bei dieser Funktion wird bei mir definitiv ein Schnittpunkt gefunden, getestet mit verschiedenen BKS's ...
Ja, ein wenig in die Irre geführt trifft es wohl man hätte auch richtig testen können Sorry... Also doch Objekte zum Nullpunkt schieben/temp. kopieren... ... alles nicht wirklich schön...
------------------ Mfg Heiko Elefantenjagd in Afrika "... LISP-Programmierer bauen einen Irrgarten aus Klammern und hoffen, dass sich der Elefant darin verirrt..." (www.uni-leipzig.de/~rotheh/elefant.htm) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|