| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Ersetze Kreis durch Block (4606 mal gelesen)
|
Dimitra75 Mitglied Bauzeichnerin
Beiträge: 58 Registriert: 14.03.2005
|
erstellt am: 30. Okt. 2012 14:04 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, 34 PKT_BLK Austauschen von Punkten gegen Blöcke. Mit diesem Tool lassen sich Punkte gegen Blöcke tauschen. Gibt es sowas auch für Kreise? Oder setze mir in allen Kreismittelpunkte eine Punkt? Mein Problem: Ich habe eine Zeichnung mit Flächenkreise in diesem die Information undurchlässige Fläche, Flächengröße etc. drinstehen. Alles einzelne Elemente. Der Auftrageber wünscht sich aber keinen Kreis sondern ein Rechteck mit hinterlegter weißer Schraffur. Ich hoffe ihr versteht mein Anliegen. LG Dimitra
------------------ geht nicht.. gibts nicht Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 30. Okt. 2012 14:07 <-- editieren / zitieren --> Unities abgeben: Nur für Dimitra75
|
Dimitra75 Mitglied Bauzeichnerin
Beiträge: 58 Registriert: 14.03.2005
|
erstellt am: 30. Okt. 2012 14:14 <-- editieren / zitieren --> Unities abgeben:
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 30. Okt. 2012 15:12 <-- editieren / zitieren --> Unities abgeben: Nur für Dimitra75
|
Dimitra75 Mitglied Bauzeichnerin
Beiträge: 58 Registriert: 14.03.2005
|
erstellt am: 31. Okt. 2012 08:13 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank für die schnelle Hilfe, ich bin sprachlos. Mein Chef sagt das ist mehr Wert als ein Strauß Rosen! Also dann vielen lieben Dank für die Blumen LG Dimitra ------------------ geht nicht.. gibts nicht Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 31. Okt. 2012 08:47 <-- editieren / zitieren --> Unities abgeben: Nur für Dimitra75
|
CADxxx Mitglied Vermesser
Beiträge: 2 Registriert: 30.09.2013
|
erstellt am: 30. Sep. 2013 20:23 <-- editieren / zitieren --> Unities abgeben: Nur für Dimitra75
|
Andreas Kraus Mitglied Elektrotechniker
Beiträge: 1356 Registriert: 11.01.2006 Win 10 ACAD 2022
|
erstellt am: 01. Okt. 2013 07:57 <-- editieren / zitieren --> Unities abgeben: Nur für Dimitra75
Hallo CADxxx, grundsätzlich kann man alles gegen etwas anderes austauschen. Die Frage ist nur: Was soll beim Austausch in welcher Weise berücksichtigt werden ? Hier also: Welche Daten der Schraffur sollen den entsprechen den Block wie beeinflussen ? - wo liegt der Einfügepunkt ? ... Geometrisches Mittel der Schraffur ? - wie wird die Skalierung ermittelt ? ... Skalierung der Schraffur ? - Blockdrehung ? ... Schraffurwinkel ? - Gibt es Attribute ? - Farbe, Linientyp, - und vielleicht noch irgendwas Erklär mal was du genau vorhast. ------------------ Geht nicht, gibts nicht Gruß Andreas http://kraus-cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADxxx Mitglied Vermesser
Beiträge: 2 Registriert: 30.09.2013
|
erstellt am: 01. Okt. 2013 20:00 <-- editieren / zitieren --> Unities abgeben: Nur für Dimitra75
Hallo Andreas, die Eigenschaften der Schraffur sind nicht zu berücksichtigen. Der Einfügepunkt des Blockes ist der Mittelpunkt der Schraffur. Wenn das auch noch geht, der Block soll parallel zur nächstliegende Linie sein. Im Anhang ist ein Beispiel. Vielen Dank im Voraus! [Diese Nachricht wurde von CADxxx am 01. Okt. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Moderator CAD4FM UG
Beiträge: 1968 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 02. Okt. 2013 08:17 <-- editieren / zitieren --> Unities abgeben: Nur für Dimitra75
die basis einer Schraffur kannst du so ermitteln Code: (if(and (setq ent (car (entsel "\nSchraffur wählen:"))) (setq obj (vlax-ename->vla-object ent)) (not(vlax-invoke-method obj 'GetBoundingBox 'pt1 'pt2)) ) (if(setq basept (mapcar '* '(0.5 0.5 0.5) (mapcar '+ (vlax-safearray->list pt1) (vlax-safearray->list pt2))) basept (trans basept 0 1)) (command"_insert" "BLOCKNAME" basept "1" "1" "0") ) )
Die Ausrichtung des Inserts wird aber dann schwieriger, da erst das Linienobjekt gefunden werden muss. Programmtechnisch sicher lösbar. ------------------ Gruß CADwiesel Besucht uns im CHAT
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Kraus Mitglied Elektrotechniker
Beiträge: 1356 Registriert: 11.01.2006 Win 10 ACAD 2022
|
erstellt am: 02. Okt. 2013 09:25 <-- editieren / zitieren --> Unities abgeben: Nur für Dimitra75
Ja, ist lösbar. Das hat Spass gemacht. Mal was anderes. Ich hab mit neu erstellten Umgrenzungen gearbeitet, weil ich ja nicht sicher sein kann dass schon assoziative Umgrenzungen da sind. Hier das Lisp (ohne Fehlerbearbeitung, einfach dreckig runtergetippt): Code: (defun c:hatch2blk (/ BASEPT DATA ENT_DATA MEM_AUNITS OBJ PT1 PT2 W) (command "_undo" "_be") (setq mem_aunits (getvar "aunits")) (setvar "aunits" 3) (foreach ent (vl-remove-if-not '(lambda (dummy) (= (type dummy) 'ENAME)) (mapcar 'cadr (ssnamex (ssget '((0 . "HATCH"))))) );;; hier der Teil von CADWiesel (if (and (setq obj (vlax-ename->vla-object ent)) (not (vlax-invoke-method obj 'GetBoundingBox 'pt1 'pt2)) ) (if (setq basept (mapcar '* '(0.5 0.5 0.5) (mapcar '+ (vlax-safearray->list pt1) (vlax-safearray->list pt2) ) ) basept (trans basept 0 1) ) ;;; hier, vor der Blockeinfügung, die Ermittlung der nächstgelegenen Linie ;;; (naja, nicht nur Linie. Wenn wenn ein Bogensegment gefunden wird, wird das verwendet. Das hab ich jetzt nicht extra raugefiltert.) (progn (command "_-hatchedit" ent "_b" "_p" "_y") (setq ent_data (entget ent)) (setq w (cadar (vl-sort (mapcar '(lambda (obj) (list (distance basept (vlax-curve-getClosestPointTo obj basept ) ) (angle basept (vlax-curve-getClosestPointTo obj basept ) ) ) ) (mapcar '(lambda (data) (vlax-ename->vla-object (cdr (assoc -1 data))) ) (vl-remove-if '(lambda (data) (= (cdr (assoc 0 data)) "BLOCK_RECORD") ) (mapcar 'entget (mapcar 'cdr (vl-remove-if-not '(lambda (data) (= (car data) 330)) ent_data ) ) ) ) ) ) '(lambda (d1 d2) (< (car d1) (car d2))) ) ) ) ;;; und rein mit dem Block (command "_insert" "kreuz" basept "1" "1" w) ) ) ) ;;; Wenn die neu erstellten Umgrenzungen bestehen bleiben sollen, dieses mapcar auskommentieren (mapcar 'vla-delete (mapcar '(lambda (data) (vlax-ename->vla-object (cdr (assoc -1 data))) ) (vl-remove-if '(lambda (data) (= (cdr (assoc 0 data)) "BLOCK_RECORD")) (mapcar 'entget (mapcar 'cdr (vl-remove-if-not '(lambda (data) (= (car data) 330)) ent_data ) ) ) ) ) ) ;;; Schraffur löschen (entdel ent) ) (setvar "aunits" mem_aunits) (command "_undo" "_e") (princ) )
------------------ Geht nicht, gibts nicht Gruß Andreas http://kraus-cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |