CADsite forum

AutoCAD => Autolisp => Topic gestart door: Atwist op do 29 04 2010, 13:42:26

Titel: Lisp doet niet wat ik wil (Opgelost)
Bericht door: Atwist op do 29 04 2010, 13:42:26
Hallo forumleden,

Ik ben bezig een goed werkende lisp te verbouwen naar mijn eigen wensen.
Heb een lisp gepakt met een dcl bestand wat dus goed werkte heb eerst het dcl bestand verbouwd lisp en dcl werkte nog steeds goed , nu wilde ik lisp bestand gaan oppakken  heb dus de key in het dcl en lisp gelijk gemaakt het erkt nog steeds, maar nu wil ik dus de opdracht veranderen en nu doet de lisp niet wat ik wil ik weet dat de fout bij mij ligt maar ik zie het niet.
Ik probeer dus via de lisp en dcl bestand layers aan temaken die ik wil gebruiken met kleur en linetype.

Wie zou eens willen kijken.

Alvast bedankt.

Atwist

defun C:Twist (/ C_E C_L W_K O_M A RICHT LEER PT EN P1 P2 P3 WIN D DH MP AS)

(defun NEUERR (MSG)
 (princ LEER)
 (princ MSG)
 (command "_REGEN")
 (command)
 (command "_LAYER" "_SET" C_L "" "_REGEN")
 (command "_UCS" "_N" W_K)
 (setq *ERROR* ALTERR)
 (setvar "CMDECHO" C_E)
 (exit)
 (princ)
)

(setq ALTERR  *ERROR*
      *ERROR* NEUERR
      DUMMY_1 (entlast)
      C_E     (getvar "CMDECHO")       ; ECHO
      C_L     (getvar "CLAYER")        ; Layer
      W_K     (getvar "UCSORG")        ; BKS
      RICHT   NIL
      LEER    (strcat "\n" (chr 160) "\n" (chr 160) "\n" (chr 160))


)
;;--------------------------- Dialog -----------------------
(defun DIALOG_0 (/ I_1 OK)
 (setq I_1 (load_dialog "Twist.dcl"))
 (if (null (new_dialog "Twist" I_1))
  (alert "\n \nKann Twist.dcl nicht finden")
 )

 (setq RICHT (get_tile "RICHT"))

 (action_tile "RICHT" "(SETQ richt $VALUE)")
 (action_tile "CANCEL" "(DONE_DIALOG 0)")
 (setq OK (start_dialog))
 (unload_dialog I_1)
 (if (= OK 0)
 (progn (R_VAR) (exit))
 )
)
;;-------------------------------------------------------------------
(princ LEER)
(DIALOG_0)
(cond
 ((or (= RICHT "_Hor") (= RICHT "_Ver")) ; Horizontale oder vertikale Hilfslinie
  (setq PT (getpoint "\nBitte eine Punkt angeben: "))
  (command "_Xline" RICHT PT "")
 )
 ((= RICHT "018")
  (command "_layer" RICHT "_make" "018" "_color" "1" "_ltype" "hidden")
 )
;; Rücksetze der Varablen und Layer
(command)
(command "_LAYER" "_SET" C_L "" "_REGEN")
(command "_UCS" "_N" W_K)
(setq *ERROR* ALTERR)
(setvar "CMDECHO" C_E)
(redraw)
(princ)
(princ)
) ;_ End defun
(princ)
(prompt "\nProgramm laden mit Twist")
(princ)



Titel: Re:Lisp doet niet wat ik wil
Bericht door: roy_043 op do 29 04 2010, 14:55:15
Helemaal aan het begin ontbreekt:
(
En boven de regel:  ;; Rücksetze der Varablen und Layer ontbreekt:
)
Titel: Re:Lisp doet niet wat ik wil
Bericht door: Atwist op do 29 04 2010, 15:24:17
Hallo Roy,

Dank voor je antwoord Heb ) en ( ingevoed en krijg nu ook te zien "Programm laden mit Twist" had ik voorheen niet
Maar de layer wordt noog steeds niet gemaakt.
Zijn al wel weer een stap verder.
Weet jij misschien ook waarom de layer niet wordt gemaakt?

Atwist
Titel: Re:Lisp doet niet wat ik wil
Bericht door: roy_043 op do 29 04 2010, 15:55:57
De lisp die jij aan het verbouwen bent was bedoeld om xlines te tekenen. Maar jij hebt het over "lagen". Wil je een bepaalde laag aanmaken voor de xlines of wil je helemaal geen xlines tekenen? En als dat laatste zo is: waarom dan deze lisp als basis genomen?
Titel: Re:Lisp doet niet wat ik wil
Bericht door: Atwist op do 29 04 2010, 16:05:46
Heb deze lisp gekozen omdat deze mooi klein is, ik wil eigelijk alleen maar lagen invoegen en later eventueel textstyles.
Ik was in de veronderstelling dat ik deze lisp wel kon ombouwen hiervoor.

Atwist
Titel: Re:Lisp doet niet wat ik wil
Bericht door: Lyrix op do 29 04 2010, 17:17:50
Als het alleen een kwestie is van een layer invoegen kan dat in 3 regels.



(defun c:makelayer()
   (command "-layer" "m" "layernaam" "C" "3" "" "")
)

Verwerk het commando in een knopje, zodra je het knopje aantikt wordt de layer aangemaakt en staat meteen current.
Titel: Re:Lisp doet niet wat ik wil
Bericht door: Atwist op do 29 04 2010, 18:02:07
Hallo Lyrix

heb jou oplossing toegepast maar nu laad deze de dcl niet meer, dit is wat ik er van heb gemaakt.

(defun C:Twist()


;;--------------------------- Dialog -----------------------
(defun DIALOG_0 (/ I_1 OK)
  (setq I_1 (load_dialog "Twist.dcl"))
  (if (null (new_dialog "Twist" I_1))
   (alert "\n \nKann Twist.dcl nicht finden")
  )
  ((= RICHT "018")
   (command "-layer" "m" "018" "C" "3" "" "")
)))
;_ End defun


Atwist
Titel: Re:Lisp doet niet wat ik wil
Bericht door: Lyrix op do 29 04 2010, 19:40:09
Wat wil je met de dcl doen dan?
Wil je een standaard layer aanmaken of een variabele layer die je in de dcl intoetst?

Als je een standaard wil maken met een layer heb je helemaal geen dcl menu nodig.
Een lisp, geaktiveerd door een knopje is dan voldoende.
Titel: Re:Lisp doet niet wat ik wil
Bericht door: Atwist op do 29 04 2010, 19:56:56
Lyrix,

Het is niet 1 layer maar een hele lijst en die wil ik graag via een dcl scherm aanklikken, in de vorige post is het een voorbeeld van 1 layer.
Als ik 1 layer aan de gang heb dan kan ik de rest er zo onder plakken.

Atwist
Titel: Re:Lisp doet niet wat ik wil
Bericht door: Lyrix op do 29 04 2010, 21:41:04
Kan je het script van de DCL ook eens posten?
Dan kan em eens proberen.

Titel: Re:Lisp doet niet wat ik wil
Bericht door: Atwist op vr 30 04 2010, 07:29:31
Bij deze.

Hij is nog niet helemaal klaar maar werkt wel.

Atwist
Titel: Re:Lisp doet niet wat ik wil (Opgelost)
Bericht door: Lyrix op di 04 05 2010, 08:05:03
Wil je de complete oplossing ook delen?  :lol:
Titel: Re:Lisp doet niet wat ik wil (Opgelost)
Bericht door: Atwist op di 04 05 2010, 09:16:40
Ja hoor,

Ik heb CLAY van Jeffery Sanders gevonden http://www.jefferypsanders.com/autolisp_CLAY.html (http://www.jefferypsanders.com/autolisp_CLAY.html) en deze verbouwd naar mijn wens.


Nu zoek ik nog zo iets maar dan voor mijn textstyles

Atwist
Titel: Re:Lisp doet niet wat ik wil (Opgelost)
Bericht door: cadtools@gmail.com op di 04 05 2010, 11:40:04
Ik gebruik deze. http://sites.google.com/site/layercreator/
(orgineel van Timothy Spangler)
Werkt volgens mij ook een beetje volgens deze principes.. werkt fijn.
Titel: Re:Lisp doet niet wat ik wil (Opgelost)
Bericht door: Atwist op di 04 05 2010, 14:40:50
Hallo cadtools@gmail.com,

Heb deze ook bekeken, CLAY is wel erg simpel in gebruik.

Atwist
Titel: Re:Lisp doet niet wat ik wil (Opgelost)
Bericht door: Cad_user86 op vr 15 04 2011, 11:50:11
Beste Atwist, 

Ben je ondertussen al verder geraakt met het maken van jou Layer_creator?
Ik ben momenteel ook aan het puzzelen om er zelf één aan te maken. Ik heb echt nog niet zo veel ervaring met LISP en zou daarom ook gebruik willen maken van een bestaande LISP-routine en dit aan te passen naar mijn wensen en noden.

De routine van Jeff-sanders is een goed ebgin, alleen wil ik mijn nog uitgebreider hebben.
hoe ik een DCL aanmaak in een Notepad heb ik ongeveer wel onder de knie, althans, ik kan dit niet nakijken want ik weet niet hoe ik dit zichtbaar kan maken in autocad :-) Ik weet neit hoe ik de link moeten maken tussen LSP (wat voorlopig nog lees is bij me) en tussen het DCL bestand.

Hopelijk weet jij (of iemand anders) raad voor me ;-)

Bedankt!
Titel: Re:Lisp doet niet wat ik wil (Opgelost)
Bericht door: EddyBeerke op vr 15 04 2011, 12:02:41
Citaat van: Cad_user86 op vr 15 04 2011, 11:50:11
...
hoe ik een DCL aanmaak in een Notepad heb ik ongeveer wel onder de knie, althans, ik kan dit niet nakijken want ik weet niet hoe ik dit zichtbaar kan maken in autocad :-) Ik weet neit hoe ik de link moeten maken tussen LSP (wat voorlopig nog lees is bij me) en tussen het DCL bestand.

Hopelijk weet jij (of iemand anders) raad voor me ;-)

Het kan inderdaad met Notepad, TextPad of elk andere tekstverwerker die er bestaat, zolang je maar klinkklare txt kan opslaan.

Maar het kan ook anders:
Type het commando: "VLIDE"
En zie daar... een heuse programma builder in acad:
"Visual LISP for AutoCAD"

Hiermee kun je dus hetzelfde als met de voorgenoemde en meer.
Wat dacht je van Debuggen.
Type er een een simpele lisp in en je zult zie dat het makkelijker is dan bv Notepad.

EDIT: zie bijlage
Titel: Re:Lisp doet niet wat ik wil (Opgelost)
Bericht door: roy_043 op vr 15 04 2011, 13:21:19
@Cad_user86
Dit is een redelijk goed tutorial:
http://web2.airmail.net/terrycad/Tutorials/MyDialogs.htm
Titel: Re:Lisp doet niet wat ik wil (Opgelost)
Bericht door: EddyBeerke op vr 15 04 2011, 14:14:41
Wat ik vaak raadpleeg zijn deze site's:
www.cadsite.be (nederlandstalig)  :vreegoe:
www.afralisp.net (engelstalig)