Hot News:
   

Mit Unterstützung durch:

  Foren auf CAD.de
  Lisp
  Command-Reaktor für Bemassung

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
  
NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition, eine Pressemitteilung
Autor Thema:  Command-Reaktor für Bemassung (36 mal gelesen)
Bernhard GSD
Mitglied



Sehen Sie sich das Profil von Bernhard GSD an!   Senden Sie eine Private Message an Bernhard GSD  Schreiben Sie einen Gästebucheintrag für Bernhard GSD

Beiträge: 514
Registriert: 29.08.2002

AutoCAD 2020(Deu); Windows 10 PRO x64(Deu)

erstellt am: 30. Sep. 2025 12:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Der folgende Code reagiert auf Änderungen einer Bemassung mit Standard-Ändern-Befehlen und führt die Funktion :HKV_reactor aus. Diese simuliert ein Hochkomma-Bemaßung. Das funktioniert auch, aber reagiert nicht auf Änderungen mit Hilfe von Griffen.
(:hkv_reactor) ändert den vorherigen Auswahlsatz "Letztes".

Die Struktur der Funktion ist leider relativ komplex, was die Quelle der zu tätigenden Einstellungen betrifft.


Code:

;;; -------------------------------------------------------
;;; Einfacher EditorReactor: führt (:hkv_reactor) nach Änderungen aus
;;; -------------------------------------------------------

(DEFUN :Dimmodifiedcallback (reactor params / cmd)
  ;; params ist eine Liste mit dem Befehlsnamen
  (SETQ cmd (STRCASE (CAR params)))
  ;; Bei allen relevanten Befehlen auslösen
  (IF (MEMBER cmd '("MOVE" "STRETCH" "ROTATE" "DDEDIT" "DIMEDIT" "PROPERTIES" "COPY"))
      (PROGN (princ (strcat "\nBefehl " cmd " beendet – starte (:HKV_REACTOR)..."))
        ;(:hkv_reactor) - hier auskommentiert
      )
  )
)

(DEFUN :startglobaldimreactor (/)
  (IF (NOT *dimreactor*)
      (SETQ *dimreactor* (VLR-EDITOR-REACTOR nil '((:VLR-COMMANDENDED . :Dimmodifiedcallback))))
  )
  (PRINC "\nGlobaler Bemaßungs-Reactor aktiv.")
  (PRINC)
)
(DEFUN c:hkr () (:startglobaldimreactor))


------------------
Gruß aus Wien
Bernhard

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Bernhard GSD
Mitglied



Sehen Sie sich das Profil von Bernhard GSD an!   Senden Sie eine Private Message an Bernhard GSD  Schreiben Sie einen Gästebucheintrag für Bernhard GSD

Beiträge: 514
Registriert: 29.08.2002

AutoCAD 2020(Deu); Windows 10 PRO x64(Deu)

erstellt am: 30. Sep. 2025 14:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Jetzt läuft´s
DeepSeek hat den ChatGPT Code optimiert.   
Code:

;;; -----------------------------------------------------------------
;;; Einfacher EditorReactor: führt (:hkv_reactor) nach Änderungen aus
;;; -----------------------------------------------------------------


(DEFUN :Dimmodifiedcallback  (reactor params / cmd)
     ;; params ist eine Liste mit dem Befehlsnamen
     (SETQ cmd (STRCASE (CAR params)))
     ;; Bei allen relevanten Befehlen auslösen
     (IF (MEMBER cmd
'("MOVE" "STRETCH" "ROTATE" "DDEDIT" "DIMEDIT" "PROPERTIES" "COPY" "GRIP_STRETCH"
   "GRIP_MOVE"))
  (PROGN (PRINC (STRCAT "\nBefehl " cmd " beendet – starte (:HKV_REACTOR)..."))
  ;(IF (= cmd "GRIP_STRETCH")(command "_select"))
(:hkv_reactor))))

(DEFUN   :_objectmodifiedcallback (reactor objects / obj)
     ;; Wird bei direkter Objektmodifikation (inkl. Griffen) aufgerufen
     (VL-LOAD-COM)
     (FOREACH obj  objects
  (IF (AND (VLAX-PROPERTY-AVAILABLE-P obj 'objectname)
   (WCMATCH (VLA-GET-OBJECTNAME obj) "*Dimension*"))
       (PROGN (PRINC "\nBemaßung modifiziert – starte (:HKV-REACTOR2)...\n")
 
      (:hkv-reactor (VLAX-VLA-OBJECT->ENAME obj))))))

(DEFUN :startglobaldimreactor  (/)
     ;; Lösche vorhandene Reactors falls vorhanden
     (IF (AND (BOUNDP '*dimreactor*) *dimreactor*)
  (VLR-REMOVE *dimreactor*))
     (IF (AND (BOUNDP '*objreactor*) *objreactor*)
  (VLR-REMOVE *objreactor*))
     ;; Editor-Reactor für Befehle
     (SETQ *dimreactor*
       (VLR-EDITOR-REACTOR
    nil
    '((:VLR-COMMANDENDED . :Dimmodifiedcallback)
      (:VLR-COMMANDCANCELLED . :Dimmodifiedcallback)
      (:VLR-COMMANDFAILED . :Dimmodifiedcallback))))
     ;; Object-Reactor für direkte Modifikationen (Griffe, Properties etc.)
     (SETQ *objreactor* (VLR-OBJECT-REACTOR nil '((:VLR-MODIFIED .   :_objectmodifiedcallback))))
     (PRINC "\nGlobaler Bemaßungs-Reactor aktiv (inkl. Griff-Bearbeitung).")
     (PRINC))

;; Funktion zum Stoppen der Reactors
(DEFUN :stopglobaldimreactor  (/)
     (IF (AND (BOUNDP '*dimreactor*) *dimreactor*)
  (PROGN (VLR-REMOVE *dimreactor*) (SETQ *dimreactor* nil)))
     (IF (AND (BOUNDP '*objreactor*) *objreactor*)
  (PROGN (VLR-REMOVE *objreactor*) (SETQ *objreactor* nil)))
     (PRINC "\nBemaßungs-Reactor deaktiviert.")
     (PRINC))


------------------
Gruß aus Wien
Bernhard

[Diese Nachricht wurde von Bernhard GSD am 30. Sep. 2025 editiert.]

[Diese Nachricht wurde von Bernhard GSD am 30. Sep. 2025 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen .... | Nach anderen Beiträgen suchen

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz