| |
| 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: Versetzen auf gemessener Strecke (473 mal gelesen)
|
Dober Heinz Mitglied Technischer Zeichner
Beiträge: 1146 Registriert: 20.12.2002 Autocad 2021/64B Win10 WORKSTATION Intel(R) CPU E5-1620 3.60GHz 32 GB Ram 64 Bit-Betriebssystem HP Designjet T7200 Grafik NVIDIA Quadro P4000 ZWCAD2021
|
erstellt am: 10. Nov. 2005 08:31 <-- editieren / zitieren --> Unities abgeben:
Hallo habe mir ein Lisp geschrieben, wo ich eine Stecke Messe, diese Strecke dann teile und eine Linie auch dieser Strecke versetzten lass. aber das Versetzten funkt nicht so richtig. (defun c:mteilen (/ tei-len) (setq pt1 (getpoint "\nAnfangspunkt eingeben: ")) (setq pt2 (getpoint "\nEndpunkt eingeben: ")) (setq lange (distance pt1 pt2)) (setq teil (getint "\nWieviele Linien: ")) (setq tei-len (/ lange teil)) (setq entset (entsel)) (setq Element (car entset)) (setq side_point (getpoint "\n Punkt auf Seite angeben, auf die versetzt werden soll: " ) ) (repeat teil (command "_.offset" tei-len Element side_point "") (setq dummy (entlast) tei-len (+ tei-len ) ) ) ) kann mir ein Profi helfen danke
------------------ Heinz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mkl-cad Mitglied Technischer Zeichner
Beiträge: 378 Registriert: 23.07.2003 ACAD 2002 Express Tools 1-9 Architektural Desktop Windows XP Server Windows 2003 3 GHz Rechner 1 GB RAM 80 GB Festplatte ATI FireGL V3100 2 17" Flachbildschirme
|
erstellt am: 10. Nov. 2005 09:09 <-- editieren / zitieren --> Unities abgeben: Nur für Dober Heinz
Hallo (defun c:mteilen (/ tei-len) (setq pt1 (getpoint "\nAnfangspunkt eingeben: ")) (setq pt2 (getpoint "\nEndpunkt eingeben: ")) (setq lange (distance pt1 pt2)) (setq teil (getint "\nWieviele Linien: ")) (setq tei-len (/ lange teil)) (setq entset (entsel)) (setq Element (car entset)) (setq side_point (getpoint "\n Punkt auf Seite angeben, auf die versetzt werden soll: " ) ) (repeat teil (command "_.offset" tei-len Element side_point "") (setq Element (entlast) tei-len (+ tei-len ) ) ) ) Gibt nur ein Problem wenn der Richtungspunkt innerhalb der neuen Linien angegeben wird. Dann werden die Linien teilseise in eine andere Richtung versetzt. ------------------ Martin Viele Grüße aus dem schönen Münsterland! [Diese Nachricht wurde von mkl-cad am 10. Nov. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dober Heinz Mitglied Technischer Zeichner
Beiträge: 1146 Registriert: 20.12.2002
|
erstellt am: 10. Nov. 2005 09:20 <-- editieren / zitieren --> Unities abgeben:
@ mkl-cad Danke funkt schick dir 10 u Gibt nur ein Problem wenn der Richtungspunkt innerhalb der neuen Linien angegeben wird. Dann werden die Linien teilseise in eine andere Richtung versetzt. Bei ganz vielen Linien ergibt sich ein Rechenfehler. Kann ich das lösen oder muss ich damit leben. ------------------ Heinz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
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: 10. Nov. 2005 09:23 <-- editieren / zitieren --> Unities abgeben: Nur für Dober Heinz
Hallo Heinz, ich würde eine weitere Variable verwenden für den zu versetzenden Abstand. => vs-len In der Schleife wird jedesmal der Wert tei-len aufaddiert. Code:
(defun c:mteilen (/ tei-len vs-len) (setq pt1 (getpoint "\nAnfangspunkt eingeben: ")) (setq pt2 (getpoint "\nEndpunkt eingeben: ")) (setq lange (distance pt1 pt2)) (setq teil (getint "\nWieviele Linien: ")) (setq tei-len (/ lange teil)) (setq entset (entsel)) (setq Element (car entset)) (setq side_point (getpoint "\n Punkt auf Seite angeben, auf die versetzt werden soll: " ) ) (setq vs-len tei-len) (repeat teil (command "_.offset" vs-len Element side_point "") (setq dummy (entlast) vs-len (+ vs-len tei-len) ) ) )
------------------ viele Grüße Jörn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 10. Nov. 2005 09:24 <-- editieren / zitieren --> Unities abgeben: Nur für Dober Heinz
@Heinz ... in deinem Prog schribst du (setq pt1 (getpoint "\nAnfangspunkt eingeben: ")) (setq pt2 (getpoint "\nEndpunkt eingeben: ")) (setq lange (distance pt1 pt2)) verwendest aber Pt1 und pt2 nie mehr .. nimm doch gleich stattdessen (initget (+ 1 2 4)) (setq lange(getdist "\Länge eingeben:")) das initget sorgt dafür, das nur pos. Werte > 0 akzepiert werden. ------------------ - 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 |
mkl-cad Mitglied Technischer Zeichner
Beiträge: 378 Registriert: 23.07.2003 ACAD 2002 Express Tools 1-9 Architektural Desktop Windows XP Server Windows 2003 3 GHz Rechner 1 GB RAM 80 GB Festplatte ATI FireGL V3100 2 17" Flachbildschirme
|
erstellt am: 10. Nov. 2005 09:24 <-- editieren / zitieren --> Unities abgeben: Nur für Dober Heinz
Hallo Das mit dem Rechenfehler war ein Fehler von mir. Sorry. Hatt diagonal einen Punkt angegeben und mich gewundert das die Linien weiter versetzt wurden als gedacht. Das mit der Punktangabe könnte man höchstens umgehen wenn man mit kopieren arbeitet und nicht mit versetzten. Kann das aber nicht weiter ausarbeiten da ich noch etwas arbeiten muß. ------------------ Martin Viele Grüße aus dem schönen Münsterland! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mkl-cad Mitglied Technischer Zeichner
Beiträge: 378 Registriert: 23.07.2003 ACAD 2002 Express Tools 1-9 Architektural Desktop Windows XP Server Windows 2003 3 GHz Rechner 1 GB RAM 80 GB Festplatte ATI FireGL V3100 2 17" Flachbildschirme
|
erstellt am: 10. Nov. 2005 09:27 <-- editieren / zitieren --> Unities abgeben: Nur für Dober Heinz
Ne quatsch. Du kannst am besten immer das erste Element versetzen. Dann ist das mit der Richtungsangabe Wurst. Dann halt immer den Abstand zum versetzen ändern. ------------------ Martin Viele Grüße aus dem schönen Münsterland! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dober Heinz Mitglied Technischer Zeichner
Beiträge: 1146 Registriert: 20.12.2002
|
erstellt am: 10. Nov. 2005 09:34 <-- editieren / zitieren --> Unities abgeben:
|
mkl-cad Mitglied Technischer Zeichner
Beiträge: 378 Registriert: 23.07.2003 ACAD 2002 Express Tools 1-9 Architektural Desktop Windows XP Server Windows 2003 3 GHz Rechner 1 GB RAM 80 GB Festplatte ATI FireGL V3100 2 17" Flachbildschirme
|
erstellt am: 10. Nov. 2005 09:40 <-- editieren / zitieren --> Unities abgeben: Nur für Dober Heinz
Hallo Hier doch noch mein fertiger Vorschlag: (defun c:mteilen (/ lange teil Element tei-len abstand side_point) (initget (+ 1 2 4)) (setq lange(getdist "\Länge eingeben:")) (setq teil (getint "\nWieviele Linien: ")) (setq tei-len (/ lange teil)) (setq abstand tei-len) (setq entset (entsel)) (setq Element (car entset)) (setq side_point (getpoint "\n Punkt auf Seite angeben, auf die versetzt werden soll: " ) ) (repeat teil (command "_.offset" tei-len Element side_point "") (setq tei-len (+ tei-len abstand )) ) )
------------------ Martin Viele Grüße aus dem schönen Münsterland! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dober Heinz Mitglied Technischer Zeichner
Beiträge: 1146 Registriert: 20.12.2002
|
erstellt am: 10. Nov. 2005 09:46 <-- editieren / zitieren --> Unities abgeben:
|