| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | | | PNY wird von NVIDIA zum Händler des Jahres gewählt – zum dritten Mal in Folge, eine Pressemitteilung
|
Autor
|
Thema: Linie versetzen um Prozentwert der Länge (3095 mal gelesen)
|
Walter Zettlitzer Mitglied Dipl.-Ing (FH)
Beiträge: 228 Registriert: 25.07.2002 WIN 2000, WINXP, ACAD 2002, ACAD 2004, Appl. ProStahl 3D
|
erstellt am: 26. Nov. 2003 11:00 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, obigen Fall habe ich ziemlich oft. Jedes Mal muss ich die Länge l1 der Linie nehmen, mit dem Rechner die Länge l2=X * l1 ausrechnen und die Linie um dieses Maß versetzen. Kann man dies einfach programmieren? z.B. Linie anklicken, Prozentwert eingeben, Seite anklicken oder B für beide? Danke & schöne Grüße, Walter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 26. Nov. 2003 11:36 <-- editieren / zitieren --> Unities abgeben: Nur für Walter Zettlitzer
in etwa so: Befehl: Myversetz Objekt wählen: linie antippen Prozent eingeben: 10 Punkt auf Seite angeben, auf die versetzt werden soll: punkt picken (defun c:MyVersetz (/) (while (setq ename (car (entsel))) (setq edate (entget ename)) (cond ((= (cdr (assoc 0 edate)) "LINE") (setq dist (distance (cdr (assoc 10 edate)) (cdr (assoc 11 edate))))
(setq proz (getreal (strcat "\nProzent eingeben :"))) (command "versetz" (* 0.01 proz dist) ename PAUSE "") ) ) ) ) ------------------ *********************************************** AutoCad 2000i, 2002, 2004 deutsch und englisch Windows 2000, NT, XP Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fuchsi Mitglied Programmierer c#.net Datawarehouse
Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 26. Nov. 2003 11:41 <-- editieren / zitieren --> Unities abgeben: Nur für Walter Zettlitzer
habs noch etwas verbessert ! jetzt merkt sich der befehl die letzte Prozent-eingabe und schlägt diese als vorschlag vor man braucht dann, wenn man immer die gleiche prozent-anzahl braucht nur mit enter bestätigen (defun c:MyVersetz (/ ename edate dist proz) (while (setq ename (car (entsel "\nLinie wählen : "))) (setq edate (entget ename)) (cond ((= (cdr (assoc 0 edate)) "LINE") (setq dist (distance (cdr (assoc 10 edate)) (cdr (assoc 11 edate)))) (if (not tmpProz) (setq tmpProz 10)) (setq proz (getreal (strcat "\nProzenteingeben <" (rtos tmpproz 2 2) "> :"))) (if (not proz) (setq proz tmpproz) (setq tmpproz proz)) (command "versetz" (* 0.01 proz dist) ename PAUSE "") ) ) ) ) ------------------ *********************************************** AutoCad 2000i, 2002, 2004 deutsch und englisch Windows 2000, NT, XP Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Walter Zettlitzer Mitglied Dipl.-Ing (FH)
Beiträge: 228 Registriert: 25.07.2002 WIN 2000, WINXP, ACAD 2002, ACAD 2004, Appl. ProStahl 3D
|
erstellt am: 26. Nov. 2003 11:42 <-- editieren / zitieren --> Unities abgeben:
|
Brischke Moderator CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 26. Nov. 2003 11:54 <-- editieren / zitieren --> Unities abgeben: Nur für Walter Zettlitzer
Hallo Walter, so geht's:
Code:
(defun c:mvs (/ ld ln abst prze) (princ "\nLinie wählen: ") (setq ld (ssget "_:S" '((0 . "LINE")))) (if ld (progn (setq prze (getreal (strcat "\nProzentwert <" (if prz (rtos (* 100.0 prz) 2 2) "100") ">: " ) ) prz (if prze (/ prze 100.0) prz) ld (entget (setq ln (ssname ld 0))) abst (* prz (distance (cdr(assoc 10 ld))(cdr(assoc 11 ld)))) ) (command "_.offset" abst ln) ) (progn(princ "\nKeine Linie gewählt!")(princ)) ) )
Bei Fragen ... Grüße Holger ------------------ Holger Brischke (defun - Lisp over night! AutoLISP-Programmierung für AutoCAD NEU: AutoLISP- Projektschulung NEU: Praxisorientierte Schulungen und Workshops durch die bekannten CAD.de Moderatoren AutoCAD, AutoCAD LT, AutoCAD Mechanical, Mechanical Desktop, Architectural Desktop Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|