| |
 | Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
|
Autor
|
Thema: automatische Plangröße im Planstempel (3023 mal gelesen)
|
pbr-os-ehl Mitglied Techniker HLK
 Beiträge: 5 Registriert: 18.04.2006
|
erstellt am: 29. Nov. 2006 09:37 <-- editieren / zitieren --> Unities abgeben:         
Hallo liebe CAD-Gemeinde, ich würde gern wissen, ob mir jemand sagen kann, ob es eine Möglichkeit gibt, in Autocad 2004 mit Pit 7.0 die Plangröße im layout automatisch einzusetzen (z.Bsp. 1200x800=0,96m²). Vielen Dank für Eure Hilfe im voraus !! ------------------ ACAD 2004 WIN 2000 PIT CUP 7.0 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Kraus Mitglied Elektrotechniker
   
 Beiträge: 1496 Registriert: 11.01.2006 WIN 11 ACAD 2022 BricsCAD V25.1.07
|
erstellt am: 30. Nov. 2006 08:29 <-- editieren / zitieren --> Unities abgeben:          Nur für pbr-os-ehl
Hallo, ich nehme an du schreibst die Plangröße in ein Attribut. Bei festgelegtem Layer für den Planrahmen kann man den suchen (und finden) lassen und "ausmessen". Aber da brauchts noch Infos damit das mal funkionieren könnte. - ist der Plankopf ein Block mit Attributen ? - ist der Planrahmen eine Ploylinie ? - gibt es verschiedene Planköpfe für verschiedene Blattgrößen ? - liegt der Planrahmen auf einem bestimmten Layer und ist auf diesem Layer noch was anderes ? - gibt es Layouts mit mehreren Planrahmen (es gibt Leute die machen sowas. Vielleicht um Layouts zu sparen ?) - und ich hab sicher noch was vergessen ! Also - was genau hast du unter welchen Vorraussetzungen vor ? Gruß Andreas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pbr-os-ehl Mitglied Techniker HLK
 Beiträge: 5 Registriert: 18.04.2006
|
erstellt am: 30. Nov. 2006 08:52 <-- editieren / zitieren --> Unities abgeben:         
Hallo Andreas, Danke für die schnelle Antwort. - Der Plankopf ist ein Attribut mit Eingabemaske - Der äußere Planrahmen ist eine Polylinie - Es gibt versch. Layouts mit Planrahmen, der Plankopf ist aber immer gleich. - Der Planrahmen liegt auf einem sep. Layer - Es gibt keine Layouts mit mehreren Planrahmen (dafür kann man ja mehrere Layouts erstellen...) Also, ich möchte die Plangröße wie beschrieben entweder in m² oder wenn möglich die Länge und Breite inkl. Fläche des ges. Planes automatisch im Plankopf anzeigen lassen, auch wenn man dann den Rahmen streckt bzw. ändert. Gruß, pbr-os-ehl ------------------ ACAD 2004 WIN 2000 PIT CUP 7.0 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Kraus Mitglied Elektrotechniker
   
 Beiträge: 1496 Registriert: 11.01.2006 WIN 11 ACAD 2022 BricsCAD V25.1.07
|
erstellt am: 30. Nov. 2006 12:45 <-- editieren / zitieren --> Unities abgeben:          Nur für pbr-os-ehl
Halo pbr-os-ehl, (was ist das eigentlich für ein Name ?) Mit einem Schriftfeld im Attribut bekommst du, soviel ich weis, nur die Fläche der Polylinie. Also bleibt der Weg über Lisp. Wenn du dich mit Lisp auskennst kannst du die Differenz aus "Koordinate unten links" und "Koordinate oben rechts" der Polylinie nehmen und hast die Abmessungen. Fläche berechnen ist ja einfach. Block (Plankopf) suchen, finden, Attribut ausfüllen, fertig. Kann man auch über einen Editor-Reactor automatisieren. Wenn du das nicht selbst hinkriegst, helf ich natürlich. Gruß Andreas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pbr-os-ehl Mitglied Techniker HLK
 Beiträge: 5 Registriert: 18.04.2006
