Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Hilfe bei funktion

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:  Hilfe bei funktion (1036 mal gelesen)
chris888
Mitglied
Technischer Zeichner


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

Beiträge: 141
Registriert: 11.11.2010

AutoCAD 2002, 2005, 2008, 09, 10, 11

erstellt am: 11. Mai. 2011 09: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

morgen leutz!!

hab hier mal ne fuktion u steh mal wieder aufm schlauch. brauch hilfe beim berichtigen:

(defun c:mmm()(command "_dimlinear" ((if (/= nil(setq dim (getstring "\nBitte <> Prä- oder Suffix eingeben: ")))(setvar "dimpost" dim)(dimm)))(setq dimm(getvar "dimpost"))))

Denke das problem liegt an der IF funktion.

mfg chris

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: 11. Mai. 2011 09: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 chris888 10 Unities + Antwort hilfreich

nee .. Getstring liefert bei ENTER einen LEERSTRING "" .. deshalb ist der Test auf nil daneben

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

chris888
Mitglied
Technischer Zeichner


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

Beiträge: 141
Registriert: 11.11.2010

AutoCAD 2002, 2005, 2008, 09, 10, 11

erstellt am: 11. Mai. 2011 10:08    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

jo das hab ich auch schon mitbekommen

wärst viell. auch so nett mir zu sagen wie ich das beheben kann??

mfg

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

neurosis
Mitglied
dipl.ing.


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

Beiträge: 222
Registriert: 22.08.2006

erstellt am: 11. Mai. 2011 10:09    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 chris888 10 Unities + Antwort hilfreich

hallo chris,
es liegt, wie cadmium schon geschrieben hat, am rueckgabewert von getstring, aber auch an deiner klammersetzung

so wuerde es richtig ausschauen:

Code:
(defun c:mmm( / dim dimm)
  (command "_dimlinear"
    (if (/= "" (setq dim (getstring "\nBitte <> Prä- oder Suffix eingeben: ")))
      (setvar "dimpost" dim)
      dimm
    )
    (setq dimm(getvar "dimpost"))
  )
)

edit: da die variable dimm am anfang noch keinen wert besitzt, kommt es aber bei eingabe von "" zu einem fehler. das musst du also noch abfangen.

------------------
Marco Heuer
www.arc-aachen.de
Airport Office

[Diese Nachricht wurde von neurosis am 11. Mai. 2011 editiert.]

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

chris888
Mitglied
Technischer Zeichner


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

Beiträge: 141
Registriert: 11.11.2010

AutoCAD 2002, 2005, 2008, 09, 10, 11

erstellt am: 11. Mai. 2011 10:22    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

; Fehler: Fehlerhafte Funktion:


