Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Gewählte blöcke durch Schnellauswahl um einfügepunkt drehen

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

Anzeige:

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
Autor Thema:  Gewählte blöcke durch Schnellauswahl um einfügepunkt drehen (1443 mal gelesen)
bixi1973
Mitglied
techn. angestellter


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

Beiträge: 72
Registriert: 07.09.2011

Windows 7 64 bit
Windows 7 32 bit
ACAD 2013
ACAD Mep 2013

erstellt am: 30. Mrz. 2015 11:59    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

Hallo LISP Spezialisten:

Gibt es eine Möglichkeit mit Lisp, wenn ich mehrere Blöcke durch Schnellauswahl ausgewählt habe, dass ich diese um den Einfügepunkt drehen lassen kann.
Einstellung des Drehwinkels als Eingabe z.B. 90 im Uhrzeigersinn oder -90 gegen den Uhrzeigersinn.

LG Karl

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

spider_dd
Mitglied



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

Beiträge: 1111
Registriert: 27.11.2003

Win 10Pro
Intel(R) Core(TM) i7-7700
NVIDIA Quadro P1000
ACAD, Civil-3D 2018

erstellt am: 30. Mrz. 2015 13:24    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 Nur für bixi1973 10 Unities + Antwort hilfreich

Hallo Karl,

folgendes dreht eine Auswahl umden angegebenen Winkel (soweit möglich).
Wenn vorher was gewählt war, wird diese Auswahl genommen.
Achtung: Quick and dirty, keine Fehlerbehandlung usw.

Code:

(defun c:Dreh()
  (setq neuwinkel (getreal "\nDrehwinkel angeben"))
  (setq p0 (list 0 0))
  (setq dreh_ucs (angle p0 (getvar "ucsxdir")))
  (setq neuwinkel (+ (*(/ neuwinkel 180) Pi) dreh_ucs))
  (princ "\nzu drehende Objekte wählen")
  (setq tl (ssget))
  (setq anz (sslength tl))
  (setq x 0)
  (while (< x anz)
    (setq ct (ssname tl x))
    (setq ctl (entget ct))
    (if (assoc 50 ctl)
      (setq ctl (subst (cons 50 (+ (cdr (assoc 50 ctl)) neuwinkel)) (assoc 50 ctl) ctl))
    )
    (entmod ctl)
    (entupd ct)
    (setq x (1+ x))

  ) 
)


HTH
Gruß
Thomas

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

bixi1973
Mitglied
techn. angestellter


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

Beiträge: 72
Registriert: 07.09.2011

Windows 7 64 bit
Windows 7 32 bit
ACAD 2013
ACAD Mep 2013

erstellt am: 30. Mrz. 2015 21:35    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

Hallo Thomas!

Danke vorerst für die rasche Hilfe.
Soweit funktioniert der Code super.
Leider dreht dieser die Attribute nicht mit.

Gibt es dazu auch eine Lösung, oder mache ich da etwas falsch?

LG Karl

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

spider_dd
Mitglied



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

Beiträge: 1111
Registriert: 27.11.2003

Win 10Pro
Intel(R) Core(TM) i7-7700
NVIDIA Quadro P1000
ACAD, Civil-3D 2018

erstellt am: 31. Mrz. 2015 09:17    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 Nur für bixi1973 10 Unities + Antwort hilfreich

Uuups,

an Blöcken mit Attributen habe ich das nicht getestet, ist ja blöd.
Ich bin dran.

Gruß
Thomas

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 31. Mrz. 2015 10:10    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 Nur für bixi1973 10 Unities + Antwort hilfreich

(defun C:INSERTROTATE(/ AWS ANG INDEX OBJ OBJLIST)
  (vl-load-com)
  (if(and(or(setq AWS (ssget "_I" '((0 . "INSERT"))))
            (and(setq NOMUTT(getvar "NOMUTT"))
                (setvar "NOMUTT" 1)
                (princ "\nZu drehende Blockreferenzen wählen: ")
                (or(vl-catch-all-error-p
                    (setq AWS(vl-catch-all-apply
                                'ssget (list '((0 . "INSERT")))
                              )
                    )
                  )
                  'T
                )
                (setvar "NOMUTT" NOMUTT)
                (or(=(type AWS)'PICKSET)
                  (prompt "\nAbbruch durch Anwender...")
                ) 
                (>(sslength AWS)0)
            )
            (prompt "\nKeine Blockreferenzengewählt")
        )       
        (or(setq ANG(getreal "\nrelativer Drehwinkel <90.0>: "))
            (setq ANG 90.0)
        )                 
    )                           
    (progn     
      (setq INDEX -1)
      (repeat(sslength AWS)       
        (if(setq OBJ(ssname AWS (setq INDEX(1+ INDEX))))
          (setq OBJLIST (cons OBJ OBJLIST))     
        )
      )
      (vla-endundomark  (vla-get-activedocument(vlax-get-acad-object)))
      (vla-startundomark(vla-get-activedocument(vlax-get-acad-object)))
      (if(setq OBJLIST(vl-remove-if 'null (mapcar
                                          '(lambda(X / VOBJ OLDANG)
                                              (if(and(setq VOBJ (vlax-ename->vla-object X))
                                                    (not(vl-catch-all-error-p(setq OLDANG(vl-catch-all-apply 'vla-get-rotation(list VOBJ)))))
                                                    (not(vl-catch-all-error-p(vl-catch-all-apply 'vla-put-rotation(list VOBJ (+ OLDANG (*(/ ANG 180.0)PI))))))                                     
                                                )
                                                X
                                              ) 
                                            )
                                            OBJLIST
                                          ) 
                      )
        )
        (progn
          (setq AWS (ssadd))
          (foreach OBJ OBJLIST (ssadd OBJ AWS))             
          (sssetfirst AWS AWS) 
        )         
      )
      (vla-endundomark  (vla-get-activedocument(vlax-get-acad-object)))
      (princ)
    ) 
  ) 
)

------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

bixi1973
Mitglied
techn. angestellter


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

Beiträge: 72
Registriert: 07.09.2011

Windows 7 64 bit
Windows 7 32 bit
ACAD 2013
ACAD Mep 2013

erstellt am: 31. Mrz. 2015 14:26    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

Hallo CADmium!

Das ist ja toll.
Funktioniert einwandfrei, so wie ichs mir vorgestellt habe.

Vielen vielen Dank für die Hilfe.

LG Karl

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

bixi1973
Mitglied
techn. angestellter


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

Beiträge: 72
Registriert: 07.09.2011

Windows 7 64 bit
Windows 7 32 bit
ACAD 2013
ACAD Mep 2013

erstellt am: 31. Mrz. 2015 14:28    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

Hallo Thomas!

Der Lisp von CADmium funktioniert einwandfrei.

Vielen dank auch dir für deine Bemühungen.

LG Karl

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

wronzky
Ehrenmitglied V.I.P. h.c.
CAD-Dienstleistungen für Architekten



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

Beiträge: 2154
Registriert: 02.05.2005

CAD:
AutoCAD 2.6 bis 2014
ADT 2005 - 2014
Arcibem
System:
Windows 2000, XP, NO VISTA
Internet-Startseite:
http://www.archi.de

erstellt am: 31. Mrz. 2015 15:28    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 Nur für bixi1973 10 Unities + Antwort hilfreich

um auch ein bischen Mut zum Selberprobieren zu machen, hier nochmal eine einfache Variante - einfach mit dem "_rotate"-Befehl.
Code:
(defun c:vox-multirotate ( / w ss z ele p)
  (setq w (getreal "\nDrehwinkel angeben"))
  (prompt "\nzu drehende Objekte wählen")
  (setq ss (ssget) z -1)
  (while (setq ele (ssname ss (setq z (1+ z))))
    (setq p (cdr (assoc 10 (entget ele))))
    (command "_rotate" ele "" p w)
  )
)

Grüsse, Henning

------------------
Henning Jesse
VoxelManufaktur
Computer-Dienstleistungen für Architekten und Ingenieure

  http://www.voxelman.de

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

bixi1973
Mitglied
techn. angestellter


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

Beiträge: 72
Registriert: 07.09.2011

Windows 7 64 bit
Windows 7 32 bit
ACAD 2013
ACAD Mep 2013

erstellt am: 03. Apr. 2015 07:13    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

Hallo Henning!

Danke für deine Hilfe.
Dieser Code ist für mich noch besser zu verwenden, da ich diesen für andere Anwendungen leicht umschreiben kann.

Gruß Karl

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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 22. Jun. 2015 18:30    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 Nur für bixi1973 10 Unities + Antwort hilfreich

RotateExpert in realtime

------------------
Gruss Dirk
Blog | Adolf Spende | Infra-Feed | ÅF AB

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 | CAD.de-Newsletter

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

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

(c)2023 CAD.de | Impressum | Datenschutz