Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  BricsCAD
  Suche Befehle, für eine LISP Datei

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 BricsCAD
Autor Thema:  Suche Befehle, für eine LISP Datei (1647 mal gelesen)
FireBuff
Mitglied
EDV Admin , GIS Verantw.


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

Beiträge: 56
Registriert: 01.08.2013

BricsCad

erstellt am: 28. Mrz. 2017 10:05    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 ich suche die folgenden Befehle, für eine LISP Datei: Meine funktionieren nicht wie ich das wünsche.

(command "_.select" "ALL" "")                              ;alles selektieren
(command "_.erase" "ALL" "")                              ;alles löschen
(command "_.layer" "L" "RAHMEN")                          ;layer RAHMEN löschen
(command "_.layer" "N" "STR-WEG")                          ;layer STR-WEG anlegen
(command "_.layer" "COLOR" "ROT" "STR-WEG")                ;layer STR-WEG Farbe rot
(command "_.LAYZUSF" "STR-WEG" "STRASSE" "WEG" "RADWEG")  ;layer STRAASE, WEG und RADWEG zusammenführen zu STR-WEG

PS: Ich bin absoluter Neuling. Danke schon jetzt für die Hilfe

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

cadffm
Ehrenmitglied V.I.P. h.c.
良い精神



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

System: F1
und Google

erstellt am: 28. Mrz. 2017 10:50    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 FireBuff 10 Unities + Antwort hilfreich

Zunächst mal: Fast immer lautet die Antwort auf "so eine Frage": Gibt es nicht in Lisp.
Man muss sich die benötigten Funktionen selbst erstellen.

Man muß sich im CAD-Programm auskennen um die eigenen Wünsche klar definieren zu können,
man muss das Objektmodell kennen und verstehen, um alle notwendigen Schritte und Wege erkennen zu können
und die paar Lispfunktionen selbst, sind dass geringste Problem bei der Sache.

Kurz: So schnell geht das nicht.
http://www.tutorial.autolisp.info/

Und in ein paar Monaten oder Jahren lächelst du dann darüber.

Zum Thread:
(command "_.select" "ALL" "")  ;alles selektieren

Funktioniert nicht wie gewünscht, du suchst Befehle(besser gesagt eine Lispfunktion) dafür.

Frage: Wenn (command "_.select" "ALL" "") nicht dass macht was du wünscht,
woher sollen wir wissen was du möchtest?
Die Objektwahl lässt sich in Lisp durch Verwendung von SSGET ansprechen.

(command "_.layer" "L" "RAHMEN")  ;layer RAHMEN löschen                      
Ist das in Bricscad so, dass man nach Eingabe von "RAHMEN" den Layerbefehl verlassen hat?
Ich frage nur weil die Entwurfsvorlage von Bricscad weiterhin im Layerbefehl aktiv wäre,
dieser ist erst mit einer Leereingabe beendet.
Zudem verwirrt die Mischung von internationalem und deutschen Befehlszeileneingaben,
_.Layer und _delete oder .Layer und löschen. International ist aber freilich netter.

Frage: Wenn (command "_.layer" "L" "RAHMEN")  nicht dass macht was du wünscht,
woher sollen wir wissen was du möchtest?
Layer bereinigen kann man nur wenn der Layer nicht verwendet wird (Befehl LAyer, Option löschen ist genau das).
Vielleicht suchst du nicht bereinigen, sondern 'Objekte eines Layers löschen'. Dann schau mal in die Expresstools / LAYDEL).
Um es selbst zu programmieren: Dafür mußt du die ganze Datenbank kennen, denn du mußt alle Objekte, grafische wie nichtgrafische, ändern wenn sie diesen Layer refernzieren.
Danach ist der Layer nicht mehr genutzt und kann bereinigt werden.

(command "_.LAYZUSF"

Huch, den Befehl gibts - Wußte ich nicht  


Immer wieder: Datenbank, ObjektLayer ändern, ungenutzte Layer bereinigen.
Aber irgendwie kommt es mir so vor als wäre eine orde3ntliche eigene Programmierlösung
überhaupt nicht dein Fall, zudem überhaupt nicht notwendig.

Du solltest die Themen splitten und die Einzelnen klarer definieren.

BEISPIEL: "Alles löschen" Was willst du da verbessern/ändern?

A: Es soll auch Objekte auf gesperrten Layern löschen.
Antwort: Geht nicht.
Auch mit Lisp kannst du keine (Layer-)Gesperrten Objekte bearbeiten,
also müßtest du zunächst die aktuellen Layereinstellungen merken, die Layer entsperren, Objekt bearbeiten, Layereigenschaften wieder setzen.

B: Es sollten auch Objekte außerhalb des aktuellen Bereiches gelöscht werden(andere Layouts).
Dann durchlaufe deine Liste von Objekten und lösche diese über ENTDEL.
Aber denke auch dabei an gesperrte Layer, assoziave Zusammenhänge usw.

 

Bin auf deine Antwort gespannt  

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

[Diese Nachricht wurde von cadffm am 28. Mrz. 2017 editiert.]

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

FireBuff
Mitglied
EDV Admin , GIS Verantw.


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

Beiträge: 56
Registriert: 01.08.2013

BricsCad

erstellt am: 05. Jul. 2017 13:07    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

Hier ein paar Befehle für eine LISP Datei

(command "_.layer" "FR" "D-STR")            ;layer D-STR einfrieren
(command "_.layer" "T" "D-WEG")              ;layer D-WEG tauen
(command "_.layer" "A" "D-ORT")              ;layer D-ORT ausblenden


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

cadffm
Ehrenmitglied V.I.P. h.c.
良い精神



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

System: F1
und Google

erstellt am: 05. Jul. 2017 13: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 FireBuff 10 Unities + Antwort hilfreich

Ok, du suchst also keine Lispbefehle, sondern Standard Bricscad-Befehle welche über die Befehlszeile gesteuert werden können.

Eigentlich wäre dann F1 das Benutzerhandbuch/Hilfe die Antwort,
die Befehlszeile kann man dann automatisiert per Makro Skript oder
wie in deinem Fall per Lisp mit Eingaben steuern.

In deinem letzten Beispiel verwendest du den Bricscadbefehl LAYER,
die Eingaben sendest du per Command (Lispfunktion) zur Befehlszeile.

Wenn es als "Neuling" schwer fällt, dann liegt es evtl. an dem Verständnis dafür?
LAYER ist kein Lispbefehl.

Tippe -Layer in die Befehlszeile ein und folge dem Befehlsablauf, schreibe diesen mit.
Danach kannst du diese Eingabe per (command ...) auch automatisch an die Befehlszeile senden.

(command "eingabe1" "eingabe2" "usw" "")

"" bedeutet praktisch "nur Enter" und PAUSE (ohne ") lässt eine Benutzereingabe zu.

Wenn du dich zum Thema Makro und Script einliest, dann erhälst du eher Tips die hier von Nöten sind,
denn mit Lisp hat dies recht wenig zutun.
Nur die Art der Übergabe sind in Makro/Lisp/Command (Lisp) verschieden,
zuvor muss man in allen Fällen aber ermitteln welche Befehlseingaben man benötigt.

http://ww3.cad.de/foren/ubb/Forum54/HTML/021110.shtml

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

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

FireBuff
Mitglied
EDV Admin , GIS Verantw.


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

Beiträge: 56
Registriert: 01.08.2013

BricsCad

erstellt am: 05. Jul. 2017 15:07    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 für die Hilfe und Hinweise

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