(defun c:mmm( / dim dimm)
  (command "_dimlinear"
    ((if (/= "" (setq dim (getstring "\nBitte <> Prä- oder Suffix eingeben: ")))
      (setvar "dimpost" dim)
      dimm
    )
    (setq dimm(getvar "dimpost")))
  )

ohne die zusätzliche klammer funktioniert es aber nicht weil sonst der befehl mit nil beendet wird. Auch wenn dabei eine unschöne Fehler Funktion gemeldet wird....

Danke für die schnelle hilfe

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

neurosis
Mitglied
dipl.ing.


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

Beiträge: 222
Registriert: 22.08.2006

erstellt am: 11. Mai. 2011 10: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 chris888 10 Unities + Antwort hilfreich

hast du dir auch mein "edit:" durchgelesen?

------------------
Marco Heuer
www.arc-aachen.de
Airport Office

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

chris888
Mitglied
Technischer Zeichner


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

Beiträge: 141
Registriert: 11.11.2010

AutoCAD 2002, 2005, 2008, 09, 10, 11

erstellt am: 11. Mai. 2011 10:34    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

ja hab ich. es würde aber auch genillt werden wenn die klammern weg sind. obwohl ich einen wert eingegeben habe.
das abfangen des ersten "" dims ist nicht so schlimm....

mfg

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

neurosis
Mitglied
dipl.ing.


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

Beiträge: 222
Registriert: 22.08.2006

erstellt am: 11. Mai. 2011 10:46    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 chris888 10 Unities + Antwort hilfreich

gib doch mal spasseshalber in der konsole das folgende ein:
Code:
((if (/= "" (setq dim (getstring "\nBitte <> Prä- oder Suffix eingeben: ")))
      (setvar "dimpost" dim)
      dimm
    )
    (setq dimm(getvar "dimpost")))

und gib irgendeine zahl, z.b. 45, an.
was erhaelst du?

------------------
Marco Heuer
www.arc-aachen.de
Airport Office

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

chris888
Mitglied
Technischer Zeichner


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

Beiträge: 141
Registriert: 11.11.2010

AutoCAD 2002, 2005, 2008, 09, 10, 11

erstellt am: 11. Mai. 2011 11:02    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

ich erhalte

; Fehler: Fehlerhafte Funktion: "10"

Aber gib doch mal spaßeshalber

(if (/= "" (setq dim (getstring "\nBitte <> Prä- oder Suffix eingeben: ")))
      (setvar "dimpost" dim)
      dimm
    )
    (setq dimm(getvar "dimpost")) ein wie deine funkiton war.


         

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: 11. Mai. 2011 11: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 chris888 10 Unities + Antwort hilfreich

@Chris .. beschreib doch mal, was du überhaupt vor hast ?!

------------------
  - 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: 11. Mai. 2011 11:13    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 chris888 10 Unities + Antwort hilfreich

ich glaube sowas....

Code:
(defun c:mmm (/ dpost dpostold str)
  (setq dpostold (getvar "dimpost"))
  (initget "P S")
  (or (setq dpost
    (getkword "\n[Prä- oder Suffix] <P>: ")
      )
      (setq dpost "P")
  )
  (if (and (setq
    str (getstring T "\nBitte String für Prä- oder Suffix eingeben: ")
  )
  (= dpost "P")
      )
    (setvar "dimpost" (strcat str "<>"))

    (setvar "dimpost" (strcat "<>" str))
  )
  (command
    "_dimlinear"
  )
  (while (/= (getvar "CMDACTIVE") 0) (command pause))
  (setvar "dimpost" dpostold)
  (princ)
)


------------------
Mfg Heiko

Elefantenjagd in Afrika
"... LISP-Programmierer bauen einen Irrgarten aus Klammern und hoffen, dass sich der Elefant darin verirrt..."

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

wronzky
Ehrenmitglied V.I.P. h.c.
CAD-Dienstleistungen für Architekten



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

Beiträge: 2154
Registriert: 02.05.2005

CAD:
AutoCAD 2.6 bis 2014
ADT 2005 - 2014
Arcibem
System:
Windows 2000, XP, NO VISTA
Internet-Startseite:
http://www.archi.de

erstellt am: 11. Mai. 2011 11: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 chris888 10 Unities + Antwort hilfreich

Zitat:
; Fehler: Fehlerhafte Funktion: "10"

Das liegt an Deiner doppelten Klammer. In Lisp werden die Klammern von innen nach außen evaluiert. z.B.
((+ 2 1)) -> innere Klammer (+ 2 1) ergibt 3
im nächsten Schritt steht dann da:
(3)  und wird evaluiert: -> und an dieser Stelle sagt der Interpreter: "3" ist keine Funktion.

Grüsse, Henning

------------------
Henning Jesse
VoxelManufaktur
Computer-Dienstleistungen für Architekten und Ingenieure

  http://www.voxelman.de

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

chris888
Mitglied
Technischer Zeichner


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

Beiträge: 141
Registriert: 11.11.2010

AutoCAD 2002, 2005, 2008, 09, 10, 11

erstellt am: 11. Mai. 2011 11: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

hey cadmi

passt eigentlich schon. der befehl funktioniert ja. Problem war nur neurosis meint warscheinlich das problem liegt an seiner funktion stimmt aber nicht.

Der Befehl "_dimlinear" (hallo)(hallo)

ist halt einfach was anderes als

Der Befehl "_dimlinear" ((hallo)(hallo))

das war das ganze diskusionsproblem -.-

ich kriege halt eine fehlermeldung da dies keien funktion ist

mfg

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

neurosis
Mitglied
dipl.ing.


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

Beiträge: 222
Registriert: 22.08.2006

erstellt am: 11. Mai. 2011 11: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 chris888 10 Unities + Antwort hilfreich

mache ich mir mal den spass   

als erstes gebe ich ein:

Code:

(if (/= "" (setq dim (getstring "\nBitte <> Prä- oder Suffix eingeben: ")))
  (setvar "dimpost" dim)
  dimm
)

was passiert:
- ich werde nach einem string gefragt.
- wenn ich eine zahl eingebe, steht in der variablen "dim" der wert als string und wird der sysvar "dimpost" zugewiesen.
- wenn ich enter druecke, steht in der variablen "dim" der wert "". da dieser wert der variablem "dim" gleich "" ist, wird der wert der variablen "dimm" zurueckgegeben. dieser ist am anfang nil.

als zweites gebe ich ein:

Code:
(setq dimm(getvar "dimpost"))

jetzt wird der variablen "dimm" der wert der sysvar "dimpost" zugewiesen.

wo liegt jetzt denn dein problem?


edit: genau!
du bekommst eine fehlermeldung, wenn du schreibst
((if ...))

genau darauf wollte ich dich hinweisen, dass es etwas anderes ist als
(if ...)


edit 2:
da ich selber keine command-aufrufe im code verwende, war mir nicht bewusst, dass "_dimlinear" solche argumente ueberhaupt nicht benoetigt.
mir ging es ausschliesslich um den if-ausdruck, und der war falsch.

------------------
Marco Heuer
www.arc-aachen.de
Airport Office

[Diese Nachricht wurde von neurosis am 11. Mai. 2011 editiert.]

[Diese Nachricht wurde von neurosis am 11. Mai. 2011 editiert.]

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