Waardes vanuit DCL niet naar LISP

Gestart door A3, do 15 10 2009, 15:46:57

Vorige topic - Volgende topic

A3

Hallo,

Ik heb een (beginners) LISP programma voor autocad gemaakt.
Ik heb een DCL bestand gemaakt waarin ik waardes in kan vullen.

Wat voor waarde ik ook invul voor bijvoorbeeld Roosterlengte, hij komt in het LSP bestand toch met de lengte 1000 die als value ingegeven staat in het DCL bestand.
Wat doe ik verkeerd.


HIERONDER MIJN DCL BESTAND

BOX2 : dialog {
   label="LAMELLENROOSTERS";
   : text {label="Invoer roostergegevens"; }
   : spacer {height=1;}
   : edit_box {label="Roosterlengte   "; key="9lengte";edit_width=10;value="1000";}
   : edit_box {label="Roosterbreedte  "; key="9breedte";edit_width=10;value="1000";}
   : edit_box {label="Dragerhoogte    "; key="9draaghoog";edit_width=10;value="30";}
   : edit_box {label="Dragerdikte     "; key="9draagdik";edit_width=10;value="2";}
   : edit_box {label="Vullerhoogte    "; key="9vulhoog";edit_width=10;value="40";}
   : edit_box {label="Vullerdikte     "; key="9vuldik";edit_width=10;value="2";}
   : edit_box {label="Randhoogte      "; key="9randhoog";edit_width=10;value="30";}
   : edit_box {label="Randdikte       "; key="9randdik";edit_width=10;value="5";}
   : edit_box {label="Maaswijdte 1    "; key="9maas1";edit_width=10;value="66.66";}
   : edit_box {label="Maaswijdte 2    "; key="9maas2";edit_width=10;value="33.33";}
   : edit_box {label="Hoek lamellen   "; key="9hoek";edit_width=10;value="45";}
   ok_cancel;

   }   


HIERONDER MIJN LSP BESTAND

(defun lamel (/)
;-----------------------------------------------------------------------------
; automatisch tekenen van rooster met zijaanzicht van lamellen
; auteur : A. Bongers 09-10-2009
;-----------------------------------------------------------------------------
     (command "layer" "s" "werk" "")

   (setq 99lengte 0)
   (setq 99breedte 0)
   (setq 99draaghoog 0)
   (setq 99draagdik 0)
   (setq 99vulhoog 0)
   (setq 99vuldik 0)
   (setq 99randhoog 0)
   (setq 99randdik 0)
   (setq 99hoek 0)
   (setq 99maas1 0)
   (setq 99maas2 0)

   (setq nummer (load_dialog "c:/rooster/lsp/lamel.dcl")) (new_dialog "BOX2" nummer)

;-----------------------------------------------------------------------------
; omzetten STRING waardes naar getallen
;-----------------------------------------------------------------------------

   (setq    99lengte (atof (get_tile "9lengte"))
      99breedte (atof (get_tile "9breedte"))
      99draaghoog (atof (get_tile "9draaghoog"))
      99draagdik (atof (get_tile "9draagdik"))
      99vulhoog (atof (get_tile "9vulhoog"))
      99vuldik (atof (get_tile "9vuldik"))
      99randhoog (atof (get_tile "9randhoog"))
      99randdik (atof (get_tile "9randdik"))
      99maas1 (atof (get_tile "9maas1"))
      99maas2 (atof (get_tile "9maas2"))
      99hoek (atof (get_tile "9hoek"))
   );endsetq

   (start_dialog)

   (unload_dialog nummer)

   (princ 99lengte)(princ "  ")
   (princ 99breedte)(princ "  ")
   (princ 99draaghoog)(princ "  ")
   (princ 99draagdik)(princ "  ")
   (princ 99vulhoog)(princ "  ")
   (princ 99vuldik)(princ "  ")
   (princ 99randhoog)(princ "  ")
   (princ 99randdik)(princ "  ")
   (princ 99maas1)(princ "  ")
   (princ 99maas2)(princ "  ")
   (princ 99hoek)(princ "  ")
)


A3

Hallo,

Ik kan met dit antwoord niets. Ik ben beginnend en zou het op prijs stellen als je concreet iets zou aangeven voor in mijn LSP en DCL bestand.

Alvast hartelijk dank.

roy_043

Je moet het uitlezen van de waardes koppelen aan een gebruikersactie middels action_tile.
Je kunt dit o.a. doen per invoerveld:
;-----------------------------------------------------------------------------
; omzetten STRING waardes naar getallen
;-----------------------------------------------------------------------------
(action_tile "9lengte" "(setq 99lengte (atof $value))")
(action_tile "9breedte" "(setq 99breedte (atof $value))")
...

A3