Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Liniengruppen als Block einfügen

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:  Liniengruppen als Block einfügen (490 mal gelesen)
ThomasRow
Mitglied
Konstrukteur

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

Beiträge: 3
Registriert: 26.10.2021

erstellt am: 26. Okt. 2021 10: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 Forum

Bin blutiger Anfänger was Lisp anbelangt und benötige Hilfe.

Ich habe eine Lisp Datei welche drei Liniengruppen erstellt. Jetzt möchte ich dass diese Gruppen jeweils als Block ins AutoCad eingefügt werden können.

Momentan sieht das so aus:

(defun c:seil ()
  (setvar "BLIPMODE" 0)
  (setvar "OSMODE" 0)
  (entmake '((0 . "LINE") (8 . "SEHNE")(10 0 1036.6  0 )(11 10.8235 1036.6  0 )))
  (command "_arc" "0,1036.6" "5.41175,1036.56275862651" "10.8235,1036.6")
  (entmake '((0 . "LINE") (8 . "SEHNE")(10 10.8235 1036.6  0 )(11 25.8235 1040  0 )))
  (command "_arc" "10.8235,1036.6" "18.3235,1038.24747262366" "25.8235,1040")
  (entmake '((0 . "LINE") (8 . "SEHNE")(10 25.8235 1040  0 )(11 86 1073  0 )))
  (command "_arc" "25.8235,1040" "55.91175,1055.38969866133" "86,1073")
  (entmake '((0 . "LINE") (8 . "SEHNE")(10 86 1073  0 )(11 121 1087  0 )))
  (command "_arc" "86,1073" "103.5,1079.69516536998" "121,1087")
  (entmake '((0 . "LINE") (8 . "SEHNE")(10 121 1087  0 )(11 160.8235 1096  0 )))
  (command "_arc" "121,1087" "140.91175,1091.16676954132" "160.8235,1096")
  (entmake '((0 . "LINE") (8 . "SEHNE")(10 160.8235 1096  0 )(11 187.5813 1096.4076  0 )))
  (command "_arc" "160.8235,1096" "174.2024,1096.06577488308" "187.5813,1096.4076")
  (entmake '((0 . "LINE") (8 . "SEHNE")(10 187.5813 1096.4076  0 )(11 195.7813 1096.4076  0 )))
  (command "_arc" "187.5813,1096.4076" "191.6813,1096.38235651324" "195.7813,1096.4076")
)
(defun c:useiteFz ()
  (setvar "BLIPMODE" 0)
  (setvar "OSMODE" 0)
  (command "_arc" "0,1033.775" "5.41175,1033.73775862651" "10.8235,1033.775")
  (command "_arc" "10.8235,1033.775" "18.3235,1035.42247262366" "25.8235,1037.175")
  (command "_arc" "25.8235,1037.175" "55.91175,1052.56469866133" "86,1070.175")
  (command "_arc" "86,1070.175" "103.5,1076.87016536998" "121,1084.175")
  (command "_arc" "121,1084.175" "140.91175,1088.34176954132" "160.8235,1093.175")
  (command "_arc" "160.8235,1093.175" "174.2024,1093.24077488308" "187.5813,1093.5826")
  (command "_arc" "187.5813,1093.5826" "191.6813,1093.55735651324" "195.7813,1093.5826")
)
(defun c:leeresSeil ()
  (setvar "BLIPMODE" 0)
  (setvar "OSMODE" 0)
  (command "_arc" "0,1036.6" "5.41175,1036.57020690121" "10.8235,1036.6")
  (command "_arc" "10.8235,1036.6" "18.3235,1038.25797809893" "25.8235,1040")
  (command "_arc" "25.8235,1040" "55.91175,1055.61175892907" "86,1073")
  (command "_arc" "86,1073" "103.5,1079.75613229599" "121,1087")
  (command "_arc" "121,1087" "140.91175,1091.23341563305" "160.8235,1096")
  (command "_arc" "160.8235,1096" "174.2024,1096.09337990646" "187.5813,1096.4076")
  (command "_arc" "187.5813,1096.4076" "191.6813,1096.38740521059" "195.7813,1096.4076")
)


Und noch eine zweite Frage: Sind die Einträge BLIPMODE und OSMODE notwendig oder kann man die weglassen?

Freundliche Grüsse

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

cadwomen
Ehrenmitglied V.I.P. h.c.
Mädchen für fast alles


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

Beiträge: 2966
Registriert: 26.08.2002

ACAD R11 - 2018.1.2
(Plant3D)
AVIS
ACAD LT 2013- 2020
ZWCAD 2015 Versuch "nun ja"
[s]History P3D 2012/(13) SP und Hotfix([/s]<P>
Windows 10 / 64 Bit
Xeon CPU 3.5GHz
16GB Ram
NVIDIA Quadro P2000
3x Dell TV100 88P Monitore

erstellt am: 26. Okt. 2021 13: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 ThomasRow 10 Unities + Antwort hilfreich

Hallo ThomasRow und Willkommen bei CAD . de


also Osmode ist eine ACAD Variable
einfach mal in die Befehlszeile tippen und F1 drücken dann sollte die Hife dazu kommen die das erklärt.

BLIPMODE find ich in meinen ACAD nicht

cu cw

------------------
Also ich finde Unities gut ... und andere sicher auch
------------------------------------------------
cadwomen™
Plant ist nur die Spitze des Berges der da treibt ?

[Diese Nachricht wurde von cadwomen am 26. Okt. 2021 editiert.]

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 26. Okt. 2021 13: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 Nur für ThomasRow 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von cadwomen:
BLIPMODE find ich in meinen ACAD nicht

dein AutoCAD kennt aber die Variable und weiss was zutun ist,
also entweder setvar nutzen oder den OriginalBefehl dazu aufrufen: .BLIPMODE

HIER müßte noch ein Hinweis auf Blipmode stehen, wenn man keine LT-Version nutzt: Klick!

Dann im Zeichenfenster herumklicken, mit oder ohne Befehl, egal.

Regen ist dein Freund.

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

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1356
Registriert: 11.01.2006

WIN 10
ACAD 2022

erstellt am: 26. Okt. 2021 14:23    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 ThomasRow 10 Unities + Antwort hilfreich

Hallo ThomasRow,
das hier könnte weiterhelfen.
Ist zwar eine "nicht soooo schöne" Art das zu machen, aber im Laufe der Zeit lernst du schon das Ganze zu optimieren.
Den Blocknamen soltest du natürlich noch ändern und auch den Basispunkt solltest du anpassen.
Ach ja ... wenn es einen Block mit dem gewünschten Namen schon in der Zeichnung gibt musst du das VORHER noch prüfen und ggf. darauf reagieren (das ist hier nicht dabei).

(defun c:seil ()
  (setvar "BLIPMODE" 0)
  (setvar "OSMODE" 0)
  (setq satz (ssadd))
  (entmake '((0 . "LINE") (8 . "SEHNE")(10 0 1036.6  0 )(11 10.8235 1036.6  0 )))
  (setq satz (ssadd (entlast) satz))
  (command "_arc" "0,1036.6" "5.41175,1036.56275862651" "10.8235,1036.6")
  (setq satz (ssadd (entlast) satz))
  (entmake '((0 . "LINE") (8 . "SEHNE")(10 10.8235 1036.6  0 )(11 25.8235 1040  0 )))
  (setq satz (ssadd (entlast) satz))
  (command "_arc" "10.8235,1036.6" "18.3235,1038.24747262366" "25.8235,1040")
  (setq satz (ssadd (entlast) satz))
  (entmake '((0 . "LINE") (8 . "SEHNE")(10 25.8235 1040  0 )(11 86 1073  0 )))
  (setq satz (ssadd (entlast) satz))
  (command "_arc" "25.8235,1040" "55.91175,1055.38969866133" "86,1073")
  (setq satz (ssadd (entlast) satz))
  (entmake '((0 . "LINE") (8 . "SEHNE")(10 86 1073  0 )(11 121 1087  0 )))
  (setq satz (ssadd (entlast) satz))
  (command "_arc" "86,1073" "103.5,1079.69516536998" "121,1087")
  (setq satz (ssadd (entlast) satz))
  (entmake '((0 . "LINE") (8 . "SEHNE")(10 121 1087  0 )(11 160.8235 1096  0 )))
  (setq satz (ssadd (entlast) satz))
  (command "_arc" "121,1087" "140.91175,1091.16676954132" "160.8235,1096")
  (setq satz (ssadd (entlast) satz))
  (entmake '((0 . "LINE") (8 . "SEHNE")(10 160.8235 1096  0 )(11 187.5813 1096.4076  0 )))
  (setq satz (ssadd (entlast) satz))
  (command "_arc" "160.8235,1096" "174.2024,1096.06577488308" "187.5813,1096.4076")
  (setq satz (ssadd (entlast) satz))
  (entmake '((0 . "LINE") (8 . "SEHNE")(10 187.5813 1096.4076  0 )(11 195.7813 1096.4076  0 )))
  (setq satz (ssadd (entlast) satz))
  (command "_arc" "187.5813,1096.4076" "191.6813,1096.38235651324" "195.7813,1096.4076")
  (setq satz (ssadd (entlast) satz))
  (command "_block" "test" "0,0" satz "" )
  (command "_insert" "test" "0,0" "1" "1" "0")
)

------------------
Geht nicht, gibts nicht

Gruß
Andreas

http://kraus-cad.de

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

ThomasRow
Mitglied
Konstrukteur

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

Beiträge: 3
Registriert: 26.10.2021

erstellt am: 27. Okt. 2021 09: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

Hallo Zusammen

Vielen Dank für eure Antworten. Das hat mir schon mal sehr geholfen.

BLIPMODE scheint veraltet zu sein. Was OSMODE ist habe ich auch kurz nachgeschaut. Werde beide so sein lassen, schaded sicher nicht.

@Andreas Kraus

Danke, das hat super funktioniert. Blocknamen habe ich noch angepasst und Basispunkt auf 0 passt so. Können Sie evtl. einen Hinweis geben wie man das ganze noch optimieren kann damit ich weiss in welche Richtung ich suchen muss? Bzw. gibt es irgendwo eine Anleitung zum Thema die zur verfügung steht?

Freundliche Grüsse


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

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1356
Registriert: 11.01.2006

WIN 10
ACAD 2022

erstellt am: 27. Okt. 2021 09:48    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 ThomasRow 10 Unities + Antwort hilfreich

Optimieren kann man auf alle Fälle die Erstellung der Objekte.
Schöner wäre es alle Objekte auf die selbe Art zu erstellen und nicht einmal mit entmake und einmal über command. Natürlich muss man sich für ein entmake die Objektdaten ggf. selbst berechnen usw. aber wenn man die benötigten Module einmal hat kann man die ja immer wieder gebrauchen.

Eine Schleife zur Objekterstellung wäre hier auch effektiver weil innerhalb der Schleife nur einmal das eigentliche Todo geschrieben werden muss und nur andere Koordinaten verwendet werden. Außerdem kann man, wenn man mapcar verwendet, eine Rückgabe der erstellten Objekte als Liste für die Blockerstellung weiterverwenden (bei mapcar geht aber kein command).

Wenn man gleich einen Schritt weitergeht kann man auch direkt den Block erstellen und auch die Objekte gleich in die Blockdefinition schreiben. Also ohne den "Umweg" über die Erstellung im Modell und nachfolgender Blockerstellung. Hier ist entmakex zu verwenden.

Und als (erst mal) letztes geht das natürlich auch alles über die vla-... Befehle aber fang erst mal mit entmake und entmakex an damit du die Gruppencodes draufbekommst.

------------------
Geht nicht, gibts nicht

Gruß
Andreas

http://kraus-cad.de

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

ThomasRow
Mitglied
Konstrukteur

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

Beiträge: 3
Registriert: 26.10.2021

erstellt am: 27. Okt. 2021 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

OK vielen Dank. Ich werde da mal weiterforschen und schauen was sich optimieren lässt.

Freundliche Grüsse

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