Add enclosed polyline below profile and auto hatch based on conditional slope

Add enclosed polyline below profile and auto hatch based on conditional slope

Anonymous
Not applicable
4,899 Views
42 Replies
Message 1 of 43

Add enclosed polyline below profile and auto hatch based on conditional slope

Anonymous
Not applicable

So I have a profile and I have slope labels assigned to the profile. Depending on the slope, we use a different consistency material. We want to show that difference by adding hatch (similar to the highlighter below) that changes hatch consistency (or layer) based on conditional slope grades. 

So what im trying to do is create a lisp where I can click on the profile and it will automatically add the hatch and change the layer/hatch based off the conditional slope grade. 

graph.jpg

0 Likes
Accepted solutions (1)
4,900 Views
42 Replies
Replies (42)
Message 21 of 43

Kent1Cooper
Consultant
Consultant
Accepted solution
(vl-load-com)
(defun C:HUS ; = Hatches Under Slope
  (/ pline n p1 p2 slope)
  (setq
    pline (car (entsel "\nSelect slope profile Polyline: "))
    depth (getdist "\nVertical depth of under-Hatching: ")
    n 0
  ); setq
  (repeat (1- (cdr (assoc 90 (entget pline))))
    (setq
      p1 (vlax-curve-getPointAtParam pline n)
      p2 (vlax-curve-getPointAtParam pline (setq n (1+ n)))
      slope (/ (abs (- (cadr p1) (cadr p2))) (abs (- (car p1) (car p2))) 10)
    )
    (command  "_.hatch")
    (cond ;;; EDIT pattern scales [and rotations if desired]
      ((< slope 0.05) (command "AR-SAND" 2 0)); [shallow slope]
      ((< slope 0.1) (command "GRAVEL" 5 0)); [medium slope]
      ((command "GRAVEL" 10 0)); [steep slope]
    ); cond
    (command "" "_no"
        ;; direct-draw boundary, don't keep it
      "_none" p1
      "_none" p2
      "_none" (polar p2 (* pi 1.5) depth)
      "_none" (polar p1 (* pi 1.5) depth)
      "_close"
      ""
    ); command
  ); repeat
  (princ)
); defun

HUS2.PNG

 

Kent Cooper, AIA
0 Likes
Message 22 of 43

Anonymous
Not applicable

 YES!!!! This is perfect, exactly what I wanted. Thank you so so much. I really appreciate it. Truly, you are awesome. Thank you.

0 Likes
Message 23 of 43

Anonymous
Not applicable

  Ok, so I have one more question. Is it possible to have a function that also adds us the total length of each individual hatch?

So If I have a profile and its 50ft long and 20ft is heavy gravel, 10ft is medium gravel and 20ft is light sand, is there something I can add to the lisp that will display after the hatch is placed, what those lengths are? Some of the profiles are hundreds of feet long ad vary in slope so much and sometimes only by a couple feet here and there. For purchasing/quantity purposes, we have to know the lengths of each slope change so we can order the correct amount of product.

0 Likes
Message 24 of 43

Kent1Cooper
Consultant
Consultant

@Anonymous wrote:

.... Is it possible to have a function that also adds us the total length of each individual hatch?....


 

Minimally tested, but I think this does it:

(vl-load-com)
(defun C:HUS ; = Hatches Under Slope
  (/ pline n p1 p2 slope)
  (setq
    pline (car (entsel "\nSelect slope profile Polyline: "))
    depth (getdist "\nVertical depth of under-Hatching: ")
    n 0
    LowSlopeDist 0
    MedSlopeDist 0
    SteepSlopeDist 0
  ); setq
  (repeat (1- (cdr (assoc 90 (entget pline))))
    (setq
      p1 (vlax-curve-getPointAtParam pline n)
      p2 (vlax-curve-getPointAtParam pline (setq n (1+ n)))
      slope (/ (abs (- (cadr p1) (cadr p2))) (abs (- (car p1) (car p2))) 10)
    )
    (command  "_.hatch")
    (cond ;;; EDIT pattern scales
      ((< slope 0.05) (command "AR-SAND" 2 0)); [shallow slope]
      ((< slope 0.1) (command "GRAVEL" 5 0)); [medium slope]
      ((command "GRAVEL" 10 0)); [steep slope]
    ); cond
    (command "" "_no"
        ;; direct-draw boundary, don't keep it
      "_none" p1
      "_none" p2
      "_none" (polar p2 (* pi 1.5) depth)
      "_none" (polar p1 (* pi 1.5) depth)
      "_close"
      ""
    ); command
    (setq which
      (cond ;;; EDIT pattern scales
        ((< slope 0.05) 'LowSlopeDist); [shallow slope]
        ((< slope 0.1) 'MedSlopeDist); [medium slope]
        ('SteepSlopeDist); [steep slope]
      ); cond
    ); setq
    (set which
      (+
        (eval which) ; value so far
        (sqrt (+ (expt (/ (- (cadr p1) (cadr p2)) 10) 2) (expt (- (car p1) (car p2)) 2)))
          ;; length of segment, corrected for vertical exaggeration
      ); +
    ); set
  ); repeat
  (prompt
    (strcat
      "\nLow Slope total = " (rtos LowSlopeDist) "."
      "\nMedium Slope total = " (rtos MedSlopeDist) "."
      "\nSteep Slope total = " (rtos SteepSlopeDist) "."
    ); strcat
  ); prompt
  (princ)
); defun

It leaves the totals in those three variables, if you want to use them for further calculations.  It reports them to you in current Linear Units mode and precision settings -- you can alter that by adding mode and precision arguments to the (rtos) functions.

 

Kent Cooper, AIA
0 Likes
Message 25 of 43

Anonymous
Not applicable

  That's perfect! You are a Rockstar! I will pay it forward your kindness. Thank you.

0 Likes
Message 26 of 43

Anonymous
Not applicable

Hello again, Im messaging back here since you are already familiar with what I am doing. This may be asking too much but I would feel silly not asking at all.

I've tried for the past week to do this myself but its wayyyyy out of my level of lisp. Ive learned alot but this is still beyond me.

I am wanting to create a dummy proof prompt box that asks several questions and then after hitting continue, asks to select the profile and then adds the hatch conditional on what the user manually input.

So the image below is the layout of the dialog box.  The first three letters "L M H" would prompt the user to insert the grade variable.  

" ((< slope 0.05) (command "AR-SAND" 0.9 0)); [shallow slope]
((< slope 0.1) (command "GRAVEL" 4 0)); [medium slope]
((command "GRAVEL" 8 0)); [steep slope]
); cond
(command "" "_no"" 

Basically asking that.

 

Then a drop-down menu or something that opens the layer menu, then again with the hatch choice and then boxes to add the scale size and depth below the profile. 

They can be defaulted to the things we chose in original lisp, but I guess this lisp is so great, multiple offices want to use it and unfortunately not everyone understands lisp and/or feels comfortable adjusting in the lisp routine. 

 So Ive been trying hard to create this prompt/dialog box. Ive found skeleton code for dialog boxes but couldnt seem to get things working. So I caved and came back here. 

What do you think?  

 

Prompt Box.jpg

0 Likes
Message 27 of 43

Kent1Cooper
Consultant
Consultant

With all the routines I've written, unfortunately I've never gotten into the DCL thing [i.e. it's above my level, too...].  It's conceivable I could start to explore it for this, but if there's someone already versed in it that can jump in, it would probably get you results sooner than I'll be able to work it out.

Kent Cooper, AIA
0 Likes
Message 28 of 43

Anonymous
Not applicable

  I have reached out to a couple other forum sites that discussed dialog boxes and hoping maybe someone will respond (they were older posts). I dont want to ask you to do anything challenging, but if you wanted to give it a shot out of curiosity or boredom, I would be super appreciative. But I also understand you have a life and I dont want to be a nuisance.  I attached one code that a reputable forum responder listed as a skeleton dialog box. Its not the setup of what i want but its a start and reference. Its what I was trying to work with. Perhaps it will make more sense to you? Maybe you will be confused too lol  So again, if you feel like digging in, Id appreciate it but I dont want to bother you if you really dont feel like touching this.  Thanks again though for responding. 

(vl-load_com)
(defun c:listsel  
           mytitle       ;title for dialog box
           mylabel       ;label right above list box
           myheight    	;height of dialog box !!*MUST BE STRING*!!
           mywidth   	;width of dialog box !!*MUST BE STRING*!!
           mymultiselect       ;"true" for multiselect, "false" for single select
           mylist              ;list to display in list box
           / retlist readlist count item savevars fn fo valuestr dcl_id )
(defun saveVars(/ readlist count item)
 (setq retList(list))
 (setq readlist(get_tile "mylist"))
 (setq count 1)
 (while (setq item (read readlist))
   (setq retlist(append retList (list (nth item myList))))
   (while
     (and
       (/= " " (substr readlist count 1))
       (/= ""   (substr readlist count 1))
     )
     (setq count (1+ count))
   )
   (setq readlist (substr readlist count))
 
);defun
(setq fn (vl-filename-mktemp "" "" ".dcl"))
(setq fo (open fn "w"))
(setq valuestr (strcat "value = \"" mytitle "\";"))
(write-line (strcat "list_select : dialog {
           label = \"" mytitle "\";") fo)
(write-line 
(strcat "          : column {
           : row {
             : boxed_column {
              : list_box {
                 label =\"" mylabel "\";
                 key = \"mylist\";
                 allow_accept = true;
                 height = " myheight ";
                 width = " mywidth ";
                 multiple_select = " mymultiselect ";
                 fixed_width_font = false;
                 value = \"0\";
               }
             }
           }
           : row {
             : boxed_row {
               : button {
                 key = \"accept\";
                 label = \" Okay \";
                 is_default = true;
               }
               : button {
                 key = \"cancel\";
                 label = \" Cancel \";
                 is_default = false;
                 is_cancel = true;
               }
             }
           }
         }
}") fo)
(close fo)
(setq dcl_id (load_dialog fn))
(new_dialog "list_select" dcl_id)
 (start_list "mylist" 3)
 (mapcar 'add_list myList)
 (end_list)
 (action_tile "cancel" "(setq ddiag 1)(done_dialog)")
 (action_tile "accept" "(setq ddiag 2)(saveVars)(done_dialog)")
 (start_dialog)
 (if (= ddiag 1)
    (setq retlist nil)
 )
(unload_dialog dcl_id)
(vl-file-delete fn)
retlist
);defun

 

0 Likes
Message 29 of 43

Sea-Haven
Mentor
Mentor

Because you want a dcl that your going to use over and over you don't need the create dcl in the program instead of writing to a temp directory you can write it to a known location same with loading it. If its saved in your support paths you can use just the file name. The other thing is you can edit the dcl directly.

 

(setq fn (vl-filename-mktemp "" "" ".dcl"))

Use (setq fn "C:\\mystuff\\mylisps\\myspecial.dcl")) the double \\ is in case you have spaces in directory names. This will make the dcl and you can then edit it directly.

 

The attached image is my approach. The other image shows a sub dialogue. just need some time.

0 Likes
Message 30 of 43

Sea-Haven
Mentor
Mentor

Here is a dcl approaching what you want needs some alignment tweaks. Test with lisp, note change path so dcl can be found for testing. I built 1 row at a time and tested.

 

(setq dcl_id (load_dialog "D:\\acadtemp\\alantest"))
(if (not (new_dialog "ddgetvalAH" dcl_id))
(exit)
)
(action_tile "accept" "(mapcar '(lambda (x) (setq v_lst (cons (get_tile x) v_lst))) key_lst)(done_dialog)")
(start_dialog)
(unload_dialog dcl_id)

 I will try to find time do the layer/hatch list sub dialogue and code to call. 

0 Likes
Message 31 of 43

Sea-Haven
Mentor
Mentor

Found some more time this has sub dialogue 

0 Likes
Message 32 of 43

Sea-Haven
Mentor
Mentor

Use this updated version now returns actuall value rather than item number.

0 Likes
Message 33 of 43

Anonymous
Not applicable

  Thank you so much for the help. So I saved the dcl to a file and then in lsp i put that file path in the folder I keep my lisps (for testing purposes - 
(setq dcl_id (load_dialog "C:\Users\cmanner\Desktop\CAD\lisp"))
(if (not (new_dialog "ddgetvalAH" dcl_id))
(exit)))

Then I loaded the lsp and tried to run but nothing happened. Not sure what I missed but im sure I did something wrong. Is the defun command the "ahpicklay"? And any ideas what I may have missed?

0 Likes
Message 34 of 43

Anonymous
Not applicable

  So I changed the file path to have the double "\\" and added the "alantest.dcl" where before I missed the ".dcl". I added a vl-load-com and a "c:" prompt, now it will just display every hatch and layer name in the command line. 

  Again, i know its me not doing something right, Im just not sure what that is. Also, does this run in sync with the original lisp routine? How do i tie in the original functions of the lisp to select the profile, then have the prompt open, select the choices and then they apply to the profile? 

0 Likes
Message 35 of 43

hak_vz
Advisor
Advisor

So, we are trying to generate DCL for this code. Unfortunately this code doesn't work correctly in Acad 2014.

 I don't have time to play with this and to do changes upon every request (sorry),and I don't want to change @Kent1Cooper  's code.

 

Partial solution to this request is through an init function that asks for parameters that can be done through console input. It may call for a hatch pattern selection and here is my code.

To select appropriate hatch patterns you may use this code. It searches through "acad.pat" pattern definition file and collects all available hatch patterns, create DCL dynamically, and returns a list with selected pattern names.

 

dialog5.jpg

It case selected on above picture function (get_hatch_dialog) would return ("GRAVEL" "AR-SAND" "AR-CONC").

 

(vl-load-com)
;https://forums.augi.com/showthread.php?96036-Tblsearch-on-hatch-pattern-file
(defun gethatchlin (acadftype / lino l1 commapos alllist)
  (setq hatchlist nil
        alllist nil
  )
  (if (setq fullpat (findfile acadftype))
    (progn (setq lino (open fullpat "r"))
           (while (setq l1 (read-line lino))
             (if (and (eq (substr l1 1 1) "*")
                      (setq commapos (vl-string-search "," l1))
                 )
               (setq alllist (append alllist (list (substr l1 2 (1- commapos)))))
             )
           )
    )
  )
  (close lino)
  (if alllist
    (setq hatchlist (mapcar 'strcase alllist))
  )
)

(defun get_hatch_dialog ( / file f dcl_id patterns ret rr)
(defun *error* ( m )
(if (and file (findfile file))(vl-file-delete (findfile file)))
(if m(prompt m))
(princ)
)
(setq file (vl-filename-mktemp "hhh.dcl")) (setq f (open file "w")) (write-line "ch : dialog {label = \"Select drafting parameters \"; width = 80; : column { : boxed_column { " f) (write-line ": popup_list {key = \"l_list\";label = \"Low slope hatch pattern: \";fixed_width_font = true;width = 30; value = \" \";}" f) (write-line ": popup_list {key = \"m_list\";label = \"Middle slope hatch pattern: \";fixed_width_font = true;width = 30; value = \" \";}" f) (write-line ": popup_list {key = \"h_list\";label = \"High slope hatch pattern: \";fixed_width_font = true;width = 30; value = \" \";}" f) (write-line "} ok_cancel;}}" f) (close f) (vla-regen (vla-get-activedocument (vlax-get-acad-object)) acactiveviewport) (setq dcl_id (load_dialog file)) (if (not (new_dialog "ch" dcl_id)) (exit)) (setq patterns (gethatchlin "acad.pat")) (start_list "l_list" 3) (mapcar 'add_list patterns) (end_list) (start_list "m_list" 3) (mapcar 'add_list patterns) (end_list) (start_list "h_list" 3) (mapcar 'add_list patterns) (end_list) (action_tile "accept" "(setq rr(list (get_tile \"l_list\")(get_tile \"m_list\")(get_tile \"h_list\")))(done_dialog)");action tile (action_tile "cancel" "(done_dialog)");action_tile (start_dialog) (unload_dialog dcl_id) (setq rr (mapcar 'atoi rr)) (foreach r rr (setq ret (cons (nth r patterns) ret))) (reverse ret) )

 

 

 

 

 

Miljenko Hatlak

EESignature

Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.
0 Likes
Message 36 of 43

Anonymous
Not applicable

  Ok awesome, I will play around with it and hopefully come up with something and perhaps KentCooper will have some idea or suggestion too. But regardless I really appreciate what you have done and offering help. I just need to keep plugging away until eventually it all clicks for me.  Thank you. 

0 Likes
Message 37 of 43

hak_vz
Advisor
Advisor

You may play with this code and it's relatively easy to create stuff you ask for. It something like:

 

(defun c:init()
(setq lslope (getreal "\n Low slope inclination"))
(setq mslope (getreal "\n Middle slope inclination"))
(setq hslope (getreal "\n High slope inclination"))
(setq hatches (get_hatch_dialog))
(setq lscale (getreal "\n Low slope hatch scale"))
(setq mslope (getreal "\n Middle hatch scale"))
(setq hslope (getreal "\n High hatch scale"))
;these are all global variables that should be called from hus function

User would use this before he starts hus function.

 

You may play with dcl file as well. Your main goal should be to learn autolisp. You have to edit main function to collect this globals, and this is an simple task.

Miljenko Hatlak

EESignature

Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.
0 Likes
Message 38 of 43

Sea-Haven
Mentor
Mentor

Here is the edit required to detect the other values entered. You need to change the Kx variable to that used by kent's software.

;(Defun ahctray ( / )
(setq dcl_id (load_dialog "D:\\acadtemp\\alantest")) (if (not (new_dialog "ddgetvalAH" dcl_id)) (exit)) (action_tile "key1" "(setq k1 $value)") (action_tile "key2" "(setq k2 $value)") (action_tile "key3" "(setq k3 $value)") (action_tile "key4" "(setq k4 $value)") (action_tile "key5" "(setq k5 $value)") (action_tile "key6" "(setq k6 $value)") (action_tile "key7" "(setq k7 $value)") (action_tile "key8" "(setq k8 $value)") (action_tile "key9" "(setq k9 $value)") (action_tile "B1" "(ahselhat)(ahsubdlg2)(setq H1 (nth newans call_lsth))") (action_tile "B2" "(ahpicklay)(ahsubdlg2)(setq L1 (nth newans call_lstlay))") (action_tile "B3" "(ahselhat)(ahsubdlg2)(setq H2 (nth newans call_lsth))") (action_tile "B4" "(ahpicklay)(ahsubdlg2)(setq L2 (nth newans call_lstlay))") (action_tile "B5" "(ahselhat)(ahsubdlg2)(setq H3 (nth newans call_lsth))") (action_tile "B6" "(ahpicklay)(ahsubdlg2)(setq L3 (nth newans call_lstlay))") (action_tile "accept" "(done_dialog)") (start_dialog) (unload_dialog dcl_id)
;)

Put all this code at the start of kents code.

 

To run just remove the two ; and use (ahctray) this will run the dialouge

0 Likes
Message 39 of 43

Anonymous
Not applicable

Ok great! I will start putting this all together and see what I can get going. I really appreciate all your help, you are awesome. I really do want to learn lisp and with everyones help its becoming easier to see how it all ties together.

0 Likes
Message 40 of 43

Anonymous
Not applicable
(vl-load-com)
(Defun ahctray ( / )
(setq dcl_id (load_dialog "C:\\Users\\cmanner\\Desktop\\CAD\\alantest.dcl"))
(if (not (new_dialog "ddgetvalAH" dcl_id))
(exit))
(action_tile "key1" "(setq pline $value)")
(action_tile "key2" "(setq depth $value)")
(action_tile "key3" "(setq n $value)")
(action_tile "key4" "(setq LowSlopeDist $value)")
(action_tile "key5" "(setq MedSlopeDist $value)")
(action_tile "key6" "(setq SteepSlopeDist $value)")
(action_tile "key7" "(setq p1 $value)")
(action_tile "key8" "(setq p2 $value)")
(action_tile "key9" "(setq slope $value)")
(action_tile "B1" "(ahselhat)(ahsubdlg2)(setq H1 (nth newans call_lsth))")
(action_tile "B2" "(ahpicklay)(ahsubdlg2)(setq L1 (nth newans call_lstlay))")
(action_tile "B3" "(ahselhat)(ahsubdlg2)(setq H2 (nth newans call_lsth))")
(action_tile "B4" "(ahpicklay)(ahsubdlg2)(setq L2 (nth newans call_lstlay))")
(action_tile "B5" "(ahselhat)(ahsubdlg2)(setq H3 (nth newans call_lsth))")
(action_tile "B6" "(ahpicklay)(ahsubdlg2)(setq L3 (nth newans call_lstlay))")
(action_tile "accept" "(done_dialog)")
(start_dialog)
(unload_dialog dcl_id)
) ;defun

(defun c:hus ; = Hatches Under Slope
  (/ pline n p1 p2 slope)
  (setq
    pline (car (entsel "\nSelect slope profile Polyline: "))
    depth (getdist "\nVertical depth of under-Hatching: ")
    n 0
    LowSlopeDist 0
    MedSlopeDist 0
    SteepSlopeDist 0
  ); setq
  (repeat (1- (cdr (assoc 90 (entget pline))))
    (setq
      p1 (vlax-curve-getPointAtParam pline n)
      p2 (vlax-curve-getPointAtParam pline (setq n (1+ n)))
      slope (/ (abs (- (cadr p1) (cadr p2))) (abs (- (car p1) (car p2))) 10)
    )
    (command  "_.hatch")
    (cond ;;; EDIT pattern scales
      ((< slope 0.05) (command "AR-SAND" 0.9 0)); [shallow slope]
      ((< slope 0.1) (command "GRAVEL" 4 0)); [medium slope]
      ((command "GRAVEL" 8 0)); [steep slope]
    ); cond
    (command "" "_no"
        ;; direct-draw boundary, don't keep it
      "_none" p1
      "_none" p2
      "_none" (polar p2 (* pi 1.5) depth)
      "_none" (polar p1 (* pi 1.5) depth)
      "_close"
      ""
    ); command
    (setq which
      (cond ;;; EDIT pattern scales
        ((< slope 0.05) 'LowSlopeDist); [shallow slope]
        ((< slope 0.1) 'MedSlopeDist); [medium slope]
        ('SteepSlopeDist); [steep slope]
      ); cond
    ); setq
    (set which
      (+
        (eval which) ; value so far
        (sqrt (+ (expt (/ (- (cadr p1) (cadr p2)) 10) 2) (expt (- (car p1) (car p2)) 2)))
          ;; length of segment, corrected for vertical exaggeration
      ); +
    ); set
  ); repeat
  (prompt
    (strcat
      "\nLow Slope total = " (rtos LowSlopeDist) "."
      "\nMedium Slope total = " (rtos MedSlopeDist) "."
      "\nSteep Slope total = " (rtos SteepSlopeDist) "."
    ); strcat
  ); prompt
  (princ)
); defun


ddgetvalAH : dialog {
	label ="Enter Values" ;
 : column {
 
 : boxed_row {

: edit_box {
    key = "key1";
 label = "     Low      ";
     edit_width = 5;
     edit_limit = 4;
   is_enabled = true ;
    }

: edit_box {
    key = "key2";
 label = "Medium" ;     
     edit_width = 5;
     edit_limit = 4;
   is_enabled = true ;
           }
: edit_box {
    key = "key3";
 label = "High";
     edit_width = 5;
     edit_limit = 4;
   is_enabled = true ;
    }
	    }
      
	: boxed_row {
 
  : text { label = "Low   "; }
	: button {
 	key = "B1";
 label = "Hatch";
	}
	: button {
 	key = "B2";
 label = "Layer ";
	}
: edit_box {
    key = "key4";
 label = "Scale      ";
     edit_width = 5;
     edit_limit = 4;
   is_enabled = true ;
    }
: edit_box {
    key = "key5";
 label = "Depth";
     edit_width = 5;
     edit_limit = 4;
   is_enabled = true ;
			}
				}
	: boxed_row {
   : text { label = "Medium   "; }
		: button {
	key = "B3";
 label = "Hatch";
	}
	: button {
	key = "B4";
 label = "Layer ";
	}
: edit_box {
    key = "key6";
 label = "Scale      ";
     edit_width = 5;
     edit_limit = 4;
   is_enabled = true ;
    }
: edit_box {
    key = "key7";
 label = "Depth";
     edit_width = 5;
     edit_limit = 4;
   is_enabled = true ;
			}
					}
	 : boxed_row {
  : text { label = "High    "; }
	 	: button {
	key = "B5";
 label = "Hatch";
	}
	: button {
	key = "B6";
 label = "Layer ";
	}
: edit_box {
    key = "key8";
 label = "Scale      ";
     edit_width = 5;
     edit_limit = 4;
   is_enabled = true ;
    }
: edit_box {
    key = "key9";
 label = "Depth";
     edit_width = 5;
     edit_limit = 4;
   is_enabled = true ;
		}
			}
}

        ok_cancel ; }

ahsellst : dialog {
    label = "Please choose item";
        : column {
                  : list_box {
                  key = "select" ;
                  }
        ok_cancel;
        }
}


 

 

  Ok, well Im stuck. I've played around with it a bit. Added a (c:) before ahctray and deleted out the (c:) before "hus" command. Ive tried adjusting my local file path and saving elsewhere. Im sure Im just missing something but figured id ask your opinion on what Im messing up? 

 When i change the command to c:ahctray and run, I get an error message "error:  quit / exit abort". 

Any thoughts?

0 Likes