Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Polylinien und Kreisbögen in einem Lisp

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:  Polylinien und Kreisbögen in einem Lisp (1150 mal gelesen)
aufi
Mitglied
Vermessungstechniker


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

Beiträge: 16
Registriert: 04.03.2009

erstellt am: 04. Mrz. 2009 13:31    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 Lisp Gemeinschaft, ich bin noch Lisp Anfänger und habe ien Problem beim Programmieren. Ich habe eine Pline erstellt mit (getpoint) diese danach versetzt und in der Mitte der beiden Linien einen Blöck mit messen erstellt.
Leider ist jetzt mein Wissen am Ende. Ich möcht nämlich nicht nur eine Pline mit Geraden sondern auch mit Kreisbogen (welchen ich mit (getpoint) definieren kann) erstellen, weiss aber nicht wie ich das anfangen soll.
Ich stell euch mein LISP Programm MAUER herein damit ihr seht was ich meine.
Vielleicht kann mir ja wer helfen.
Danke aufi

(defun c:Mauer (/ Breite pl wi wi1 pt1 pt2 pta ptb vpl)
;;********* Unterprogramm Faktorändern der Blöcke ***************
(defun Faktoraendern (/ inspt entnam c)
  (setq ss (ssget "X" (list (cons 0 "INSERT") (cons 8 "msymbolhilfe"))))
  (if ss
    (progn
      (repeat (sslength ss)
        (setq inspt (cdr (assoc 10 (entget (setq entnam (ssname ss (setq c (if c (1+ c) 0))))))))
        (command "_scale" entnam "" inspt Breite)))))
;;********* Unterprogramm Resizer änder Faktor der Blöcke ***************       
;;********* Unterprogramm Breite ****************************************
(defun Breite ()
(setq Breite (getreal "\nBreite eingeben in Meter (Aktuelle Breite = 0.25 m): "))
(if (null Breite) (setq Breite 0.25))
)
;;********* Unterprogramm Breite ****************************************
(setvar "CLAYER" "MAUER")
(setvar "CMDECHO" 0)
(Breite)
(command "_pline" (setq pta (setq pt1 (getpoint))) (setq ptb (setq pt1 (getpoint pt1))) "")
(setq pl (entlast))
(setq wi (angle pta ptb))
(setq wi1 (+ wi (/ Pi 2.0)))
  (while (setq pt2 (getpoint pt1))
  (command "_pline" pt1 pt2 "")
  (command "_pedit" (entlast) "_j" pl "" "")
  (setq pt1 pt2)
  (setq pl (entlast))
  )
(command "_.offset" Breite pl (polar pta wi1 10) "")
(setq vpl (entlast))
(setvar "CLAYER" "MAUER_K")
(command "_change" vpl "" "_p" "_la" "MAUER_K" "")
(command "_-layer" "_m" "MSYMBOLHILFE" "_s" "MSYMBOLHILFE" "")
(command "messen" pl "b" "Mauersymbol" "j" "20")
(Faktoraendern)
(command "_change" ss "" "_p" "_la" "MAUER_K" "")
(setvar "CLAYER" "0")
(command "-laydel" "_n" "msymbolhilfe" "" "_y")
(princ)
(setvar "CMDECHO" 1)
)

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 04. Mrz. 2009 14:10    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 aufi 10 Unities + Antwort hilfreich

??? sorry, aber ich verstehe es nicht ...

------------------
  - 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

Dorfy
Mitglied
Double-Dipl.-Ing. Bleistiftanspitzer


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

Beiträge: 900
Registriert: 21.07.2006

AutoCad2007, ProE, HiCad

erstellt am: 04. Mrz. 2009 14:11    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 aufi 10 Unities + Antwort hilfreich

Hi,

nur so als Gedanke

(command "_pline")
(while (/=(getvar "CMDACTIVE")0)(command pause))

Edit: siehe Befehlszeile ... Kreisbogen...

vllt reicht es ja schon...
mfg heiko

[Diese Nachricht wurde von Dorfy am 04. Mrz. 2009 editiert.]

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

aufi
Mitglied
Vermessungstechniker


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

Beiträge: 16
Registriert: 04.03.2009

erstellt am: 05. Mrz. 2009 14:16    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 Dorfy für die schnelle Antwort,

Aber kannst mir bitte helfen wie ich den Befehl in mein Lisp einbauen soll?.
Die ersten beiden Punkte der Pline soll immer eine Gerade sein die ich mit getpoint picke
und danach soll ich dann die Auswahl haben für Kreisbogen (normale Befehlszeile von acad) oder einer neuen Geraden mit getpoint.

mfg aufi

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 05. Mrz. 2009 14:25    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 aufi 10 Unities + Antwort hilfreich

mach einfach ein Bild oder ne dwg, was das Ergebnis des ganzen sein soll und lad es hoch ..

------------------
  - 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

Dorfy
Mitglied
Double-Dipl.-Ing. Bleistiftanspitzer


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

Beiträge: 900
Registriert: 21.07.2006

AutoCad2007, ProE, HiCad

erstellt am: 05. Mrz. 2009 14:30    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 aufi 10 Unities + Antwort hilfreich

Hi,
tausch mal die Zeilen oben gegen diese Zeile
(command "_pline" (setq pta (setq pt1 (getpoint))) (setq ptb (setq pt1 (getpoint pt1))) "")
vllt gefällt es ja schon
wenn nicht siehe CADmium
mfg heiko

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

Theodor Schoenwald
Ehrenmitglied



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

Beiträge: 1672
Registriert: 16.04.2002

erstellt am: 05. Mrz. 2009 14:44    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 aufi 10 Unities + Antwort hilfreich

Wenn ich einen Namen gefunden hätte,
könnte ich Dich mit Namen ansprechen.

Zu Deinem Problem ein ganz anderer Ansatz:

Es ist manchmal einfacher verschiedene Element wie Linien und Bögen als Linien und Bögen zu zeichnen und zum Schluss den Konturzug in eine Polylinie umzuwandeln.

Dabei funktioniert auch folgendes Beispiel:
Linie mit Bogen.
Eine Linie zeichnen und danach der Befehl Bogen verwenden.
Wenn dem Bogen kein Anfangspunkt gegeben wird, wird er automatisch tangential an die vorher gezeichnete Linie angeschlossen und es genügt die Angabe des Endpunkts.

Das Beispiel kannst Du per Hand durchspielen und wenn es nützlich ist, Deine Lispdatei um bauen.

Gruß
Theodor Schönwald

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

aufi
Mitglied
Vermessungstechniker


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

Beiträge: 16
Registriert: 04.03.2009

erstellt am: 06. Mrz. 2009 09:10    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 Dorfy,
Ich weiss schon das ich die Zeile austauschen kann, aber danach funktioniert das ganze Lisp nicht mehr.
Weil ich ja die ersten beiden Punkt benötige um die Richtung des Versatzes zuerstellen bzw. für das Einfügen der Blöcke mit messen.
mfg Aufi

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

Dorfy
Mitglied
Double-Dipl.-Ing. Bleistiftanspitzer


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

Beiträge: 900
Registriert: 21.07.2006

AutoCad2007, ProE, HiCad

erstellt am: 06. Mrz. 2009 09:18    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 aufi 10 Unities + Antwort hilfreich

Hi,
???
(command "_pline" (setq pta (setq pt1 (getpoint))) (setq ptb (setq pt1 (getpoint pt1))))
(while...)
mfg heiko

Edit: Brauchst du nur die ersten beiden Stützpunkte oder auch weitere?

[Diese Nachricht wurde von Dorfy am 06. Mrz. 2009 editiert.]

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

aufi
Mitglied
Vermessungstechniker


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

Beiträge: 16
Registriert: 04.03.2009

erstellt am: 06. Mrz. 2009 09:38    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


Mauer.dwg.txt

 
Hallo CADmium,
Anbei schicke ich Euch mal eine Zeichnung mit Erklärung.
Ich hoffe Ihr versteht was ich meine.
Die LISP steht ja eh schon ganz oben.
Lg Aufi

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

aufi
Mitglied
Vermessungstechniker


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

Beiträge: 16
Registriert: 04.03.2009

erstellt am: 06. Mrz. 2009 09:42    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

Hi Dorfy
Übrigens mein Name ist Aufi.
Und ich brauche für meine Lisp nur die ersten Beiden Stützpunkte.
mfg aufi

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

Dorfy
Mitglied
Double-Dipl.-Ing. Bleistiftanspitzer


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

Beiträge: 900
Registriert: 21.07.2006

AutoCad2007, ProE, HiCad

erstellt am: 06. Mrz. 2009 09:56    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 aufi 10 Unities + Antwort hilfreich

Hi AUFI
... schon ausprobiert?
mfg heiko

[Diese Nachricht wurde von Dorfy am 06. Mrz. 2009 editiert.]

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

aufi
Mitglied
Vermessungstechniker


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

Beiträge: 16
Registriert: 04.03.2009

erstellt am: 06. Mrz. 2009 10:00    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

Hi Dorfy
ja, Leider funktionierts nicht.
mfg aufi

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

Dorfy
Mitglied
Double-Dipl.-Ing. Bleistiftanspitzer


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

Beiträge: 900
Registriert: 21.07.2006

AutoCad2007, ProE, HiCad

erstellt am: 06. Mrz. 2009 10:10    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 aufi 10 Unities + Antwort hilfreich

Hi Aufi,
die "" am Ende entfernt?
(command "_pline"
(setq pta (setq pt1 (getpoint)));zweimal setq?
(setq ptb (setq pt1 (getpoint pt1))))
(while (/=(getvar "CMDACTIVE")0)(command pause))
(setq pl (entlast))

mfg heiko

[Diese Nachricht wurde von Dorfy am 06. Mrz. 2009 editiert.]

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

aufi
Mitglied
Vermessungstechniker


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

Beiträge: 16
Registriert: 04.03.2009

erstellt am: 06. Mrz. 2009 10:39    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

Hi Dorfy
Danke jetzt klappts, habe die "" am schluß übersehen.
Habe noch einen Text eigefügt das die Leute wissen das man jetzt K und L
drücken kann damit man Kreisbögen und Linien Zeichnet.
mfg aufi

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