| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Rundungsradius nachtrgl. ermitteln (702 mal gelesen)
|
heidi Mitglied CAD-Dienstleister
Beiträge: 1130 Registriert: 01.11.2001
|
erstellt am: 25. Mrz. 2021 17:51 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen ich komme mit meinen Suchebegriffen leider nicht weiter, deshalb die Frage an euch: Kennt jemand ein Tool, mit dem man Rundungsradien abfragen kann? Ich habe oft mit unterschiedlich abgerundeten Plines zu tun die ich nachträglich bearbeiten muss. Ich kann zwar über Liste alle Radien einer solchen Pline auflisten, aber es wäre schon schick, wenn es eine Möglichkeit gäbe, eine einzelne Rundung abzufragen und den Wert gleich für eine neue Rundung zu verwenden. ( Meine Lispelei ist leider zu lange her und total eingestaubt ) Schönen Feierabend
------------------ Gruß Heidi http://www.cad-point.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 Alles
|
erstellt am: 25. Mrz. 2021 18:44 <-- editieren / zitieren --> Unities abgeben: Nur für heidi
Hallo Heidi, GEH MAL IN DIE RENTE!!! Ich gönne es dir Ich bin sicher du findest so ein Tool, oder jemand im Forum hilft dir dabei sowas GUT und SCHÖN zu machen. (hatte die Woche zufällig schon mal FAST dieselbe Geschichte)
Bis dahin habe ich dir was zusammenkopiert für den Anfang: Radius ermitteln, zwei Objekte abrunden (die Abrunden Option kannst du nicht nutzen in dem Beispiel hier), Radius (filletrad) wird zurückgesetzt Code:
(defun c:Abrunden+ (/ _plsegrad myerror olderror ed fr e r) (defun _plsegrad ( obj pt / n p1 p2 bulge rad ) ;; https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/need-help-for-dimension-angle-and-radius-lisp/m-p/5587223/highlight/true#M331388 (setq n (fix (vlax-curve-getparamatpoint obj (vlax-curve-getclosestpointto obj pt)))) (setq p1 (vlax-curve-getpointatparam obj (float n))) (setq p2 (vlax-curve-getpointatparam obj (float (1+ n)))) (setq bulge (vla-getbulge obj (float n))) (if (/= bulge 0.0) (setq rad (/ (distance p1 p2) (* 2 (sin (* 2 (atan bulge)))))) ) (abs rad) ) (defun myerror (s) (and fr (setvar 'filletrad fr)) (setq *error* olderror) (alert "\nAbbruchX") ) (setq olderror *error* *error* myerror) (if (and (setq ed (nentsel "Für Radius, Objekt wählen: ")) (setq fr (getvar 'filletrad)) (or (not(vl-catch-all-error-p (setq r (vl-catch-all-apply 'vla-get-radius (list (setq e (vlax-ename->vla-object (car ed)))))))) (setq r (_plsegrad (vlax-ename->vla-object (car ed))(cadr ed))) ) ) (command "_.FILLETRAD" r "CMDECHO" 1 "_.FILLET" PAUSE PAUSE "_.FILLETRAD" fr) ) (setq *error* olderror) (princ) )
Oder
Radius ermitteln, filletrad auf den Wert setzen <nichts weiter> Code: (defun c:FILLETRAD+ (/ _plsegrad ed e r) (defun _plsegrad ( obj pt / n p1 p2 bulge rad ) ;; https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/need-help-for-dimension-angle-and-radius-lisp/m-p/5587223/highlight/true#M331388 (setq n (fix (vlax-curve-getparamatpoint obj (vlax-curve-getclosestpointto obj pt)))) (setq p1 (vlax-curve-getpointatparam obj (float n))) (setq p2 (vlax-curve-getpointatparam obj (float (1+ n)))) (setq bulge (vla-getbulge obj (float n))) (if (/= bulge 0.0) (setq rad (/ (distance p1 p2) (* 2 (sin (* 2 (atan bulge)))))) ) (abs rad) ) (if (and (setq ed (nentsel "Für Radius, Objekt wählen: ")) (or (not(vl-catch-all-error-p (setq r (vl-catch-all-apply 'vla-get-radius (list (setq e (vlax-ename->vla-object (car ed)))))))) (setq r (_plsegrad (vlax-ename->vla-object (car ed))(cadr ed))) ) ) (setvar "FILLETRAD" r) (princ "\nKein Radius ermittel, FILLETRAD nicht geändert") ) (princ) )
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
heidi Mitglied CAD-Dienstleister
Beiträge: 1130 Registriert: 01.11.2001
|
erstellt am: 26. Mrz. 2021 11:02 <-- editieren / zitieren --> Unities abgeben:
|
heidi Mitglied CAD-Dienstleister
Beiträge: 1130 Registriert: 01.11.2001 Dell Precicion M6700 Nvidia Quadro K3000M AutoCAD 2012 Sp2 nXtRender Tetra4D eigene Tools Adobe CreativeSuite 6 ——————————— MacBook Pro i9 2,3/16/5 Big Sur 11.5.1 BricsCAD V21 Pro
|
erstellt am: 29. Mrz. 2021 11:36 <-- editieren / zitieren --> Unities abgeben:
Moin, vielen Dank nochmals für deine Hilfe. Das kleine Tool FILLETRAD+ tut's im Prinzip schon, irgendwie hakt es nur noch wegen VL bei mir. Habe zwar schon (vl-load-com) eingefügt, aber heute kommt nur wieder der Fehler: no function definition: VLAX-ENAME->VLA-OBJECT Das werde ich noch ergründen, gestern klappte es ja auch plötzlich. Einen schönen Montag wünsche ich dir ------------------ Gruß Heidi http://www.cad-point.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |