Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Sub/Function möglich ??

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:  Sub/Function möglich ?? (517 mal gelesen)
Frank88
Mitglied



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

Beiträge: 153
Registriert: 11.10.2004

AutoCAD 2019/C3D

erstellt am: 21. Okt. 2004 08: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

Guten Morgen,

gibt es eigentlich in Lisp eine Möglichkeit, ähnlich wie in anderen Programmiersprachen, Subs oder Functions anzulegen, auf die von anderen Programmteilen aus zugegriffen wird?

Gruß, Frank

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: 21. Okt. 2004 08: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 Frank88 10 Unities + Antwort hilfreich

Ja , logo ...
(defun MEINESUB ( A B )
  (+ A B)
)

und dann im "Hauptprogramm"

(defun c:addiere( / A B)
  (if(and(setq A (getreal "\nErster  Summand : "))
        (setq B (getreal "\nZweiter Summand : "))
      )
    (MEINESUB A B)
  )
)

guck dir mal Mapcars Seiten an!

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

fuchsi
Mitglied
Programmierer c#.net Datawarehouse


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

Beiträge: 1201
Registriert: 14.10.2003

AutoCad Version 2012 deu/enu
<P>Windows 7 64bit

erstellt am: 21. Okt. 2004 08: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 Frank88 10 Unities + Antwort hilfreich

natürlich geht das

z.B.: du musst des öfteren 2 werte addieren (ok. sehr einfachjes Beispiel aber was solls) dann kannst du dir dazu eine eigene funktion schreiben, die das macht
z.B.:
(defun Addiere ( wert1 wert2 / ) (+ wert1 wert2 ))

die funktion heisst nun addiere und hat 2 übergabepaarameter. zurückgegeben wird das ergebniis der letzten klammer (+ wert1 wert2)

diese funktion kannst du nun in allen Lisp-Programmen verwenden.

z.B.:
(setq w1 (getreal "bitte wert1 eingeben"))
(setq w1 (getreal "bitte wert2 eingeben"))
(setq erg (Addiere w1 w2))
(print erg)

------------------
WWW.FFZELL.AT.TC

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

fuchsi
Mitglied
Programmierer c#.net Datawarehouse


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

Beiträge: 1201
Registriert: 14.10.2003

AutoCad Version 2012 deu/enu
<P>Windows 7 64bit

erstellt am: 21. Okt. 2004 08:57    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 Frank88 10 Unities + Antwort hilfreich

@CADmium

schon wieder fast zeitgleich, unddas auch noch mit dem selben Beispiel

------------------
WWW.FFZELL.AT.TC

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: 21. Okt. 2004 09: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 Nur für Frank88 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von fuchsi:
@CADmium
schon wieder fast zeitgleich, unddas auch noch mit dem selben Beispiel


@Fuchsi : sorry

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

Frank88
Mitglied



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

Beiträge: 153
Registriert: 11.10.2004

AutoCAD 2019/C3D

erstellt am: 21. Okt. 2004 09:57    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! Das verkürzt den Code um rund die Hälfte.

Gruß, Frank

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



Ingenieur/Ingenieurin (m/w/d) Fachrichtung Versorgungs- oder Elektrotechnik

Die Deutsche Rentenversicherung Rheinland ist der kompetente Ansprechpartner für Versicherte, Rentner und Arbeitgeber in allen Fragen der gesetzlichen Rentenversicherung sowie der medizinischen und beruflichen Rehabilitation. Mit über 3.600 Beschäftigten in der Hauptverwaltung Düsseldorf und rund 8 Millionen Kunden ist die Deutsche Rentenversicherung Rheinland einer der größten Regionalträger. Die ...

Anzeige ansehenProjektmanagement
Frank88
Mitglied



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

Beiträge: 153
Registriert: 11.10.2004

AutoCAD 2019/C3D

erstellt am: 21. Okt. 2004 11: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


Zu früh gefreut. In den Subs sollen Zeichenketten bearbeitet und dann wieder zurückgegeben werden. Das passiert in WHILE-Schleifen.
(defun Z_kürzen (VStr Zeile WW)
;Zeichen vom Zeilenanfang bis Vergleichs-String entfernen
(setq Z -1)
(setq TStr WW)
(while (= TStr WW)
      (setq Z (+ Z 1))
      (setq Zeile (substr Zeile 2))
      (setq TStr (wcmatch Zeile VStr))
)
)
Wie bekomme ich nun die Variable Zeile, um die es mir geht, wieder ins Hauptprogramm?

Gruß, Frank

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: 21. Okt. 2004 11:55    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 Frank88 10 Unities + Antwort hilfreich

so:

(defun Z_kürzen (VStr Zeile WW)
(setq Z -1)
  (setq TStr WW)
  (while (= TStr WW)
        (setq Z (+ Z 1))
        (setq Zeile (substr Zeile 2))
        (setq TStr (wcmatch Zeile VStr))
  )
  ZEILE
)

zurückgegeben wird immer das Ergebnis des zuletzt ausgeführten Befehls

deshalb solltest du auch mal Mapcars Seite besuchen!!!

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

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