|
erstellt am: 30. Nov. 2006 14:07 <-- editieren / zitieren --> Unities abgeben:         
Hallo! Mein Name setzt sich aus "Firma-Zweigstelle-Nameskürzel" zusammen... Mit Lisp kenne ich mich noch nicht so gut aus, bin da eher noch Einsteiger...also wäre ich für Deine Hilfe sehr dankbar! Allerdings benutze ich Autocad 2004, ich weiß nicht, ob dort ein Reactor funktioniert... Gruß, Jochen E. ------------------ ACAD 2004 WIN 2000 PIT CUP 7.0
[Diese Nachricht wurde von pbr-os-ehl am 30. Nov. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Kraus Mitglied Elektrotechniker
   
 Beiträge: 1496 Registriert: 11.01.2006 WIN 11 ACAD 2022 BricsCAD V25.1.07
|
erstellt am: 30. Nov. 2006 15:42 <-- editieren / zitieren --> Unities abgeben:          Nur für pbr-os-ehl
|
Andreas Kraus Mitglied Elektrotechniker
   
 Beiträge: 1496 Registriert: 11.01.2006
|
erstellt am: 30. Nov. 2006 18:04 <-- editieren / zitieren --> Unities abgeben:          Nur für pbr-os-ehl
So - war gar nicht so schlimm. Layername, Blockbezeichnung und Attributbezeichnung mußt du noch für dich anpassen. Wenns funktioniert - viel Spass damit ! Wenn nicht - gib Bescheid (geht nicht gibts nicht) Gruß Andreas (defun work_commandEnded (dummy1 dummy2 / satz n ent_data p_list p_min p_max xp_min yp_min xp_max yp_max )
;;; hier Layername für Rahmen setzen (setq lay "Rahmen") (if (setq satz (ssget "x" (list (cons 0 "LWPOLYLINE") (cons 8 lay) (cons 410 (getvar "ctab")) ) ) ) (progn (setq n (1- (sslength satz))) (repeat (sslength satz) (setq ent_data (entget (ssname satz n))) (setq p_list (mapcar 'cdr (vl-remove-if-not '(lambda (data) (= (car data) 10)) ent_data ) ) ) (if p_min (setq p_list (cons p_min p_list)) ) (if p_max (setq p_list (cons p_max p_list)) ) (setq xp_min (car (vl-sort (mapcar '(lambda (p) (nth 0 p)) p_list) '< ) ) ) (setq yp_min (car (vl-sort (mapcar '(lambda (p) (nth 1 p)) p_list) '< ) ) ) (setq xp_max (car (vl-sort (mapcar '(lambda (p) (nth 0 p)) p_list) '> ) ) ) (setq yp_max (car (vl-sort (mapcar '(lambda (p) (nth 1 p)) p_list) '> ) ) ) (setq p_min (list xp_min yp_min)) (setq p_max (list xp_max yp_max)) (setq n (1- n)) ) (setq xy (mapcar '- p_max p_min)) (setq txt (strcat (rtos (nth 0 xy)) "x" (rtos (nth 1 xy)) "=" (rtos (* 0.000001 (nth 0 xy) (nth 1 xy))) "m²" ) ) ;;; hier Blockbezeichnung und Attributbezeichnung setzen (setq block_bez "kopf") (setq att_bez "Blattgrösse") (if (setq satz (ssget "x" (list (cons 0 "INSERT") (cons 66 1) (cons 2 block_bez)) ) ) (progn (setq n (1- (sslength satz))) (repeat (sslength satz) (setq ent_data (entget (setq ent_name (ssname satz n)))) (while (/= (cdr (assoc 0 ent_data)) "SEQEND") (if (= (cdr (assoc 0 ent_data)) "ATTRIB") (if (= (cdr (assoc 2 ent_data)) (strcase att_bez)) (progn (vlax-put-property (vlax-ename->vla-object e_name) "TextString" txt ) ) ) ) (setq ent_name (entnext ent_name)) (setq ent_data (entget ent_name)) ) (setq n (1- n)) ) ) ) ) ) ) (if (null (vlr-reactors :vlr-command-reactor)) (vlr-command-reactor nil '((:vlr-commandEnded . work_commandEnded)) ) ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |