|  |  | 
|  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | 
|  |  | 
|  | NVIDIA GTC Paris und ISC High Performance-Konferenz 2025, eine Pressemitteilung 
 | 
| Autor | Thema:  Alle Einfügepunkte eines Blockes ermitteln (1412 mal gelesen) | 
 | THE_ONE Mitglied
 Student, Alter:23
 
   
 
      Beiträge: 299Registriert: 27.04.2005
 AMD XP 2000, 512MB-RAM, WIN XP ProReadon 9600Pro
 VIZ 2005, Autocad 2007,(Mechanical)
 |    erstellt am: 19. Mrz. 2007 12:28  <-- editieren / zitieren -->    Unities abgeben:            
  Hallo!  Frage kann mir vielleicht einer von euch sagen wie man alle Einfügepunkte eines Blockes bekommt-> am besten in einer Liste! Hab hier im Forum ein Auto-Nummerierungstool gefunden, das ich mir auf meine Problemstellung angepasst habe! Nur muss ich dazu jeden Einfügepunkt selber angeben. Und eigentlich will ich ja nur das jeder Block eine eindeutige Nummer bekommt die neben dem Block steht (in einem fixen Abstand), dazu bräuchte ich aber die Einfügepunkte des Blockes.hier mal was ich bis jetzt habe:
 
 Code:(defun C:Num (/ KREISRADIUS TXT_KORD TXT_KORD TXT_HOEHE TXT_XY START_NUMMER PKT)
 (setq KREISRADIUS 14.0)
 (setq TXT_KORD 1.6)
 (setq TXT_HOEHE 7.0)
 (setq TXT_XY (strcat "@" (rtos TXT_KORD 2 2) "," (rtos TXT_KORD 2 2)))
 (if (null START_NUMMER)
 (setq START_NUMMER (getint "\nStart Pkt-Nummer: "))
 )
 (setq PKT 't)
 (while PKT
 (setq PKT (getpoint (strcat "\nKoordinate für "
 (itoa START_NUMMER)
 " eingeben: "
 )
 )
 )
 (if (/= PKT NIL)
 (progn
 (command "_text" TXT_XY TXT_HOEHE 0.0 START_NUMMER)
 (setq START_NUMMER (1+ START_NUMMER))
 )                                ;end progn
 )                                  ;end if
 );end while
   ) 
 Und statt dem while Koordinateneingabe, würde ich jetzt die whileschleife für alle Einfügepunkt laufen lassen. Nur leider weiß ich nicht wie ich diese bekomme (-> hab so gut wie keine visual Lisp kenntnisse)
 MFG THE_ONE Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | CADwiesel Moderator
 CAD4FM UG
 
      
 
  
 
      Beiträge: 1999Registriert: 05.09.2000
 AutoCAD, BricscadWir machen das Mögliche unmöglich
 |    erstellt am: 19. Mrz. 2007 12:31  <-- editieren / zitieren -->    Unities abgeben:           Nur für THE_ONE   
  Die Einfügepunkte stehen im GC 10 der Blockreferenz. Am Besten alle Referenzen einsammelm mit z.b: (ssget "_X" (list(cons 0 "INSERT)(cons 2 "Blockname))) und dann mit repeat durch den was gehen und den gc 10 auslesen und in 'ne liste schreiben ------------------Gruß
 
  CADwiesel Besucht uns im CHAT
 
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | THE_ONE Mitglied
 Student, Alter:23
 
   
 
      Beiträge: 299Registriert: 27.04.2005
 AMD XP 2000, 512MB-RAM, WIN XP ProReadon 9600Pro
 VIZ 2005, Autocad 2007,(Mechanical)
 |    erstellt am: 19. Mrz. 2007 12:48  <-- editieren / zitieren -->    Unities abgeben:            
 Zitat:Original erstellt von CADwiesel:
 Die Einfügepunkte stehen im GC 10 der Blockreferenz.
 Am Besten alle Referenzen einsammeln mit z.b: (ssget "_X" (list(cons 0 "INSERT)(cons 2 "Blockname)))
 
 
 (ssget "_X" '((cons 0."INSERT)(cons 2. "Blockname"))) ist das eigentlich das was du gemeint hast??   Zitat:Original erstellt von CADwiesel:
 und dann mit repeat durch den was gehen und den gc 10 auslesen und in 'ne liste schreiben
 [/i]
 
 Wie meinst du das genau versteh den Satz ned ganz? Sorry    
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | CADmium Moderator
 Maschinenbaukonstrukteur
 
         
 
  
 
      Beiträge: 13533Registriert: 30.11.2003
 . |    erstellt am: 19. Mrz. 2007 12:51  <-- editieren / zitieren -->    Unities abgeben:           Nur für THE_ONE   
  mal ein Bespiel (setq BLOCKNAME "PUNKT") (if(setq AWS(ssget (list '(0 . "INSERT")(cons 2 BLOCKNAME)(cons 410 (getvar "ctab")))))   (repeat (sslength AWS)     (princ "\nEinfügepunkt:")     (setq OBJ (ssname AWS 0))     (princ (cdr(assoc 10(entget OBJ))))     (ssdel OBJ AWS)            ) ) ------------------
  - 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 | 
                        | THE_ONE Mitglied
 Student, Alter:23
 
   
 
      Beiträge: 299Registriert: 27.04.2005
 AMD XP 2000, 512MB-RAM, WIN XP ProReadon 9600Pro
 VIZ 2005, Autocad 2007,(Mechanical)
 |    erstellt am: 19. Mrz. 2007 13:09  <-- editieren / zitieren -->    Unities abgeben:            | 
                        | CADmium Moderator
 Maschinenbaukonstrukteur
 
         
 
  
 
      Beiträge: 13533Registriert: 30.11.2003
 . |    erstellt am: 19. Mrz. 2007 13:12  <-- editieren / zitieren -->    Unities abgeben:           Nur für THE_ONE   
 Zitat:Original erstellt von THE_ONE:
 Frage was macht das??
 (cons 410 (getvar "ctab"))
 
 gib es doch mal in der Befehlszeile ein   .. der Rechner wird schon nicht gleich explodieren   ------------------
  - 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 | 
                        | cadffm Moderator
 良い精神
 
         
 
  
 
      Beiträge: 22689Registriert: 03.06.2002
 Alles |    erstellt am: 19. Mrz. 2007 13:14  <-- editieren / zitieren -->    Unities abgeben:           Nur für THE_ONE   | 
                        | THE_ONE Mitglied
 Student, Alter:23
 
   
 
      Beiträge: 299Registriert: 27.04.2005
 AMD XP 2000, 512MB-RAM, WIN XP ProReadon 9600Pro
 VIZ 2005, Autocad 2007,(Mechanical)
 |    erstellt am: 19. Mrz. 2007 13:49  <-- editieren / zitieren -->    Unities abgeben:            
  Danke, hätte selber nachschauen sollen! Gut das ihr mich immer wieder daran erinnert das es die Acad Hilfe gibt! Hier das fertig TOOL zur Automatischen Nummerierung von Blöcken.
 Code:(defun C:Num (/ TXT_HOEHE TXT_XY START_NUMMER X_DIST Y_DIST)
 (setq TXT_HOEHE 80.0)
 (setq START_NUMMER 0)
 (setq X_DIST 300.0 Y_DIST 10.0)
 ;;;  (if (null START_NUMMER)
 ;;;    (setq START_NUMMER (getint "\nStart Pkt-Nummer: "))
 ;;;  )
   (setq BLOCKNAME "audio_JBL")(if(setq AWS(ssget "_X" (list '(0 . "INSERT")(cons 2 BLOCKNAME)(cons 410 (getvar "ctab")))))
 (repeat (sslength AWS)
 ;(princ "\nEinfügepunkt:")
 (setq OBJ (ssname AWS 0))
 (setq TXT_XY (cdr(assoc 10(entget OBJ))))
 (setq TXT_XY (list (+ (car TXT_XY) X_DIST) (+ (cadr TXT_XY) Y_DIST) (last TXT_XY)))
 (command "_text" TXT_XY TXT_HOEHE 0.0 (strcat "LS " (rtos START_NUMMER 2 0)) )
 (setq START_NUMMER (1+ START_NUMMER))
 (ssdel OBJ AWS)
 )
 )
 )
 
 Gibt es eine Möglichkeit das alle Beschriftungen entfernt werden wenn man auf zurück drückt! Weil derzeit muss ich so oft zurück drücken, wie Text eingefügt wurden. MFG THE_ONE [Diese Nachricht wurde von THE_ONE am 19. Mrz. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | CADmium Moderator
 Maschinenbaukonstrukteur
 
         
 
  
 
      Beiträge: 13533Registriert: 30.11.2003
 . |    erstellt am: 19. Mrz. 2007 13:53  <-- editieren / zitieren -->    Unities abgeben:           Nur für THE_ONE   
  Schau dir die Optionen des Befehls ZURÜCK (_undo) an ... das entsprechend in ein command am Anfang und am Ende gepackt .... ------------------
  - 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 | 
                       
| 
  
 |  | 
 | THE_ONE Mitglied
 Student, Alter:23
 
   
 
      Beiträge: 299Registriert: 27.04.2005
 AMD XP 2000, 512MB-RAM, WIN XP ProReadon 9600Pro
 VIZ 2005, Autocad 2007,(Mechanical)
 |    erstellt am: 19. Mrz. 2007 18:05  <-- editieren / zitieren -->    Unities abgeben:            
  Wollte jetzt gerade das mit _undo einbauen und siehe da das skript findet keine Blöcke mehr! Nur wenn ich neue Blöcke einfüge findet das skript diese! Blöcke die beim öffnen der Datei schon vorhanden sind werden nicht gefunden, warum??    MFG THE_ONE  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |