| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Request a special discount on NVIDIA RTX 5000 Ada Generation GPU !, eine Pressemitteilung
|
Autor
|
Thema: Signaturen auf/in Bögen (885 mal gelesen)
|
Geos Mitglied Vermessungstechniker i.R.
Beiträge: 1017 Registriert: 21.09.2001 ACAD Map 2010, Win 7 Pro eigene Lisp's<P>HW: Core i7 860, 2.8 GHz 3.3 GB, NVIDIA GeForce GTS 250
|
erstellt am: 06. Aug. 2008 15:30 <-- editieren / zitieren --> Unities abgeben:
Grüß Euch Zwischen gebogene "Linien" - in der Regel ausgerundete PLINEs oder ARCs - sollen Signaturen gezeichnet werden. Im Beispiel (Bild) handelt es sich um eine ausgerundete PLINE, die Symbole (Blöcke) wurden mit _MEASURE eingefügt. Das zu proggen wäre auch kein Problem. Jetzt soll das Ganze aber noch behübscht werden - sprich die INSERTs gesprengt und die einzelnen Linien auf die Begrenzungslinien (blau) gedehnt / gestutzt werden. Seht Ihr da Lösungsmöglichkeiten (in LISP )? Bin auch für halbe Lösungen/Ansätze/Ideen dankbar. ------------------ Schöne Grüße Ernst www.geopaint.at Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 - 2014 Arcibem System: Windows 2000, XP, NO VISTA Internet-Startseite: http://www.archi.de
|
erstellt am: 06. Aug. 2008 16:35 <-- editieren / zitieren --> Unities abgeben: Nur für Geos
Hallo Ernst, Du könntest mit der Methode vla-intersectwith nach dem Auflösen die Schnittpunkte der Linien mit den Polylinien ermitteln, und dann die Linien entsprechend entmod'en. Grüsse, Henning ------------------ Henning Jesse VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure http://www.voxelman.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Geos Mitglied Vermessungstechniker i.R.
Beiträge: 1017 Registriert: 21.09.2001 ACAD Map 2010, Win 7 Pro eigene Lisp's<P>HW: Core i7 860, 2.8 GHz 3.3 GB, NVIDIA GeForce GTS 250
|
erstellt am: 07. Aug. 2008 07:00 <-- editieren / zitieren --> Unities abgeben:
|
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 07. Aug. 2008 07:37 <-- editieren / zitieren --> Unities abgeben: Nur für Geos
|
heidi Mitglied CAD-Dienstleister
Beiträge: 1132 Registriert: 01.11.2001
|
erstellt am: 07. Aug. 2008 08:53 <-- editieren / zitieren --> Unities abgeben: Nur für Geos
Hallo Ernst, ich würde den Block auch über eine zusätzliche Mittellinie und einem Blockeinfügepunkt ebenfalls in der Mitte des Objektes einfügen. Jetzt verteilst du den Block nur über den linken unteren Punkt auf einer Außenlinie. Über die Mitte kommt das in den Rundungen auch schon besser hin .
------------------ Gruß Heidi http://www.cad-point.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Kraus Mitglied Elektrotechniker
Beiträge: 1455 Registriert: 11.01.2006 WIN 10 ACAD 2022 BricsCAD V23
|
erstellt am: 07. Aug. 2008 09:35 <-- editieren / zitieren --> Unities abgeben: Nur für Geos
@Ernst Polylinie als Mittellinie erzeugen und mit Messen oder Teilen (mußt du selbst wissen was besser passt) einen Block mit nur einem Querstrich auf dieser Polylinie verteilen. Für die Skalierung verwendest du den Abstand der äußeren Polylinien. Wenn du jetzt einen Auswahlsatz "vorher" erzeugst ist lustigerweise die Reihenfolge der Objekte im Auswahlsatz schön der Reihe nach sortiert also könntest du einfach vier Objekte überspringen, die nächsten z.B. acht löschen, wieder vier überspringen, ... So etwa (nur so als Grundgerüst): (defun c:xxx () (command "_undo" "_be") (if (setq satz (ssget '((0 . "LWPOLYLINE")))) (progn (setq pl1 (entget (ssname satz 0))) (setq pl2 (entget (ssname satz 1))) (setq d (distance (cdr (assoc 10 pl1)) (cdr (assoc 10 pl2)))) (command "_offset" (/ d 2.0) (ssname satz 0) (cdr (assoc 10 pl2)) "") (command "_.MEASURE" (setq e_last (entlast)) "_b" "x" "_y" 10) (entdel e_last) (if (setq satz (ssget "_p")) (progn (setq n 0) (setq m 1) (repeat (sslength satz) (setq ent_name (ssname satz n)) (if (< m 5) (command "_scale" ent_name "" (cdr (assoc 10 (entget ent_name))) d) (entdel ent_name) ) (setq m (1+ m)) (if (= m 12) (setq m 1) ) (setq n (1+ n)) ) ) ) ) ) (command "_undo" "_e") (princ) ) Gruß Andreas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Geos Mitglied Vermessungstechniker i.R.
Beiträge: 1017 Registriert: 21.09.2001 ACAD Map 2010, Win 7 Pro eigene Lisp's<P>HW: Core i7 860, 2.8 GHz 3.3 GB, NVIDIA GeForce GTS 250
|
erstellt am: 07. Aug. 2008 10:19 <-- editieren / zitieren --> Unities abgeben:
Servus Danke Jörn Jetzt weiß ich auch, warum mir das irgendwie bekannt vorkam - naja, Alzheimer läßt grüßen Hab' in der Zwischenzeit auch etwas herumgesucht, und dabei das gefunden: http://ww3.cad.de/foren/ubb/Forum145/HTML/000302.shtml#00001 Zitat: (setq a1 (vlax-ename->vla-object (car (entsel)))) ; 1. wählen (setq a2 (vlax-ename->vla-object (car (entsel)))) ; 2.wählen (setq ret (vlax-invoke a1 "IntersectWith" a2 acExtendBoth)) ; schnittpunkt(e)
Komisch, hier heißt die Funktion vlax-invoke (bei Axel vlax-invoke-method) und liefert bereits eine Punktliste ? Zitat: Die vordefinierte Konstante acExtendNone hat den Wert 0 und zeigt an, dass Schnittpunkte auf 'gedachten' Verlängerungen nicht gewünscht sind
Gut, die Signaturen könnte man so abändern, dass sie die Begrenzungslinien auf jeden Fall schneiden. Trotzdem liefert mir Axels Beispielprogramm mehrere Schnittpunkte, auch wenn's einen reellen Schnittpunkt gibt. Aber mit Fuchsi's Beispiel funkts: Code: (defun c:is( / ) (vl-load-com) (if (setq p (vlax-invoke (vlax-ename->vla-object (car(entsel "\nErstes Objekt wählen: "))) "IntersectWith" (vlax-ename->vla-object (car(entsel "\nZweites Objekt wählen: "))) acExtendNone ) ) (command"_point" p) ) )
Die Idee mit "Hilfsblock" (der verwendete ist für die Geraden vorgegeben) und Hilfslinien ist auch nicht zu verachten. Andreas, Deine Lösung / Programm werd ich mir gleich anschauen - muss es nur etwas umbauen (ARCs, (Heavy-)POLYLINEs). Danke Euch allen, ich glaub' damit komm ich klar.
------------------ Schöne Grüße Ernst www.geopaint.at Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |