|  |  | 
|  | 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:  Block um Einfügepunkt drehen (3346 mal gelesen) | 
 | Bauvermesser Mitglied
 Vermesser
 
   
 
      Beiträge: 460Registriert: 18.03.2006
 AMD 2600, 2024RAM ,WIN XP PROF-SP3, ACAD 2005, Firmenrechner, |    erstellt am: 16. Mrz. 2010 21:55  <-- editieren / zitieren -->    Unities abgeben:            
  Hallo, benutze aus diesem Forum eine LSP zum Drehen eines Blockes um den Einfügepunkt. Läuft so weit , doch kommt aufgrund der von mir vorgenommenen Änderungen eine  Fehlermeldung  (Fehler: Funktion abgebrochen)  , kann mir bitte jemand sagen wo der Fehler liegt. Die Abfrage nach dem Drehwinkel soll aber ausgeschaltet bleiben. ;;DREHEN von Objekten die einen definierten Einfügepunkt haben.(defun c
  REHEN-E (/ faktor aus n i nam ins) (terpri)(terpri)
 (setvar "cmdecho" 0)
 (princ "\nDer DREHEN-BASIS-PUNKT ... ist der jeweilige Objekt-Einfügepunkt.")
 ;;(setq drehwink (getreal "\nDrehwinkel für die Objekte: "))
 ;-----Auswaehlen-----
 (setq aus (ssget) as aus) ;aus=Auswahl der Elemente
 (setq n (sslength aus)) ;n=Anzahl der Elemente (max)
 (command "bks" "w")
 (setq i 0) ;Zaehler auf 0
 ;-----Bearbeiten-----
 (setvar "cmdecho" 0)
 (while (< i n) ;solange wie Zaehler < max
 (setq nam (ssname aus i)) ;jedem i aus Auswahl einen Namen
 (setq ins (cdr (assoc 10 (entget nam))))
 ;;  (command "drehen" nam "" ins drehwink) ;nam=nur ein Element
 (command "drehen" nam "" ins)
 ;;  (setq i(1+ i)) ;Zaehler eins weiter
 ) ;while
 (command "bks" "w")
 (princ)
 ) ;defun
 ;;**********
 ------------------Gruß vom Bauvermesser;
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | archtools Mitglied
 
 
     
 
      Beiträge: 1059Registriert: 09.10.2004
 Entwickler für AutoCAD, BricsCAD u.a., alle Systeme |    erstellt am: 16. Mrz. 2010 22:34  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bauvermesser   
 Zitat:Original erstellt von Bauvermesser:
 Hallo,
 benutze aus diesem Forum eine LSP zum Drehen eines Blockes um den Einfügepunkt.
 
 
 Nimm das hier: Code:
 (defun modent	(ename dxf val / old)
 (if (setq old (assoc dxf (entget ename)))
 (entmod (subst
 (cons dxf val)
 old
 (entget ename)
 )
 )
 (entmod (cons (cons dxf val) (entget ename)))
 )
 )
 
 
 Damit kannst Du fast alles ändern. Den Drehwinkel der Einfügung findest Du in DXF-Gruppencode 50. Um den auf 90° zu bringen, schreibst Du also:Befehl: (modent (car (entsel)) 50 (/ PI 2.0))
 Pi / 2 bzw in Lisp (/ PI 2.0) ist das Bogenmaß von 90°. Du kannst damit natürlich auch den Layer ändern:Befehl: (modent (car (entsel)) 8 "Neuer-Layer")
 oder sogar die referenzierte Blockreferenz:
 Befehl: (modent (car (entsel)) 2 "AndererBlockreferenzname")
 
 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: 9812Registriert: 01.12.2003
 One AutoCAD 2.5 - 2024, AutoCAD, Civil 3D, Win10/Win11 |    erstellt am: 17. Mrz. 2010 08:03  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bauvermesser   | 
                        | 3jalex Mitglied
 
 
   
 
      Beiträge: 244Registriert: 13.03.2006
 |    erstellt am: 28. Apr. 2010 11:29  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bauvermesser   
  Hallo Ich möchte das mit den Attributen vom Bauvermesser, aber das hatte von Anfang an nicht Funktioniert. Ausserdem ist bei mir ein Smile mitten im Lisp (Nach defun c) Kann man das nicht abstellen? Mein versuch sieht so aus (Script):Filedia
 0
 (setq sset01 (ssget))
 !sset01
 _ucs
 o
 l
 _ucs
 X
 90
 _rotate
 0,0,0
 l
 ;Leerziele für Bestägigung 180
 ucs
 w
 Filedia
 1
 Die Drehachse und den Winkel kann man ja nach belieben anpassen. Jedoch funktioniert die Auswahl nicht. Habe es mit \ schon probiert.  1) Wie könnte das Script (oder Lisp) aussehen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | cadffm Moderator
 良い精神
 
         
 
  
 
      Beiträge: 22689Registriert: 03.06.2002
 Alles |    erstellt am: 28. Apr. 2010 11:59  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bauvermesser   | 
                        | 3jalex Mitglied
 
 
   
 
      Beiträge: 244Registriert: 13.03.2006
 |    erstellt am: 28. Apr. 2010 15:46  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bauvermesser   
  Hallo     Vielen Dank für die Antwort. Mit dem Tool möchte ich einen gewählten Block am Basispunkt des Blocks um 90° im gegenuhrzeigersinn drehen.Andere Programme haben das schon eingebaut. Tastenkombination Ctrl.+L
  Mit AutoCAD sollte das bestimmt auch möglich sein. Nun habe ich den Befehl vor der Auswahl gesetzt und die auswahl funktioniert. Danach wird jedoch der Befehl abgebrochen
 Betreffend dem Forum: Ich habe hier nur geantwortet darum ist es im Lispforum [Diese Nachricht wurde von 3jalex am 28. Apr. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Bauvermesser Mitglied
 Vermesser
 
   
 
      Beiträge: 460Registriert: 18.03.2006
 AMD 2600, 2024RAM ,WIN XP PROF-SP3, ACAD 2005, Firmenrechner, |    erstellt am: 28. Apr. 2010 23:10  <-- editieren / zitieren -->    Unities abgeben:            
  hallo also hinter dem Smilies steht -  drehen-e  - und damit ruft du auch die lsp auf, bei mir klapt es, es kommt eben nur nach meiner drinnrum fummelei am  Schluss eine Fehlermeldung, aber die ignoriere ich einfach. Da ich nur nach freihen Winkel drehen möchte musste ich es etwas abändern. Diese lsp ist genau das Richtige und man kann fast alles damit Drehen!! (um den Einfügepunkt wohlgemekt)  ------------------Gruß vom Bauvermesser;
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                       
| 
  
 |  | 
 | Dorfy Mitglied
 Double-Dipl.-Ing. Bleistiftanspitzer
 
    
 
      Beiträge: 900Registriert: 21.07.2006
 AutoCad2007, ProE, HiCad |    erstellt am: 29. Apr. 2010 06:26  <-- editieren / zitieren -->    Unities abgeben:           Nur für Bauvermesser   
 Zitat:Original erstellt von Bauvermesser:
 ...
 bei mir klapt es, es kommt eben nur nach meiner drinnrum fummelei am  Schluss eine Fehlermeldung, aber die ignoriere ich einfach...
 
 
 mit allen Elementen im Auswahlsatz?    probier mal mit den Zeilen
 (while (< i n) ;solange wie Zaehler < max(setq nam (ssname aus i)) ;jedem i aus Auswahl einen Namen
 (setq ins (cdr (assoc 10 (entget nam))))
 (command "drehen" nam "" ins)
 (while (/=(getvar "CMDACTIVE")0)(command pause))
 (setq i(1+ i))
 ) ;while
 und ... ach egal    ------------------Mfg Heiko
  Elefantenjagd  in Afrika "... LISP-Programmierer bauen einen Irrgarten aus Klammern und hoffen, dass sich der Elefant darin verirrt..."
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |