CADsite

  • vr 27 01 2023, 10:02:12
  • Welkom, gast
Log in of registreer jezelf.

Login met gebruikersnaam, wachtwoord en sessielengte
Geavanceerd zoeken  

Nieuws:

Pagina's: [1] 2   Omlaag

Auteur Topic: lisp en dcl  (gelezen 1229 keer)

AadAad19601960

  • forum groentje
  • **
  • Offline Offline
  • Berichten: 5
    • Bekijk profiel
lisp en dcl
« Gepost op: di 08 11 2022, 19:12:04 »

Wie o wie kan deze lisp en dcl bestanden werkend maken.
Er zitten een paar fouten in maar ik ben nog een newbie en kan ze niet ontdekken.
Had eerst alles over getypt maar was bang dat ik toch een paar type fouten had gemaakt ,dus alles gekopieerd helaas zonder resultaat , nog steeds niet werkend.
Ik heb een site van internet geplukt (jefferypsanders.com) maar helaas werkt het merendeel van de  voorbeelden niet.

SAMPLE7 : dialog {
         label = "Sample Dialog Box Routine - Part 7";
          : column {
            : row {
              : boxed_column {
                : radio_column  {
                  key = "radios";
                  : radio_button {
                    label = "Draw Circle";
                    key = "drawcir";
                    value = "1";
                  }
                  : radio_button {
                    label = "Draw Polygon";
                    key = "drawpol";
                    value = "0";
                  }
                }
                : popup_list {
                  key = "numsides";
                  label = "Number of Sides";
                  width = 25;
                  fixed_width_font = true;
                }
                : toggle {
                  key = "saveset";
                   label = "Save settings";
                }
              }
              : row  {
                : list_box {
                  label ="Select Layer";
                  key = "layerList";
                  height = 5;
                  width = 15;
                  multiple_select = false;
                  fixed_width_font = true;
                  value = "";
                }
              }
            }
            : row {
              : button {
                key = "accept";
                label = " Okay ";
                is_default = true;
              }
              : button {
                key = "cancel";
                label = " Cancel ";
                is_default = false;
                is_cancel = true;
              }
            } 
          }

}



(defun C:SAMPLE7()

   (defun saveVars()
  (setq radios(get_tile "radios"))

  ;;;--- Get the number of sides selected from the list
  (setq sStr(get_tile "numsides"))
  (if(= sStr "")
    (setq numSides nil)
    (setq numSides(nth (atoi sStr) numSides))
  )

  ;;;--- See if the user wants to save the settings
  (setq saveSet(atoi(get_tile "saveset")))

  ;;;--- Get the selected item from the layer list
  (setq sStr(get_tile "layerlist"))

  ;;;--- If the index of the selected item is not "" then something was selected
  (if(/= sStr "")
    (progn

      ;;;--- Something is selected, so convert from string to integer
      (setq sIndex(atoi sStr))

      ;;;--- And get the selected item from the list
      (setq layerName(nth sIndex layerList))
    )

    ;;;--- Else, nothing is selected
    (progn

      ;;;--- Set the index number to -1
      (setq sIndex -1)

      ;;;--- And set the name of the selected item to nil
      (setq layerName nil)
    )
  )
)

(defun toggleRadio(a)
   ;if circle is selected
   (if(= a 1)
      (mode_tile "numsides" 1) ;disable
      ;else
      (mode_tile "numsides" 0) ;enable
    )
)


  ;;;--- Load the dcl file from disk into memory
  (if(not(setq dcl_id (load_dialog "SAMPLE7.dcl")))
    (progn
      (alert "The DCL file could not be loaded!")
      (exit)
    )
   
    ;;;--- Else, the DCL file was loaded
    (progn

      ;;;--- Load the definition inside the DCL file
      (if (not (new_dialog "SAMPLE7" dcl_id))
        (progn
        (alert "The SAMPLE7 definition could not be loaded!")
          (exit)
        )
 
        ;;;--- Else, the definition was loaded
        (progn

          (setq layerList(list "0" "DIM" "HIDDEN" "STR" "TX" "WELD"))
          (setq numSides(list "4" "6" "8" "12" "16"))

          ;;;--- Add the layer names to the dialog box
          (start_list "layerlist" 3)
          (mapcar 'add_list layerList)
          (end_list)

          ;;;--- Add the number of sides to the dialog box
          (start_list "numsides" 3)
          (mapcar 'add_list numSides)
          (end_list)

  (if(/= (getvar "USERS1") "")
            (progn
              (setq radios (getvar "users1"))
              (setq numStr (getvar "users2"))
              (setq saveSet(getvar "users3"))
              (setq layerIndex(getvar "users4"))
              (set_tile "radios" radios)
              (set_tile "numsides" numStr)
              (set_tile "saveset" saveSet)
              (set_tile "layerlist" layerIndex)
            )
          )
  ;;;--- Only disable the numSides popup_list if a circle is being drawn
          (if(= radios "drawcir")
            (mode_tile "numsides" 1)
          )

 

          ;;;--- If an action event occurs, do this function
  (action_tile "drawcir" "(toggleRadio 1)")
          (action_tile "drawpol" "(toggleRadio 2)")
          (action_tile "cancel" "(done_dialog 1)")
          (action_tile "accept" "(saveVars)(done_dialog 2)")

          ;;;--- Display the dialog box
          (start_dialog)

          ;;;--- Unload the dialog box
          (unload_dialog dcl_id)

          ;;;--- If the cancel button was pressed - display message
          (if (= ddiag 1)
            (princ "\n \n ...SAMPLE7 Cancelled. \n ")
          )

          ;;;--- If the "Okay" button was pressed
          (if (= ddiag 2)
            (progn

     
      ;;;--- Save the old layer and reset to new layer
              (setq oldLay(getvar "clayer"))
              (setvar "clayer" layerName)

              ;;;--- See what needs to be drawn
              (if(= radios "drawcir")
                (progn
                  (setq pt(getpoint "\n Center point: "))
                  (command "circle" pt pause)
                )

                ;;;--- Else draw a polygon
                (progn
                  (setq pt(getpoint "\n Center Point: "))
                  (command "polygon" numSides pt "C" pause)
                )
              )

              ;;;--- See if we need to save the settings
              (if(= saveSet 1)
                (progn

                  ;;;--- Add code here to save the settings as defaults
                  (setvar "USERS1" radios)
                  (setvar "USERS2" numStr)
                  (setvar "USERS3" (itoa saveSet))
                  (setvar "USERS4" sSTR)

                )
              )
            )
          )

        )
      )
    )
  )

  ;;;--- Suppress the last echo for a clean exit
  (princ)
)
Gelogd

gery

  • forumverslaafde
  • ******
  • Offline Offline
  • Berichten: 578
    • Bekijk profiel
Re: lisp en dcl
« Reactie #1 Gepost op: wo 09 11 2022, 12:29:51 »

Staan beide bestanden in 1 van de zoekpaden van AutoCAD?
Gelogd
AutoCAD 2020 - Windows 10

gery

  • forumverslaafde
  • ******
  • Offline Offline
  • Berichten: 578
    • Bekijk profiel
Re: lisp en dcl
« Reactie #2 Gepost op: wo 09 11 2022, 12:33:32 »

Kan je kort omschrijven wat deze routine zou moeten doen?
Gelogd
AutoCAD 2020 - Windows 10

bart

  • Forum medewerker
  • forumverslaafde
  • *****
  • Offline Offline
  • Berichten: 2152
    • Bekijk profiel
Re: lisp en dcl
« Reactie #3 Gepost op: wo 09 11 2022, 16:36:35 »

https://www.jefferypsanders.com/autolisp_DCL_Part7.html

Er staat ergens dat je sample <enter> moet ingeven om te starten dat moet m.i.  sample7 zijn
staat de lisp en de dcl in een door autocad vertrouwde map?
Wat krijg je precies voor melding als het niet werkt?

je kan de bestanden linksboven op de pagina in de link gewoon downloaden overtypen of copypast is niet nodig

welke editor gebruik je voor het bewerken van de bestanden het moet gewoon platte tekst zijn

Gelogd
Domme vragen bestaan niet.
Domme antwoorden wel.

m.vr. groet Bart

AadAad19601960

  • forum groentje
  • **
  • Offline Offline
  • Berichten: 5
    • Bekijk profiel
Re: lisp en dcl
« Reactie #4 Gepost op: vr 11 11 2022, 19:23:39 »

Dit zou moeten verschijnen als het zou werken (zie bijlagen) en daar kan dan uit gekozen worden
De beide bestanden staan in een vertrouwde map.
Gelogd

bart

  • Forum medewerker
  • forumverslaafde
  • *****
  • Offline Offline
  • Berichten: 2152
    • Bekijk profiel
Re: lisp en dcl
« Reactie #5 Gepost op: za 12 11 2022, 14:20:27 »

en die map staat ook in het zoekpad onder options? en de lisp is geladen?

ik heb de pagina gelezen.
 de vraag is wat jij wel op je scherm ziet.
Gelogd
Domme vragen bestaan niet.
Domme antwoorden wel.

m.vr. groet Bart

AadAad19601960

  • forum groentje
  • **
  • Offline Offline
  • Berichten: 5
    • Bekijk profiel
Re: lisp en dcl
« Reactie #6 Gepost op: za 12 11 2022, 19:46:44 »

Alleen het linker gedeelte van het dialoog venster is te zien wanneer ik het programma opstart.
Gelogd

roy_043

  • forumverslaafde
  • ******
  • Offline Offline
  • Berichten: 1478
  • BricsCAD 18
    • Bekijk profiel
Re: lisp en dcl
« Reactie #7 Gepost op: zo 13 11 2022, 10:28:51 »

Er zijn een aantal problemen:
  • De key attributen in de DCL zijn hoofdlettergevoelig. In de DCL wordt "layerList" gebruikt terwijl in de LSP "layerlist" wordt gebruikt.
  • De return van start_dialog wordt niet opgeslagen, ddiag blijft dus nil.
  • Het gebruik van de USERS* variabelen is problematisch. Slechts 5 zijn beschikbaar, dus een 2e applicatie die deze techniek gebruikt zal al gauw conflicteren met deze.
  • De variabelen zijn niet gelokaliseerd.

In de bijlagen zijn de 2 eerstgenoemde problemen opgelost. Ook worden de USERS* waarden geïnitialiseerd, dit is veel gemakkelijker (zowel voor de programmeur als de gebruiker).
Gelogd

EddyBeerke

  • forumverslaafde
  • ******
  • Offline Offline
  • Berichten: 2434
  • 1d CADSITE.be niet bezoeken = 1 dag niet geleefd!
    • Bekijk profiel
    • Mijn site
Re: lisp en dcl
« Reactie #8 Gepost op: zo 13 11 2022, 15:29:53 »

Heb je Jeffery P. Sanders ook gevraagd of in ieder geval gemeld dat zijn voorbeeld niet werkt?
Heb ik ooit wel gedaan en kreeg netjes een reactie terug dat hij het zou gaan aanpassen.
Gelogd

AadAad19601960

  • forum groentje
  • **
  • Offline Offline
  • Berichten: 5
    • Bekijk profiel
Re: lisp en dcl
« Reactie #9 Gepost op: zo 13 11 2022, 16:19:20 »

Dank voor jullie hulp.
Ik vind het alleen jammer dat er mensen dingen op het internet zetten die niet werken.
Zeker als je wil gaan leren programmeren is dit niet echt motiverend.
Ik heb al verschillende pdf bestanden en pagina's  van het internet afgehaald waar het meeste niet van werkten.
Gelogd

roy_043

  • forumverslaafde
  • ******
  • Offline Offline
  • Berichten: 1478
  • BricsCAD 18
    • Bekijk profiel
Re: lisp en dcl
« Reactie #10 Gepost op: di 15 11 2022, 09:41:36 »

Gelogd

gery

  • forumverslaafde
  • ******
  • Offline Offline
  • Berichten: 578
    • Bekijk profiel
Re: lisp en dcl
« Reactie #11 Gepost op: di 15 11 2022, 12:18:07 »

Ik vind het alleen jammer dat er mensen dingen op het internet zetten die niet werken.
Zeker als je wil gaan leren programmeren is dit niet echt motiverend.
Ik heb al verschillende pdf bestanden en pagina's  van het internet afgehaald waar het meeste niet van werkten.
Meestal werkt dat allemaal wel maar is er op je eigen computer vanalles fout.
Gelogd
AutoCAD 2020 - Windows 10

bart

  • Forum medewerker
  • forumverslaafde
  • *****
  • Offline Offline
  • Berichten: 2152
    • Bekijk profiel
Re: lisp en dcl
« Reactie #12 Gepost op: di 15 11 2022, 18:04:32 »

Je kreeg wel iets op je scherm en er verschijn geen foutmelding.

op code valt altijd wel iest aan te merken en meestal wordt dat alleen maar meer als de code ouder begint te worden
Gelogd
Domme vragen bestaan niet.
Domme antwoorden wel.

m.vr. groet Bart

AadAad19601960

  • forum groentje
  • **
  • Offline Offline
  • Berichten: 5
    • Bekijk profiel
Re: lisp en dcl
« Reactie #13 Gepost op: di 15 11 2022, 21:07:12 »

https://www.afralisp.net/
https://www.autolisp-exchange.com/

Heb ik ook al allebei doorgespit zitten ook de menige fouten in.

Heb je Jeffery P. Sanders ook gevraagd of in ieder geval gemeld dat zijn voorbeeld niet werkt?
Heb ik ooit wel gedaan en kreeg netjes een reactie terug dat hij het zou gaan aanpassen.

Heeft hij nog niet  aangepast!


Meestal werkt dat allemaal wel maar is er op je eigen computer vanalles fout.

Lijkt me sterk ,als ik alles kopieer  en plak zou het foutloos moeten zijn als het er goed opgezet is .
Gelogd

gery

  • forumverslaafde
  • ******
  • Offline Offline
  • Berichten: 578
    • Bekijk profiel
Re: lisp en dcl
« Reactie #14 Gepost op: wo 16 11 2022, 09:52:06 »

Meestal werkt dat allemaal wel maar is er op je eigen computer vanalles fout.

Lijkt me sterk ,als ik alles kopieer  en plak zou het foutloos moeten zijn als het er goed opgezet is .
AutoCAD is uitgebreid in te stellen en aan te passen, foute instellingen en/of aanpassingen op je eigen computer kunnen er voor zorgen dat bepaalde codes niet correct werken. Ik weet uit ervaring dat velen AutoCAD op hun computer om zeep kunnen helpen, waarbij veelal een volledige herinstallatie noodzakelijk is om het terug in orde te krijgen.
Trouwens, wees blij dat er code te vinden is op het Internet, dat die niet perfect is en/of niet aansluit bij jouw noden kan je de schrijver ervan niet kwalijk nemen, bij hem/haar zal het wel werken dus zit het probleem hoogstwaarschijnlijk bij jouw computer.
Gelogd
AutoCAD 2020 - Windows 10
Pagina's: [1] 2   Omhoog