| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY bietet das umfangreichste Ökosystem von B2B als auch B2C-Lösungen für IT-Akteure auf dem Markt, eine Pressemitteilung
|
Autor
|
Thema: Linie editieren (2080 mal gelesen)
|
jukni Mitglied Techniker
Beiträge: 175 Registriert: 28.03.2002 Autocad 2006 -WIN XP Prof. -Intel Core2 Duo E6700-4GB -PNY Quadro FX3500
|
erstellt am: 25. Feb. 2003 15:59 <-- editieren / zitieren --> Unities abgeben:
Hallo. Wir arbeiten mit Autocad 2002. Folgendes Problem: Ich zeichne eine gerade Linie mit dem Befehl Linie. Diese Linie besitzt 3 Griffe,links, mitte und rechts. Nun möchte ich den mittleren Griff anfassen und nach oben oder unten verziehen sodas eine Linie mit einem Knick in der Mitte entsteht. Weis jemand wie ich das angehen kann oder hat jemand eine Lisp die das bewerkstelligt. Danke Jürgen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Schachinger Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2041 Registriert: 08.04.2002 AIS2009, PDSU 2012-2015, Plant 3D 2011-2015, NavisWorks 2010-2015, Win7 64bit SP1, Intel Core i7 870, 16 GB RAM, Quadro 2000D
|
erstellt am: 25. Feb. 2003 16:04 <-- editieren / zitieren --> Unities abgeben: Nur für jukni
|
heidi Mitglied CAD-Dienstleister
Beiträge: 1132 Registriert: 01.11.2001 Dell Precicion M6700 Nvidia Quadro K3000M AutoCAD 2012 Sp2 nXtRender Tetra4D eigene Tools Adobe CreativeSuite 6 ——————————— MacBook Pro i9 2,3/16/5 Big Sur 11.5.1 BricsCAD V21 Pro
|
erstellt am: 25. Feb. 2003 16:19 <-- editieren / zitieren --> Unities abgeben: Nur für jukni
Hallo Jürgen, eine Linie besteht aus einer Geraden mit einem Anfangs- und einem Endpunkt. Willst du aus der Linie nun zwei Linien machen, musst du sie zuerst brechen und dann erst kannst du diesen neuen Punkt (genauer gesagt zwei Punkte) verschieben. Der mittlere Anfasser in der Linie, den AutoCAD dir bietet, ist nur dafür da, um die gesamte Linie zu verschieben. Über die anderen beiden Anfasser kannst du jeweils die Linie strecken oder kürzen. Gruß Heidi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Angelika Hädrich Ehrenmitglied V.I.P. h.c. Application Engineer
Beiträge: 5123 Registriert: 12.07.2000 Der erreicht am meisten, der immer auch anders kann, als er vorhatte.
|
erstellt am: 25. Feb. 2003 16:22 <-- editieren / zitieren --> Unities abgeben: Nur für jukni
|
Schachinger Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2041 Registriert: 08.04.2002 AIS2009, PDSU 2012-2015, Plant 3D 2011-2015, NavisWorks 2010-2015, Win7 64bit SP1, Intel Core i7 870, 16 GB RAM, Quadro 2000D
|
erstellt am: 25. Feb. 2003 16:29 <-- editieren / zitieren --> Unities abgeben: Nur für jukni
|
gmk Mitglied Dipl.-Ing.(FH) Vermessung
Beiträge: 669 Registriert: 23.10.2002 Autocad 2004, WS CadCompass, Normica V2000, WinXP Prof., AMD Athlon 64 X2, 2GB, NVIDIA GeForce 7600GS, HP1055CM
|
erstellt am: 26. Feb. 2003 08:23 <-- editieren / zitieren --> Unities abgeben: Nur für jukni
Hi Jürgen! lb teilt dir die Strecke in der Mitte. (defun C:lb ( / element p1 p2 p3) (SETQ element (ENTGET (CAR (ENTSEL "Bitte Linie wählen")))) (SETQ p1 (CDR(ASSOC 10 element))) (SETQ p2 (CDR(ASSOC 11 element))) (setq p3 (strcat (rtos (+ (car p1) (* (- (car p2) (car p1)) 0.5)) 2 8) "," (rtos (+ (cadr p1) (* 0.5 (- (cadr p2) (cadr p1)))) 2 8) ",0.0")) (command "_break" p3 "@") ) Ciao Georg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jukni Mitglied Techniker
Beiträge: 175 Registriert: 28.03.2002 Autocad 2006 -WIN XP Prof. -Intel Core2 Duo E6700-4GB -PNY Quadro FX3500
|
erstellt am: 26. Feb. 2003 10:09 <-- editieren / zitieren --> Unities abgeben:
Hallo Georg, leider halbiert mir deine Lisp nur die Linie. Ich brauche folgendes: Die normale Linie soll durch eine Polylinie ersetzt werden. Diese Polyline soll den gleichen Layer und die gleichen End und Mittelpunkte haben. Danke Jürgen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mapcar Mitglied CADmin
Beiträge: 1250 Registriert: 20.05.2002 Time flies like an arrow, fruit flies like a banana (Groucho Marx)
|
erstellt am: 26. Feb. 2003 10:39 <-- editieren / zitieren --> Unities abgeben: Nur für jukni
Hi Jürgen, versuch's mal hiermit - macht allerdings aus einer Linie zwei, also keine Polylinie. >> Diese Polyline soll den gleichen Layer und die gleichen End und Mittelpunkte haben. Dann kann sie allerdings keinen Knick haben, denn dann wäre sie geometrisch identisch mit der Linie;-) Hier der Code, ohne Errorhandling usw.: (defun c:knicken( / ent p3 p10 p11 xordraw get-pt) (defun xordraw(p1 p2 p3 / ) (grdraw p1 p3 -1) (grdraw p2 p3 -1) ) (defun get-pt(p1 p2 / p pp) (setq pp(grread'T 1)) (xordraw p1 p2(cadr pp)) (while(= 5(car(setq p(grread 'T 1)))) (xordraw p1 p2(cadr pp)) (xordraw p1 p2(cadr p)) (setq pp p) ) (xordraw p1 p2(cadr pp)) (if(= 3(car p))p) ) (if(=(cdr(assoc 0(setq ent(entget(car(entsel))))))"LINE") (if(setq p3(cadr(get-pt(setq p10(cdr(assoc 10 ent)))(setq p11(cdr(assoc 11 ent)))))) (progn (entmake(subst(cons 10 p3)(assoc 10 ent)ent)) (entmod(subst(cons 11 p3)(assoc 11 ent)ent)) ) ) ) ) Gruss, Axel ------------------ Meine AutoLisp-Seiten Meine private Homepage Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze Meine Überzeugung... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jukni Mitglied Techniker
Beiträge: 175 Registriert: 28.03.2002 Autocad 2006 -WIN XP Prof. -Intel Core2 Duo E6700-4GB -PNY Quadro FX3500
|
erstellt am: 26. Feb. 2003 11:36 <-- editieren / zitieren --> Unities abgeben:
|
cad-lisp Mitglied Holztechniker
Beiträge: 12 Registriert: 13.02.2003
|
erstellt am: 26. Feb. 2003 11:52 <-- editieren / zitieren --> Unities abgeben: Nur für jukni
Hallo Jürgen, hier einmal ein Versuch, eine Linie in eine Polyline zu ändern, mit zusätzlichen Stützpunkt in der Mitte. Gruß cad-lisp (defun c:li_pl ( / WAHL) ;;Funktion ersetzt eine Linie durch eine Polylinie ;;mit zusätzlichem Stützpunkt in der Mitte ;;Farbe und Layer bleibt erhalten ;;Objekthöhe und Erhebung gehen verloren (nur 2d) (setq wahl (entsel "\nBitte eine Linie auswählen:")) (cond (wahl (setq wahl (entget(car wahl))) (cond ((equal (cdr (assoc 0 wahl))"LINE") (f:line_to_polyline wahl) ) ('T (princ "\n*** Falsche Auswahl! ***")) ) ) ('T (princ "\n*** Es wurde nichts ausgewählt! ***")) ) (princ) ) (defun f:line_to_polyline (daten / EP FA LA MP OLD_FAR OLD_LAY SP WI) (setq old_lay (getvar "CLAYER")) (setq old_far (getvar "CECOLOR")) (setq sp (cdr(assoc 10 daten)) ep (cdr(assoc 11 daten)) wi (angle sp ep) mp (polar sp wi (/ (distance sp ep) 2)) la (cdr(assoc 8 daten)) fa (cdr(assoc 62 daten)) ) (setvar "CLAYER" la) (if fa (setvar "CECOLOR" (itoa fa)) (setvar "CECOLOR" "256") ) (entmake (list (cons 0 "POLYLINE") (cons 8 la))) (entmake (list (cons 0 "VERTEX")(cons 42 0.0 )(cons 10 sp))) (entmake (list (cons 0 "VERTEX")(cons 42 0.0 )(cons 10 mp))) (entmake (list (cons 0 "VERTEX")(cons 42 0.0 )(cons 10 ep))) (entmake (list (cons 0 "SEQEND"))) (command "_erase" (cdr (assoc -1 daten)) "") (setvar "CLAYER" old_lay) (setvar "CECOLOR" old_far) )
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2494 Registriert: 02.11.2001 Windows 10 64bit AutoCAD Architecture 2018/2019 (deu/eng) AEC-Collection 2019 (Revit und Zeugs) Wenn sich's nicht vermeiden läßt: D-A-CH Erweiterung (mies implementierter Schrott)
|
erstellt am: 26. Feb. 2003 12:07 <-- editieren / zitieren --> Unities abgeben: Nur für jukni
Hi, ich hab' auch noch einen... Code:
(defun C:XL2PL (/) ;;; Geklaut von Axel Strubbe-Zettler ;-) (defun XORDRAW (P1 P2 P3 /) (grdraw P1 P3 -1) (grdraw P2 P3 -1) ) ;_ end of defun (defun GET-PT (P1 P2 / P PP) (setq PP (grread 't 1)) (XORDRAW P1 P2 (cadr PP)) (while (= 5 (car (setq P (grread 't 1)))) (XORDRAW P1 P2 (cadr PP)) (XORDRAW P1 P2 (cadr P)) (setq PP P) ) ;_ end of while (XORDRAW P1 P2 (cadr PP)) (if (= 3 (car P)) P ) ;_ end of if ) ;_ end of defun ;;; Geklaut von Axel Ende (princ "Linien wählen...") (setq ENAME (car (entsel))) (if (= (cdr (assoc 0 (setq EDATA (entget ENAME)))) "LINE" ) ;_ end of = (progn (setq XENAME (vlax-ename->vla-object ENAME) PKT (vlax-curve-getpointatparam XENAME (/ (vlax-curve-getendparam XENAME) 2) ) ;_ end of vlax-curve-getPointAtParam ) ;_ end of setq ;;; Nochmal geklaut von Axel (if (setq P3 (cadr (GET-PT (setq P10 (cdr (assoc 10 EDATA))) (setq P11 (cdr (assoc 11 EDATA))) ) ;_ end of get-pt ) ;_ end of cadr ) ;_ end of setq (setq PKT P3) ) ;_ end of if ;;; Geklaut Ende (command "_.pedit" ENAME "_y" "_e" "_i" PKT "_x" "") (princ "\nOK, Linie zur Polylinie konvertiert !" ) ;_ end of princ ) ;_ end of progn (princ "\nKeine Linie gewählt !") ) ;_ end of if (princ) ) ;_ end of defun
------------------ Ciao, Marc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jukni Mitglied Techniker
Beiträge: 175 Registriert: 28.03.2002 Autocad 2006 -WIN XP Prof. -Intel Core2 Duo E6700-4GB -PNY Quadro FX3500
|
erstellt am: 26. Feb. 2003 12:13 <-- editieren / zitieren --> Unities abgeben:
|