| |
| 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: zeichnen->punkt->messen (784 mal gelesen)
|
helmut51 Mitglied bautechniker
Beiträge: 244 Registriert: 12.08.2003 ACAD2008 deutsch
|
erstellt am: 20. Okt. 2004 16:55 <-- editieren / zitieren --> Unities abgeben:
ich möchte auf einer linie(oder polylinie) punkte absetzen, deren abstände differieren. Also nicht n* den abstand X, sondern beginnen mit Abstand A, dann B usw. fällt jemanden etwas ein? danke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
IBS BOH Mitglied
Beiträge: 212 Registriert: 22.09.2004 Windows 2000 AutoCAD 2004 SP 1a Expresstools 2004 Deutsch HP DesignJet 800
|
erstellt am: 20. Okt. 2004 16:58 <-- editieren / zitieren --> Unities abgeben: Nur für helmut51
Hallo. Ich würde eine Polylinie zeichnen mit den Stützpunkten im passenden Abstand und dann einfach die Punkte auf die Stützpunkte der PL verteilen. Ansonsten den Befehl teilen wählen, oder versetzten vielleicht? IBS BOH Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 20. Okt. 2004 16:58 <-- editieren / zitieren --> Unities abgeben: Nur für helmut51
|
helmut51 Mitglied bautechniker
Beiträge: 244 Registriert: 12.08.2003 ACAD2008 deutsch
|
erstellt am: 21. Okt. 2004 08:19 <-- editieren / zitieren --> Unities abgeben:
hallo IBS: bitte frage nochmals lesen und antwort (spez. was teilen betrifft) überdenken hallo cadffm: LISP funktioniert leider nur auf Linie(dazu haätte ich mir den aufwand erspart und Koordinatensystem temporär gedreht), schon bei Kreisbogen geht es nicht, geschweige denn bei Polylinie. Aber der Ansatz ist genau der richtige Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
helmut51 Mitglied bautechniker
Beiträge: 244 Registriert: 12.08.2003 ACAD2008 deutsch
|
erstellt am: 22. Okt. 2004 07:34 <-- editieren / zitieren --> Unities abgeben:
|
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: 22. Okt. 2004 08:31 <-- editieren / zitieren --> Unities abgeben: Nur für helmut51
und mit mehrfach Kopieren schaffst Du das nicht? siehe Anhang Befehl: _copy 1 gefunden Basispunkt oder Verschiebung: Zweiten Punkt der Verschiebung angeben oder <ersten Punkt der Verschiebung verwenden>: @30<0 Zweiten Punkt der Verschiebung angeben: @60<0 Zweiten Punkt der Verschiebung angeben: @100<0 Zweiten Punkt der Verschiebung angeben: @175<0 Zweiten Punkt der Verschiebung angeben: @225<0 .... Gruß Angelika ------------------ Lieber Fehler riskieren als Initiative verhindern. (Reinhard Mohn)
Bitte Supportangaben eintragen, warum siehst du hier : 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: 22. Okt. 2004 08:37 <-- editieren / zitieren --> Unities abgeben: Nur für helmut51
Hallo, vielleicht hilft Dir folgendes LISP-Tool, durch Eingabe von Station und Abstand zu einer Linie, Polylinie oder Bogen wird ein Punkt gezeichnet. Aber bitte die Ergebnisse prüfen, es ist nur auf die schnelle geschrieben!!! ;;; Es werden Punkte auf dem aktuellem Layer gezeichnet entsprechend den Stationsangaben ;;; Wenn die Station größer als die Länge des Elementes ist, dann gibt es einen Fehler ;;; Beenden durch zweimalige Leereingabe (defun c:stat (/ pick_pkt aws stat abstand) (vl-load-com) (setq pick_pkt (entsel "\nBitte wählen Sie die Linie, PL oder Bogen aus:")) (if pick_pkt (progn (setq aws (ssadd (car pick_pkt)) pick_pkt (cadr pick_pkt) stat_richtung (JB_32_pl_richtung pick_pkt (ssname aws 0)) ) ;;;stat_richtung, wenn Pickpunkt näher am Anfang, dann 0, sonst 1 (setq stat (getreal "\nStation eingeben:") abstand (getreal "\nAbstand zur Achse eingeben(positiv oder negativ):" ) ) (while (and stat abstand) (JB_32_point (ssname aws 0) stat abstand stat_richtung) (setq stat (getreal "\nStation eingeben:") abstand (getreal "\nAbstand zur Achse eingeben(positiv oder negativ):" ) ) ) ) (alert "\nDas war kein gültiges Element.") ) ) (defun JB_32_pl_dist (*objektname /) (vlax-curve-getdistatpoint (vlax-ename->vla-object *objektname) (vlax-curve-getEndPoint (vlax-ename->vla-object *objektname) ) ) ) (defun JB_32_pl_richtung (*pick_pkt *objektname /) (if (< (vlax-curve-getDistAtPoint (vlax-ename->vla-object *objektname) (vlax-curve-getClosestPointTo (vlax-ename->vla-object *objektname) *pick_pkt ) ) (/ (JB_32_pl_dist *objektname) 2.0) ) 0 1 ) ) (defun JB_32_point (*objektname *station *abstand *stat_richtung / pkt) (cond ((= *stat_richtung 0) (setq pkt (vlax-curve-getPointAtDist (vlax-ename->vla-object *objektname) *station ) ) (command "_point" (polar pkt (- (angle '(0 0 0) (vlax-curve-getFirstDeriv (vlax-ename->vla-object *objektname) (vlax-curve-getParamAtPoint (vlax-ename->vla-object *objektname) pkt ) ) ) (/ pi 2) ) *abstand ) ) ) ((= *stat_richtung 1)
(setq pkt (vlax-curve-getPointAtDist (vlax-ename->vla-object *objektname) (- (JB_32_pl_dist *objektname) *station) ) ) (command "_point" (polar pkt (- (angle '(0 0 0) (vlax-curve-getFirstDeriv (vlax-ename->vla-object *objektname) (vlax-curve-getParamAtPoint (vlax-ename->vla-object *objektname) pkt ) ) ) (/ pi 2) ) *abstand ) ) ) ) )
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
helmut51 Mitglied bautechniker
Beiträge: 244 Registriert: 12.08.2003 ACAD2008 deutsch
|
erstellt am: 22. Okt. 2004 08:55 <-- editieren / zitieren --> Unities abgeben:
muss mein problem wohl exakter formulieren. ich will die verschiedenen abstände auf linien UND kreisen UNDpolylines(siehe meine FRAGE-und die können aus geraden streckenanteilen oder kreisabschnitten oder beidem bestehen) absetzen und ich weiss auch, wie ich es mit den vorhandenen werkzeugen machen kann. ich suche nach einer komfortablen lösung, welche mir z.B. einen punkt im abstand 0.568,den nächsten im abstand 1.25 usw setzt. das ganze in einer routine mit fortlaufender abfrage der abstände. Ablauf: starten von LISP-routine zeigen des objektes(die gezeigte seite bestimmt, von welchem ende aus gemessen wird) gib den 1.Abstand: gib den 2.Abstand( 0 = programmende): . . gib den n.Abstand( 0 = programmende): 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: 22. Okt. 2004 09:02 <-- editieren / zitieren --> Unities abgeben: Nur für helmut51
|
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: 22. Okt. 2004 09:12 <-- editieren / zitieren --> Unities abgeben: Nur für helmut51
Hallo nochmal, Jetzt muß ich nochmal nachfragen. Du sagst Du willst einen Punkt in einem betimmtem Abstand von einer Linie, meinetwegen auch Polyline mit einem Abstandsmaß absetzen? OK. Aber ich bin der Meinung, daß auch die Station auf der Linie bekannt sein muß, sonst ist die Lage des abzusetzenden Punktes nicht eindeutig bestimmt. Bei meiner LISP-Routine wird folgendermaßen abgefragt: starten von LISP-routine zeigen des objektes(die gezeigte seite bestimmt, von welchem ende aus gemessen wird) gib den 1. Stationswert an: z.B 5.00m gib den 1.Abstand: z.B -2.75m => Bei Station 5.00m und y -2.75m wird Punkt 1 eingefügt gib den 2. Stationswert an: z.B 15.00m gib den 2.Abstand: z.B 2.75m => Bei Station 15.00m und y 2.75m wird Punkt 2 eingefügt . . 2x ENTER (Leereingabe für Station und Abstand) und das war es.
------------------ viele Grüße Jörn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
helmut51 Mitglied bautechniker
Beiträge: 244 Registriert: 12.08.2003 ACAD2008 deutsch
|
erstellt am: 22. Okt. 2004 09:28 <-- editieren / zitieren --> Unities abgeben:
hallo joern, danke für deine mühe. leider sind aber noch bug's drinnen. Bsp: linie ist 20E lang. meine eingabe 2-0-3-0-4-0-abbruch ergibt 4punkte am geradenbeginn, die eingabe 2-0-10-0-abbruch ergibt einen punkt am anfang und einen im abstand 10, ist also schwer nachvollziehbar. dieselben eingaben bei kreisabschnitt ergeben im bsp1 3 punkte am beginn und im bsp2 2 punkte am beginn(?). lg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
helmut51 Mitglied bautechniker
Beiträge: 244 Registriert: 12.08.2003 ACAD2008 deutsch
|
erstellt am: 22. Okt. 2004 09:36 <-- editieren / zitieren --> Unities abgeben:
hallo jörn ich meinte eigentlich AUF der linie, d.h. keinen seitabstand - aber abstand 0 soll nicht das problem sein und ich meinte der zweite abstand soll vom vorhergehend punkt gemessen werden also in deinem bsp 2.statwert 15.00 ergibt punkt bei stat 20.00 viele grüsse 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: 22. Okt. 2004 10:13 <-- editieren / zitieren --> Unities abgeben: Nur für helmut51
Hallo Helmut, das Du keine Seitenabstände brauchst erklärt meinen gedanklichen Klemmer, also, die LISP-Routine noch mal überarbeitet: -Es sind keine geschlossenen Polylinine erlaubt -Bei Kreisen werden die Punkte fortlaufend angeordnet Probier es einfach aus, wenn irgendetwas nicht passen sollten, dann mußt Du mal probieren das Tool noch ein bißchen anzupassen, denn ich muß gleich weg. Also schönes Wochenende) ;;; Es werden Punkte auf dem aktuellem Layer gezeichnet entsprechend den Stationsangaben ;;; Beenden durch Leereingabe ;;; geschlossen Polylinien sind nicht erlaubt (defun c:stat (/ pick_pkt aws stat stat_richtung) (vl-load-com) (setq pick_pkt (entsel "\nBitte wählen Sie die Linie, PL, Bogen oder Kreis aus:")) (if (and pick_pkt (not (and (or(=(cdr(assoc 0 (entget (car pick_pkt))))"POLYLINE") (=(cdr(assoc 0 (entget (car pick_pkt))))"LWPOLYLINE")) (=(cdr(assoc 70 (entget (car pick_pkt))))1)))) (progn (setq aws (ssadd (car pick_pkt)) pick_pkt (cadr pick_pkt) stat_richtung (JB_32_pl_richtung pick_pkt (ssname aws 0)) ) (setq stat 22) ;;;stat_richtung, wenn Pickpunkt näher am Anfang, dann 0, sonst 1 (while (= stat 22) (setq stat (getreal "\nStation eingeben (Ende Leereingabe):")) (if stat (if (/=(cdr(assoc 0(entget(ssname aws 0))))"CIRCLE") (cond ((> stat (JB_32_pl_dist (ssname aws 0))) (alert "Die Station war länger als das Element, neue Eingabe") (setq stat 22)) ((< stat 0.0) (alert "Die Stationsangabe muß größer Null sein.") (setq stat 22)))))) (while stat (JB_32_point (ssname aws 0) stat stat_richtung) (setq stat 22) (while (= stat 22) (setq stat (getreal "\nStation eingeben (Ende Leereingabe):")) (if stat (if (/=(cdr(assoc 0(entget(ssname aws 0))))"CIRCLE") (cond ((> stat (JB_32_pl_dist (ssname aws 0))) (alert "Die Station war länger als das Element, neue Eingabe") (setq stat 22)) ((< stat 0.0) (alert "Die Stationsangabe muß größer Null sein.") (setq stat 22)))))) ) ) (alert "\nDas war kein gültiges Element.") ) (princ) ) (defun JB_32_pl_dist (*objektname /) (vlax-curve-getdistatpoint (vlax-ename->vla-object *objektname) (vlax-curve-getEndPoint (vlax-ename->vla-object *objektname) ) ) ) (defun JB_32_pl_richtung (*pick_pkt *objektname /) (if (< (vlax-curve-getDistAtPoint (vlax-ename->vla-object *objektname) (vlax-curve-getClosestPointTo (vlax-ename->vla-object *objektname) *pick_pkt ) ) (/ (JB_32_pl_dist *objektname) 2.0) ) 0 1 ) )
(defun JB_32_point (*objektname *station *stat_richtung / pkt)
(cond ((= *stat_richtung 0) (setq pkt (vlax-curve-getPointAtDist (vlax-ename->vla-object *objektname) *station ) ) (command "_point" (polar pkt (- (angle '(0 0 0) (vlax-curve-getFirstDeriv (vlax-ename->vla-object *objektname) (vlax-curve-getParamAtPoint (vlax-ename->vla-object *objektname) pkt ) ) ) (/ pi 2) ) 0.0 ) ) ) ((= *stat_richtung 1) (setq pkt (vlax-curve-getPointAtDist (vlax-ename->vla-object *objektname) (- (JB_32_pl_dist *objektname) *station) ) ) (command "_point" (polar pkt (- (angle '(0 0 0) (vlax-curve-getFirstDeriv (vlax-ename->vla-object *objektname) (vlax-curve-getParamAtPoint (vlax-ename->vla-object *objektname) pkt ) ) ) (/ pi 2) ) 0.0 ) ) ) ) )
------------------ viele Grüße Jörn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
helmut51 Mitglied bautechniker
Beiträge: 244 Registriert: 12.08.2003 ACAD2008 deutsch
|
erstellt am: 22. Okt. 2004 12:48 <-- 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: 22. Okt. 2004 13:09 <-- editieren / zitieren --> Unities abgeben: Nur für helmut51
hallo Helmut, ich habe Deine Datei unter ACAD2002 ausprobiert, und es funktioniert. Ich habe jeweils von Anfang oder vom Ende der Linie begonnen, es geht. Ich habe für die Punkte zwei verschiedene LAyer verwendet, so daß Du es nachvollziehen kannst. In der Zip-Datei ist die lsp Datei im Original, vielleicht ist ja beim kopieren etwas schiefgegangen. Jetzt aber schönes Wochenende ------------------ viele Grüße Jörn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3336 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 22. Okt. 2004 20:52 <-- editieren / zitieren --> Unities abgeben: Nur für helmut51
|
helmut51 Mitglied bautechniker
Beiträge: 244 Registriert: 12.08.2003 ACAD2008 deutsch
|
erstellt am: 23. Okt. 2004 17:40 <-- editieren / zitieren --> Unities abgeben:
hallo jörn, jetzt ist meine verwirrung perfekt. auf meinem laptop zuhause mit ACAD2004 funktioniert alles SUPER ( 10 U's). im büro werde ich erst am montag wieder schauen können, warum es nicht funktioniert. vielleicht ist tipp von CADchup die lösung. 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: 24. Okt. 2004 07:42 <-- editieren / zitieren --> Unities abgeben: Nur für helmut51
Hallo Helmut, und falls der Objektfang doch aktiv ist, dann muß die Variable "OSNAPCOORD" auf 1 stehen =>Tastatureinträge setzen Objektfangeinstellungen außer Kraft. ------------------ viele Grüße Jörn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
helmut51 Mitglied bautechniker
Beiträge: 244 Registriert: 12.08.2003 ACAD2008 deutsch
|
erstellt am: 25. Okt. 2004 07:52 <-- editieren / zitieren --> Unities abgeben:
|