Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  LINIE in eine Richtung

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  LINIE in eine Richtung (1708 mal gelesen)
m-troeger
Mitglied
gel. Bauzeichner; Vermessungszeichner, Vermesser im Außendienst, GIS-Erfassung in PARIS


Sehen Sie sich das Profil von m-troeger an!   Senden Sie eine Private Message an m-troeger  Schreiben Sie einen Gästebucheintrag für m-troeger

Beiträge: 295
Registriert: ..

ACAD14 und 2005;
MAP4; GeoCAD; PARIS;
( Vermessung )

erstellt am: 21. Sep. 2004 20:26    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo zusammen,

es ist doch möglich bein zeichnen einer Linie nach der Startpunk eine Richtung zu definieren ( <45.00g )

Befehl: linie
Ersten Punkt angeben:
Nächsten Punkt angeben oder [Zurück]: <45.00g
Winkel überschreiben: 41
Nächsten Punkt angeben oder [Zurück]:

LISP schluckt folgendes aber nicht!
(command "_LINE" '(10 10) "<45.00g" pause)

Habt Ihr eine Idee wie sowas hinbekomme?

------------------
Servus,
Mario 

www.the-skier.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mapcar
Mitglied
CADmin



Sehen Sie sich das Profil von mapcar an!   Senden Sie eine Private Message an mapcar  Schreiben Sie einen Gästebucheintrag für mapcar

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 22. Sep. 2004 01:53    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für m-troeger 10 Unities + Antwort hilfreich

Ich glaube, das hat seinen guten Grund, dass Lisp das nicht schluckt: Das ist ein interaktiver Modus, bei dem es darauf ankommt, wohin die Maus gerade zeigt. Das ist einfach nicht programmierbar...

Gruß, Axel Strube-Zettler

------------------
(defun - Lisp over night - AutoLisp-Programmierung für AutoCad - Da weiß man, wann man's hat
Meine AutoLisp-Seiten Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



Sehen Sie sich das Profil von CAD-Huebner an!   Senden Sie eine Private Message an CAD-Huebner  Schreiben Sie einen Gästebucheintrag für CAD-Huebner

Beiträge: 9732
Registriert: 01.12.2003

One AutoCAD 2.5 - 2023, Civil 3D, Win10/win11

erstellt am: 22. Sep. 2004 08:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für m-troeger 10 Unities + Antwort hilfreich

So könnte man es machen - aber wozu das gut sein soll?

Code:

; auf einen anständigen *error*-Handler habe ich hier verzichtet, sollte aber
; normalerweise nicht fehlen
(DEFUN C:L45D ()
  (SETQ omode (GETVAR "ORTHOMODE")
snapa (GETVAR "SNAPANG")
  )
  (SETVAR "ORTHOMODE" 1)
  (SETVAR "SNAPANG" (ANGTOF "45d"))
  (SETQ startpkt '(10.0 10.0 0.0))
  (SETQ endpkt (GETPOINT startpkt "\nEndpunkt der Linie angeben:"))
  (IF endpkt
    (COMMAND "_LINE" Startpkt endpkt "")
  )
  (SETVAR "ORTHOMODE" omode)
  (SETVAR "SNAPANG" snapa)
  (PRIN1)
)

Mit freundlichem Gruß

Udo Hübner

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Geos
Mitglied
Vermessungstechniker i.R.


Sehen Sie sich das Profil von Geos an!   Senden Sie eine Private Message an Geos  Schreiben Sie einen Gästebucheintrag für Geos

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: 22. Sep. 2004 08:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für m-troeger 10 Unities + Antwort hilfreich

Hi Mario

Man könnte den Vorschlag von Udo noch "erweitern" und mit (polar) den nächsten Punkt rechnen (dann gehts nicht nur mit 45 Grad):
winkkorr = Winkel eingeben
winkel = (+ (angle startpkt endpkt) winkkorr)
strecke = (getdist)
neupunkt = (polar endpkt winkel strecke)
(command "_line" endpkt neupkt "")

Nur ein Denkanstoss, da ich nicht weiß, welche (Winkel)Einheiten Du verwendest.

------------------
Gruß, Ernst

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

m-troeger
Mitglied
gel. Bauzeichner; Vermessungszeichner, Vermesser im Außendienst, GIS-Erfassung in PARIS


Sehen Sie sich das Profil von m-troeger an!   Senden Sie eine Private Message an m-troeger  Schreiben Sie einen Gästebucheintrag für m-troeger

Beiträge: 295
Registriert: ..

ACAD14 und 2005;
MAP4; GeoCAD; PARIS;
( Vermessung )

erstellt am: 22. Sep. 2004 18:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


bild.jpg

 
Vielen Dank erstmal,

auch wenn es keine rechte Lösung gibt.
Das ganze benötige ich für ein Prog für eine Othogonale Bemaßung.
Das Prog soll aber nicht nur bemaßen können, sondern Maße auch oth. absetzen können.
Der Effekt beim Linie Befehl ist, das ich einen Winkel angeben kann, wobei ich aber ebenfalls in die entgegengesetzte Richtung zeichnen kann, je nachdem wie ich mit der Maus picke.

d.h. Bemaßung aus einer Gebäudekante -> Picken 1.Ecke, 2.Ecke, daraus ergiebt sich die Richtung, nun möchte ich auf der Abzisse(Gebäudekante) z.B. eine Länge von 3.0 abtragen und die Richtung manuell per Maus wählen -> also Richtung von 1.Ecke zu 2.Ecke (grün) oder eben von 2.Ecke zur 1.Ecke (gelb), wobei immer von der 1.Ecke aus die Maße abgetragen werden sollen.( Also über die Gebäudekante hinaus verlängern [gelb], oder auf der Gebäudekande abtragen [grün])Selbiges soll dann mit den Ordinaten geschen, wo die Richtung jeweils +/-50gon der Abszisse beträgt (ausgezogen/gestrichelt).


------------------
Servus,
Mario   

www.the-skier.de

[Diese Nachricht wurde von m-troeger am 22. Sep. 2004 editiert.]

[Diese Nachricht wurde von m-troeger am 22. Sep. 2004 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Björn Möller
Mitglied



Sehen Sie sich das Profil von Björn Möller an!   Senden Sie eine Private Message an Björn Möller  Schreiben Sie einen Gästebucheintrag für Björn Möller

Beiträge: 96
Registriert: 22.03.2004

AutoCad Map 2012,Topobase 2,Rasterdesign

erstellt am: 23. Sep. 2004 10:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für m-troeger 10 Unities + Antwort hilfreich

Hi Mario,
vielleicht hilft Dir das

(DEFUN C:KLEINPKT (/ BJ:P1X BJ:P1 BJ:P2X BJ:P2 BJ:ABSIZZE BJ RDINATE BJ:P3 BJ:P4)
  (SETVAR "cmdecho" 0)
  (SETQ BJ:P1X (getpoint "\n Startpunkt:"))
  (SETQ BJ:P1 (LIST (CAR BJ:P1X) (CADR BJ:P1X) 0.0))
  (SETQ BJ:P2X (getpoint BJ:P1 "\n Ausrichtung:"))
  (SETQ BJ:P2 (LIST (CAR BJ:P2X) (CADR BJ:P2X) 0.0))
  (SETQ BJ:ABSIZZE  (* (GETDIST "\nGeben Sie die Abzizze ein: ") -1))
  (SETQ BJ RDINATE (GETDIST "\nGeben Sie die Ordinate ein (links minus): "))
  (COMMAND "BKS" "NEU" "3P" BJ:P1 BJ:P2 "")
  (SETQ BJ:P3 (TRANS (List BJ:ABSIZZE 0.0 0.0) 1 0))
  (SETQ BJ:P4 (TRANS (List BJ:ABSIZZE BJ RDINATE 0.0) 1 0))
  (COMMAND "BKS" "WELT")
  (COMMAND "_dimaligned" BJ:P1 BJ:P3 BJ:P3)
  (COMMAND "_dimaligned" BJ:P3 BJ:P4 BJ:P4)
  (COMMAND "_point" BJ:P4)
)

Björn

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



Sehen Sie sich das Profil von marc.scherer an!   Senden Sie eine Private Message an marc.scherer  Schreiben Sie einen Gästebucheintrag für marc.scherer

Beiträge: 2490
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: 23. Sep. 2004 15:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für m-troeger 10 Unities + Antwort hilfreich

Uhhhhh!
Herzlich Willkommen Herr Möller im Lisp-Forum :grins.
Hat ja lang gedauert, bis Du das mal gefunden hast...
Und dann gleich hier mit echtem Code prahlen :lol.

Edit:
Ach ja Du mußt beim posten von code am besten die UBB Steuerzeichen
für code drumrumbasteln und manchmal auch die smilies deaktivieren, sonnst bekommst Du immer so 'n "müden" Code   angezeigt...
Ubb-Code:

Code:

"[code ]Dein Code[ /code]"


------------------
Ciao,
Marc
   

[Diese Nachricht wurde von marc.scherer am 23. Sep. 2004 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

m-troeger
Mitglied
gel. Bauzeichner; Vermessungszeichner, Vermesser im Außendienst, GIS-Erfassung in PARIS


Sehen Sie sich das Profil von m-troeger an!   Senden Sie eine Private Message an m-troeger  Schreiben Sie einen Gästebucheintrag für m-troeger

Beiträge: 295
Registriert: ..

ACAD14 und 2005;
MAP4; GeoCAD; PARIS;
( Vermessung )

erstellt am: 23. Sep. 2004 21:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke Euch für eure Bemühungen.

Es wird mir wohl nichts anderes übrig bleiben wie mit snapang zu arbeiten (Der Winkel ist entsprechend der Richtung vom 1. zum 2.Eckpunkt).
Es wäre halt genial wenn nach Eingabe einer Länge zB. die Abszissenlinie in dieser Länge vom Eckpunkt1 aus vorangezeigt würde und man nit der Maus die endgültige Richtung festlegt.
Also muß ich wohl den Weg über die Fangfunktionen mit dem Polarer Abstand und snapang gehen.

Und mit diesem inaktiven Modus ist echt nichts zu machen ???
Schade, da könnte man einiges damit machen.

Danke Euch nochmal.

------------------
Servus,
Mario  

www.the-skier.de

mich hat einfach die Orthogonalbemaßung von MS + PARIS-Aufsatz auf solche wirren Ideen gebracht

[Diese Nachricht wurde von m-troeger am 23. Sep. 2004 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Dabrunz
Mitglied



Sehen Sie sich das Profil von Dabrunz an!   Senden Sie eine Private Message an Dabrunz  Schreiben Sie einen Gästebucheintrag für Dabrunz

Beiträge: 127
Registriert: 28.05.2003

erstellt am: 28. Sep. 2004 15:17    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für m-troeger 10 Unities + Antwort hilfreich

Zitat:
[..]
Und mit diesem inaktiven Modus ist echt nichts zu machen ???
Schade, da könnte man einiges damit machen.

Doch, da geht noch was - ist aber 'ne Menge Arbeit und recht unlecker in der Programmierung.

Schon mal was von grread und grdraw gehört?

Ich bastle mal eine Beispiel-Funktion :getpoint-mouseVerfolgung, mit der nicht nur ein vom User gewählter Punkt zurück gegeben wird, sondern die auch eine übergebene Funktion mit der aktuellen Mauszeiger-Position ausführt, wenn die sich verändert.

Code:

(defun :getpoint-mouseVerfolgung (#tracking-procedure / input inputType)
  ;**** Initialisierung - <Tracking-Procedure>  ****
  (setq #tracking-procedure(eval #tracking-procedure))
  ;**** Initialisierung - Werte                ****
  (setq input    (grread'tracking-on 1)
        inputType'initialisierung
  )
  ;**** Mouse-Move-Loop ****
  (while (/= 3 inputType)
    (setq input    (grread'tracking-on 1)
          inputType(car input)
    )
    ;**** nur Bewegung -> <Tracking-Procedure> auf letzten Punkt anwenden
    (if(= 5 inputType)(#tracking-procedure (cadr input)))
  )
  ;**** Punkt 'gepickt' -> Rückgabe    ****
  (if (= 3 inputType) (cadr input))
)

Was hier passiert kann frau sich mal vergegenwärtigen, wenn sie exemplarisch diesen Aufruf ausprobiert:

Code:
(:getpoint-mouseVerfolgung'print)

Das intern verwendete grread ist viel mächtiger, aber ich denke für unsere Zwecke sollte die von mir gewählte Vereinfachung erstmal genügen.

Aber ACHTUNG: grread kennt keinen OFang! Wer den braucht, muss ihn sich selber basteln - gibt ja immerhin die Funktion osnap. Hatte ich übrigens erwähnt, dass es keine besonders komfortable Lösung ist ..

So, das ist die halbe Miete. Was fehlt ist nun noch eine Möglichkeit schicke Gummibänder zu malen (besser: malen zu lassen) und das soll grdraw für uns erledigen. Um zu zeigen, wie das geht auch hierzu eine kleine Beispiel-Funktion:

Code:

(defun :getpoint-fueArme (#anfang / )
  (:getpoint-mouseVerfolgung
    (function(lambda(track-point)
      (redraw);** Holzhammer, aber räumt den grdraw-Kram gründlich ab
      (grdraw #anfang track-point 1 0);** Farbe 1 <-> rot, 0 <-> kein HighLighting
    )); end LAMBDA
  )
)

Hier kann ein Aufruf so aussehen:

Code:
(:getpoint-fuerArme'(0 0 0))

Wer ein wenig mit der Funktion herum experimentiert, wird feststellen, dass die letzte Gummiband-Linie nicht verschwindet. Das lässt sich entweder innerhalb der Funktion beheben oder es wird noch einmal ein (redraw) hinterher geschickt. Ich ändere mal die Funktions-Definition, brauche dann aber eine interne Variable extra:

Code:

(defun :getpoint-fueArme (#anfang / rueckgabe)
  (setq rueckgabe (:getpoint-mouseVerfolgung
                    (function(lambda(track-point)
                      (redraw)
                      (grdraw #anfang track-point 1 0)
                    ))
                  )
  )
  (redraw)
  rueckgabe
)

Aber ACHTUNG: Transparente Menüaufrufe funktionieren hier nicht! Allerdings ist wie bereits erwähnt grread viel mächtiger und auch solche Aufrufe lassen sich verarbeiten, sie müssen nur en detail auseinander gepuzzlet werden. Hatte ich eigendlich darauf hingewiesen, dass der Lösungs-Ansatz ein wenig unbequem zu programmieren ist?

Ich denke mal, diese Vorschläge dürften für den einen oder anderen Denkanstoss sorgen - bin mal gespannt, wie's weiter geht.

Achim Dabrunz

------------------

[Diese Nachricht wurde von Dabrunz am 28. Sep. 2004 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP



Inhouse Consultant Teamcenter (m/w/d)

Was vor mehr als 100 Jahren mit einer Fahrradkette begann, hat sich heute zu einem weltweit führenden Unternehmen der Branche und Technologieführer für hochwertige Systeme und Komponenten für Automobil- und Industrieanwendungen entwickelt.

Im attraktiven Arbeitsumfeld eines Familienunternehmens arbeiten wir in kleinen, dynamischen Teams mit flachen Hierarchien und kurzen Entscheidungswegen....

Anzeige ansehenConsulting, Engineering
CADwiesel
Moderator
CAD4FM UG




Sehen Sie sich das Profil von CADwiesel an!   Senden Sie eine Private Message an CADwiesel  Schreiben Sie einen Gästebucheintrag für CADwiesel

Beiträge: 1968
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 28. Sep. 2004 16:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für m-troeger 10 Unities + Antwort hilfreich

hast du schon Spur probiert?

Ich finde damit klappt das auch ziemlich gut - evtl in Verbindung mit Fang Nächster

------------------
Gruß
CADwiesel
Besucht uns im CHAT

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz