| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Linie ersetzen durch Kopie (364 mal gelesen)
|
Attilio Mitglied Technischer Zeichner
Beiträge: 150 Registriert: 18.02.2003 ACAD2012 MEP, ACAD2015 MEP Revit 2015 Windows 7, 64 bit
|
erstellt am: 07. Nov. 2007 12:05 <-- editieren / zitieren --> Unities abgeben:
Hallo Gemeinde, mein Problem : Ich bräuchte eine Möglichkeit, mehrere Linien durch die Kopie einer anderen Linie zu ersetzen, und diese Kopie dann in der Länge der ersetzen Linie anzupassen. Hintergrund : Diese "vorgegebene" Linie ist mit Hintergrundinformationen versehen, die unserem ACAD-Aufsatz sagt : Da is ne Wand, die is 3m hoch ! Da ich jede einzelne Wand einzeln abfahren müsste um diese Info zu vergeben, würde ich gerne die vorhandenen Raumpolygone nutzen, um mir diese Arbeit zu ersparen. Polygone in Ursprung setzen, dann hab ich ja Linien. Dann bräuchte ich ne Funktion, die alle diese Linien mit der einmal erstellten "Info-Linie" tauscht und in der Länge anpasst. Eigenschaften übernehmen funktioniert leider nicht. Die Infos scheinen nicht in der Linie gespeichert zu sein, zumindest gibt "Liste" keine angehängten Daten preis. Ich denke dass läuft im Hintergrund in der Datenbank unserer Software ab. Die Linie kopieren funktioniert, die Information ist dann auch in der kopierten Linie vorhanden. So, ich hoffe wie immer, dass ich das halbwegs verständlich rübergebracht habe und Ihr mir irgendwie helfen könnt.
Gruss Attilio 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: 07. Nov. 2007 12:16 <-- editieren / zitieren --> Unities abgeben: Nur für Attilio
mach mal (entget(car(entsel"\nINFOLINIE WÄHLEN: "))'("*")) und poste das Ergebnis.Ich hab die Vermutung, dass die Infos als XDATA gespeichert sind. ------------------ - 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 |
Attilio Mitglied Technischer Zeichner
Beiträge: 150 Registriert: 18.02.2003 ACAD2012 MEP, ACAD2015 MEP Revit 2015 Windows 7, 64 bit
|
erstellt am: 07. Nov. 2007 13:09 <-- editieren / zitieren --> Unities abgeben:
Bitte schön... INFOLINIE WÄHLEN: ((-1 . <Objektname: 7c194518> ) (0 . "LINE") (330 . <Objektname: 7efdccb8> ) (5 . "2BDBB") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "E__VISW_INFO") (100 . "AcDbLine") (10 -4.86293 42.6082 0.0) (11 3.78751 42.6082 0.0) (210 0.0 0.0 1.0) (-3 ("ELCO" (1000 . "0001|ecIVisW") (1000 . "0013|2BDBB") (1000 . "0002|2BDBB") (1000 . "0320|0") (1000 . "0321|") (1000 . "0322|3"))))
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1734 Registriert: 11.10.2004
|
erstellt am: 07. Nov. 2007 13:27 <-- editieren / zitieren --> Unities abgeben: Nur für Attilio
Hallo Attilo, ich würde nach dem kopieren der Linien die Funktionalität Deines Aufsatzes prüfen, weil in den XDATEN das Handle der aktuellen Linie gespeichert ist. (5 . "2BDBB") => (1000 . "0013|2BDBB") (1000 . "0002|2BDBB") Wenn es keine Probleme gibt sollte man vieleicht nicht so sehr über die Kopie der Linien nachdenken, sondern über einen Weg, die Xdaten zu übertragen (z.B. wie beim Eigenschaften übertragen mit Quellobjekt und Zielobjekten) ------------------ viele Grüße Jörn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Attilio Mitglied Technischer Zeichner
Beiträge: 150 Registriert: 18.02.2003 ACAD2012 MEP, ACAD2015 MEP Revit 2015 Windows 7, 64 bit
|
erstellt am: 07. Nov. 2007 13:40 <-- editieren / zitieren --> Unities abgeben:
Hallo Jörn, die XDaten zu kopieren wäre wohl auch eine Möglichkeit. Ich habe die Linie mal kopiert und die Funktionalität geprüft, es geht. Man kann der Linie ja nur sagen ob sie eine Wand, Tür, Fenster oder Durchbruch ist, sowie die Höhe. Mehr Infos gibts nicht für die Linien. Reicht ja auch um Wandabwicklungen zu generieren. Ist das einfach zu realisieren, die XDaten zu kopieren ? Gruss Attilio
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Attilio Mitglied Technischer Zeichner
Beiträge: 150 Registriert: 18.02.2003 ACAD2012 MEP, ACAD2015 MEP Revit 2015 Windows 7, 64 bit
|
erstellt am: 07. Nov. 2007 14:33 <-- editieren / zitieren --> Unities abgeben:
Hmm, ich habe grade gesehen, dass es auch darauf ankommt in welche Richtung man die Linie zeichnet. Man muss immer von Links nach Rechts zeichnen, sonst steht die Wand verkehrt rum (bzw. die Symbole darauf). Ich schätze mal das macht die ganze Sache noch schwieriger bis unmöglich.... Gruss Attilio Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1734 Registriert: 11.10.2004
|
erstellt am: 07. Nov. 2007 14:36 <-- editieren / zitieren --> Unities abgeben: Nur für Attilio
Hallo Attilo, wie auch immer, die Xdaten müßtest Du theortisch mit folgendem LISP kopieren können, einfach mal ausprobieren. Code:
(defun c:xd_copy ( / AWS N OBJ XD) (if (and(setq obj (car (entsel "\nQuellobjekt auswählen:"))) (progn(princ "\nZielobjekte") (setq aws (ssget)))) (progn (setq xd (JBf_list_xdaten_read "ELCO" obj nil) n 0) (repeat (sslength aws) (JBf_list_xdaten_write "ELCO"(ssname aws n)xd) (setq n (+ n 1))))))(defun JBf_list_xdaten_write (app obj liste / ) (regapp app) (entmod(append (entget obj)(list(list -3 (cons app liste)))))) (defun JBf_list_xdaten_read (app obj gc_nr / liste) (setq liste(cdr(assoc app(cdr(assoc -3(entget obj (list app))))))) (if gc_nr (cdr(assoc gc_nr liste)) liste))
------------------ viele Grüße
Jörn 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: 07. Nov. 2007 14:39 <-- editieren / zitieren --> Unities abgeben: Nur für Attilio
Zitat: Original erstellt von Attilio: Hmm, ich habe grade gesehen, dass es auch darauf ankommt in welche Richtung man die Linie zeichnet. Man muss immer von Links nach Rechts zeichnen, sonst steht die Wand verkehrt rum (bzw. die Symbole darauf).Ich schätze mal das macht die ganze Sache noch schwieriger bis unmöglich.... Gruss Attilio
....zu dem Thema ... ------------------ - 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 |
Attilio Mitglied Technischer Zeichner
Beiträge: 150 Registriert: 18.02.2003 ACAD2012 MEP, ACAD2015 MEP Revit 2015 Windows 7, 64 bit
|
erstellt am: 07. Nov. 2007 14:54 <-- editieren / zitieren --> Unities abgeben:
@Jörn : Klasse !!! Es funktioniert !!! Super, vielen Dank für das LISP, die Unities sind dir !!! @Thomas : Ajo, so gehts natürlich auch.... ;-))) Auch dir Danke für den Stubser !!! Gruss Attilio
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |