dialoogbox zonder bevestiging OPGELOST

Gestart door delangstevandestraat, ma 17 10 2016, 11:38:38

Vorige topic - Volgende topic

delangstevandestraat

Ik heb een programmatje dat redelijk veel data moet lezen uit excel, en dit neemt een beetje tijd in beslag.
Eens dit programma zal worden gebruikt door collega's zou ik een melding willen tonen op het scherm zodat de gebruiker niet denkt dat autocad niets doet,
Vandaar dus de vraag hoe zet ik een bvb alert message op het scherm zonder bevestiging, want met een alert wacht het programma, en duurt het dus nog langer.

Ik had gedacht om bvb een venstertje erop te krijgen en het dan weer af te jagen volledig vanuit de code.

Kan dit ?
Ik hou van werken,
ik kan er uuuren naar kijken...
daarom zorg ik ook dat er altijd genoeg overblijft voor morgen :-)

EddyBeerke

Er vanuitgaand dat je ook in LISP programmeert kun je gebruikmaken van DosLIB.
Citeerdos_htmldialog
Creates a dialog box that displays HTML. An HTML dialog box can be used as an alternative to a DCL dialog box.

Syntax
(dos_htmldialog filename [arguments [options [modeless]]])
...
modeless

If omitted or nil , a modal dialog will be displayed. A modal dialog box retains the input focus while open. The user cannot switch windows until the dialog box is closed.

If T, a modeless dialog box will be displayed.

Nu nog een mooi stukje HTML maken en de gebruiker kan daarmee geinformeerd worden terwijl AutoCAD doorgaat.
Civil3d 2022, Blender 3.4 gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

roy_043

Als de ET zijn geïnstalleerd kun je gebruikmaken van de acet-ui-progress* functies.

delangstevandestraat

het programma is idd lisp,
maar html ? nog nooit gedaan,

ik heb ook enkel een venstertje nodig met "eventjes geduld, ik denk na" er op
en beetje later in de code moet dan dan vanzelf weer weggaan...
Ik hou van werken,
ik kan er uuuren naar kijken...
daarom zorg ik ook dat er altijd genoeg overblijft voor morgen :-)

EddyBeerke

Citaat van: delangstevandestraat op ma 24 10 2016, 15:36:10
het programma is idd lisp,
maar html ? nog nooit gedaan,

ik heb ook enkel een venstertje nodig met "eventjes geduld, ik denk na" er op
en beetje later in de code moet dan dan vanzelf weer weggaan...

HTML is niet zo moeilijk. Kijk eens bij http://www.w3schools.com/
Misschien vind je hieronder een begin:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/strict.dtd">
<html>
<head>
<META http-equiv=Content-Type content="text/html; charset=UTF-8">
<title>Even geduld...</title>
<style type="text/css">
span {
font-family: 'Consolas';
font-size: 10pt;
color: #F1F2F3;
}
.sc0 {
}
</style>
</head>
  <body>
    <div style="float: left; white-space: pre; line-height: 1; background: #1E1E1E; ">
      <span class="sc0">
        Even geduld! AutoCAD is bezig met bewerkingen...
      </span>
    </div>
  </body>
</html>
Civil3d 2022, Blender 3.4 gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

roy_043

Waarom niet?:
(princ "\nPlease wait... ")
...
(princ "\nDone! ")

EddyBeerke

Citaat van: roy_043 op ma 24 10 2016, 20:07:25
Waarom niet?:
(princ "\nPlease wait... ")
...
(princ "\nDone! ")

Velen hebben de commandoregel niet meer uitstaan.
Dan zien ze de melding dus niet meer of letten daar niet op.
Dat is mijn ervaring.
Civil3d 2022, Blender 3.4 gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

Reimer

Als de commandoregel uit staan komen de meldingen toch op scherm bij je cursor? Anders kun je niet werken.

Ik dacht zelf aan de mogelijkheid om met GRVECS gegevens op je scherm te tonen zonder dat dit wordt getekend. Lee Mac heeft GrText gemaakt om letters op je scherm te zetten. Je kunt bij de start van je programma op scherm een melding tonen dat het programma is gestart en aan het einde met redraw of regenerate je scherm verversen (en zo de melding wissen).
http://www.lee-mac.com/grtext.html

Reimer

delangstevandestraat

de optie van (princ "eventjes geduld, ik denk na")
staat er reeds tussen, echter dit wordt om een of andere duistere reden niet getoond in de commandoregel, maar wel zichtbaar in F2-window ...

commandoregel staat dus wel effectief aan,

het is ook niet dat het tijdens het volledige programma is,
er is gewoon een moment in mijn programma waar ik zeer veel data binnentrek vanuit excel, en dit geeft de indruk dat er niets meer gedaan wordt...
als ik met alert zou werken dan wacht het programma op een ingave van de gebruiker waardoor het dus nog langer zal duren...

Ik hou van werken,
ik kan er uuuren naar kijken...
daarom zorg ik ook dat er altijd genoeg overblijft voor morgen :-)

EddyBeerke

Probeer hier dit eens, je hebt hier wel DosLib voor nodig.
Deze kun je gratis downloaden https://wiki.mcneel.com/doslib/home:
(defun DOSLibLoader (/ acad proc fname)
  ; Determine the version of AutoCAD
  (setq acad (substr (getvar "ACADVER") 1 2))
  ; Determine the system's processor architecture
  (setq proc (= "AMD64" (getenv "PROCESSOR_ARCHITECTURE")))
  ; Build a file name string
  (if proc
    (setq fname (strcat "DOSLib" acad "x64.arx"))
    (setq fname (strcat "DOSLib" acad ".arx"))
  )

  ; If found in AutoCAD's search path, load it
  (if (findfile (strcat "DOSLib 9.0\\" fname))
    (progn
      (princ "\nDosLib wordt geladen.")
      (arxload fname nil)
    )
    (prompt (strcat "\n" fname " not found."))
  )
  (princ)
)


(defun C:Test_Progress ( / x y )
  (DOSLibLoader)
  (setq x 0 y 30000)
  (dos_getprogress "Testing" "Testing, please wait..." y)
  (while (< x y) (dos_getprogress -1) (setq x (1+ x)))
  (dos_getprogress t)
)
Civil3d 2022, Blender 3.4 gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

sschevers

#10
Citaat van: roy_043 op wo 19 10 2016, 10:47:08
Als de ET zijn geïnstalleerd kun je gebruikmaken van de acet-ui-progress* functies.

acet-ui-progress geeft geen dialoog (tenminste niet in acad2015). Geeft wel heel netjes de voortgang weer. je kunt ook de acet-ui-status gebruiken

(acet-ui-status [message [caption]])

Displays a modeless status dialog.

Arguments
message If provided, a text string to be displayed in the dialog.
caption If provided, a text string to be used as the dialog caption.

If no parameters are provided, the dialog is hidden.

Return Values
nil





Vond ook ergens de help voor de verschillende acet-functies. Dus voor de volledigheid er maar bij gedaan

groeten

stephan

EddyBeerke

(acet-ui-status "Dit venster sluit na '(acet-ui-status)'" "FF w88")
(acet-ui-status)
Civil3d 2022, Blender 3.4 gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

delangstevandestraat

#12
nu pas de tijd gevonden om dit op te lossen:

de oplossing met

(acet-ui-status "Een ogenblikje geduld aub, ik denk na") 

  (eender welk stuk van programma loopt gewoon verde met melding op het scherm)

(acet-ui-status)

melding is weer verdwenen van het scherm,

Perfect,


doet precies wat ik wou,

bedankt dus :-)
Ik hou van werken,
ik kan er uuuren naar kijken...
daarom zorg ik ook dat er altijd genoeg overblijft voor morgen :-)