| |
| 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: Aktualisierung Modellbereich ein-/ausschalten (1120 / mal gelesen)
|
archi.archi Mitglied
Beiträge: 109 Registriert: 08.10.2010 Windows 11 AutoCAD 2024 Revit 2024
|
erstellt am: 16. Dez. 2021 09:59 <-- editieren / zitieren --> Unities abgeben:
Hallo Forumer, mit welcher Systemvariable/Einstellung kann man die Aktualisierung (Darstellung der neu erzeugten Elemente im Modellbereich) bis zur Fertigstellung der Lisp-Routine ausschalten? Beste Grüße archi 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: 16. Dez. 2021 11:01 <-- editieren / zitieren --> Unities abgeben: Nur für archi.archi
|
archi.archi Mitglied
Beiträge: 109 Registriert: 08.10.2010 Windows 11 AutoCAD 2024 Revit 2024
|
erstellt am: 17. Dez. 2021 12:25 <-- editieren / zitieren --> Unities abgeben:
Hallo Jörn, vielen Dank für den Hinweis. Da sich leider niemand mehr zu Wort meldet und auch meine Suche nach "Transaction Start/Stop" keine Ergebnisse liefert, scheint es keine Lösung zu geben und es muss jeweils mit "Kaffeeholen" gehen :-). Beste Grüße archi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Triple-S Mitglied Technischer Systemplaner ELT
Beiträge: 19 Registriert: 17.11.2021 Windows 10 AutoCAD 2022, Linear, Revit
|
erstellt am: 17. Dez. 2021 12:38 <-- editieren / zitieren --> Unities abgeben: Nur für archi.archi
Hallo Archi, ob die Anzeige "live" aktualisiert wird oder der Bildschirm schwarz bleibt, hängt von den verwendeten Methoden ab. Manche Methoden sind auch schneller als andere. Wir kennen deine Routinen natürlich nicht, aber unabhängig ob man "etwas sieht" oder nicht, wird AutoCAD während Lisp arbeitet nichts anderes machen. Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
archi.archi Mitglied
Beiträge: 109 Registriert: 08.10.2010 Windows 11 AutoCAD 2024 Revit 2024
|
erstellt am: 17. Dez. 2021 13:09 <-- editieren / zitieren --> Unities abgeben:
Hallo Tripl-S, es geht um massenhafte Erzeugung von Zylindern aus Linien als Rohrersatz mit command. Code:
(setq i 0) (repeat (sslength as) (command "_cylinder" (cdr (assoc 10 (entget(ssname as i)))) ;Mittelpunkt für Basis = Linie Anfangspunkt radius ;Radius "a" ;Achsendpunkt (cdr (assoc 11 (entget(ssname as i)))) ;Linie Endpunkt ) ;Layer von entlast anpassen (entmod (subst (cons 8 (cdr (assoc 8 (entget(ssname as i))))) (assoc 8 (entget (entlast))) (entget (entlast))) ) (setq i (1+ i)) )
Das könnte gerne schneller und/oder eleganter gehen. Ich lese mit Begeisterung "ELT - Autocad2022, Linear, Revit"! Hier ist "HLS - Autocad+Linear auf dem Weg zu Revit"! Vielleicht könnten wir in Erfahrungsaustausch zum Thema "Revit+ Dynamo" für Haustechnik treten? Beste Grüße archi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Kraus Mitglied Elektrotechniker
Beiträge: 1455 Registriert: 11.01.2006 WIN 10 ACAD 2022 BricsCAD V23
|
erstellt am: 17. Dez. 2021 14:55 <-- editieren / zitieren --> Unities abgeben: Nur für archi.archi
|
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: 17. Dez. 2021 15:23 <-- editieren / zitieren --> Unities abgeben: Nur für archi.archi
Hallo archi, vielleicht funktioniert es mit vla-AddCylinder besser, die Performance ist i.d.R. sehr viel besser als bei Command-Befehlen. Code:
(defun c:test ( / AS ENDPOINT H I MATRIX PEND PSTART RADIUS SPACE STARTPOINT VEKTOR VLA-OBJCYL VLA-OBJLINE X) (vl-load-com) (setq as (ssget (list(cons 0 "LINE")))) (setq i 0) (Setq radius 1.0) (setq space (vla-get-modelSpace (vla-get-activeDocument (vlax-get-acad-object)))) (repeat (sslength as) (Setq vla-objLine (vlax-ename->vla-object(ssname as i))) (Setq pStart(vlax-get vla-objLine 'StartPoint)) (setq pEnd (vlax-get vla-objLine 'EndPoint)) (setq h (vla-get-length vla-objLine)) (setq vla-objCyl(vla-AddCylinder space (vlax-3D-point pStart) radius h)) (vla-put-layer vla-objCyl(vla-get-layer vla-objLine)) (setq Vektor (mapcar '- pEnd pStart)) (setq Matrix(mapcar '(lambda (X) (trans X 0 Vektor T)) '((1.0 0.0 0.0) (0.0 1.0 0.0) (0.0 0.0 1.0)))) (vla-transformby vla-objCyl (vlax-tmatrix (append (mapcar 'append Matrix (mapcar 'list (mapcar '+ (trans (list 0.0 0.0 (/ h 2.0)) Vektor 0 T) (mapcar '- pStart (mxv Matrix pStart)) ) ) ) '((0.0 0.0 0.0 1.0)) ) ) ) (setq i (1+ i)) ) ) ;; Matrix x Vector - Vladimir Nesterovsky ;; Args: m - nxn matrix, v - vector in R^n (defun mxv ( m v ) (mapcar '(lambda ( r ) (apply '+ (mapcar '* r v))) m) ) (vl-load-com) (princ)
Für den Transformationsteil zum Schluss kannst Du Dich bei Lee Mac bedanken, er hat auch alles ausführlich beschrieben. Ich habe seine Codes erstmal nur verwendet, ohne es komplett zu verstehen, scheint zu funktionieren. https://www.theswamp.org/index.php?topic=44005.msg492769#msg492769 Viel Spaß damit und frohe Weihnachten.
------------------ viele Grüße Jörn http://www.bosse-engineering.com Bosse_tools-Überblick Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
archi.archi Mitglied
Beiträge: 109 Registriert: 08.10.2010 Windows 11 AutoCAD 2024 Revit 2024
|
erstellt am: 17. Dez. 2021 16:00 <-- editieren / zitieren --> Unities abgeben:
Hallo Jörn, vielen Dank für die vla-Lösung mit den schönen mapcar-Konstruktionen. Die kann ich als "Freizeitprogrammierer" vielleicht noch verstehen, aber eben nicht mal flott erzeugen. Ich teste die Beschleunigung! Sicherheitshalber auch von mir schon mal weihnachtliche Grüße archi
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
archi.archi Mitglied
Beiträge: 109 Registriert: 08.10.2010 Windows 11 AutoCAD 2024 Revit 2024
|
erstellt am: 20. Dez. 2021 15:52 <-- editieren / zitieren --> Unities abgeben:
Hallo Jörn, Mehr muss ich wohl nicht sagen! Mit vla ca. Faktor 10 schneller. Sehr schön. Linie zu Zylinder ist erledigt. Nächstes Ziel: Polylinien zu Zylinder. Das ist jetzt noch einmal anspruchsvoller. Beste Grüße archi 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: 20. Dez. 2021 20:00 <-- editieren / zitieren --> Unities abgeben: Nur für archi.archi
|
archi.archi Mitglied
Beiträge: 109 Registriert: 08.10.2010 Windows 11 AutoCAD 2024 Revit 2024
|
erstellt am: 21. Dez. 2021 14:15 <-- editieren / zitieren --> Unities abgeben:
|
archi.archi Mitglied
Beiträge: 109 Registriert: 08.10.2010 Windows 11 AutoCAD 2024 Revit 2024
|
erstellt am: 22. Dez. 2021 14:21 <-- editieren / zitieren --> Unities abgeben:
Hallo Jörn, dank Steilvorlage von Gilles Chanteau bin ich gut zum Ziel gekommen. Code: ;;; CURVE2CYLINDER -Gilles Chanteau-(vl-load-com) (defun c:ErzeugeRohrzylinder (/ AcDoc Space rad ss obj start circ reg norm) (defun vlen (v) (sqrt (vxv v v)) ) (defun vxv (v1 v2) (apply '+ (mapcar '* v1 v2)) ) (defun vunit (v / l) (if (/= 0 (setq l (vlen v))) (mapcar '(lambda (x) (/ x l)) v) ) ) (setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object)) Space (if (= 1 (getvar "CVPORT")) (vla-get-PaperSpace AcDoc) (vla-get-ModelSpace AcDoc) ) ) (if (and (setq rad 20.0) (setq ss (ssget '((-4 . "<OR") (0 . "LWPOLYLINE") ; (0 . "ARC,CIRCLE,ELLIPSE,LINE,LWPOLYLINE,SPLINE") (-4 . "<AND") (0 . "POLYLINE") (-4 . "<NOT") (-4 . "&") (70 . 112) (-4 . "NOT>") (-4 . "AND>") (-4 . "OR>") ) ) ) ) (progn (vla-StartUndoMark AcDoc) (foreach path (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))) (setq obj (vlax-ename->vla-object path) ;Objekt start (vlax-curve-getPointAtParam obj (vlax-curve-getStartParam obj)) ;Startpunkt circ (vla-addCircle Space (vlax-3d-Point start) rad) ;Kreis am Startpunkt norm (vunit (vlax-curve-getFirstDeriv obj (vlax-curve-getStartParam obj)) ) ;Objektpfad-Richtungsvektor am Startpunkt ) (vla-put-Normal circ (vlax-3d-point norm)) ;Kreis orthogonal zum Pfad ausgerichtet (setq reg (car (vlax-invoke Space 'addRegion (list circ)))) ;Region aus Kreis erstellen (setq rohr (vla-addExtrudedSolidAlongPath Space reg obj)) ;Region entlang Pfad extrudieren (mapcar 'vla-delete (list circ reg)) ;Hilfsobjekte (Kreis, Region) loeschen (vla-put-layer rohr (vla-get-layer obj)) ;Layer anpassen ) (vla-EndUndoMark AcDoc) ) ) (princ) )
Schöne Weihnachten archi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |