Author Topic: So you're writing this large lisp application ...  (Read 6468 times)

0 Members and 1 Guest are viewing this topic.


  • Mesozoic relic
  • Seagull
  • Posts: 11654
  • class keyThumper<T>:ILazy<T>
Re: So you're writing this large lisp application ...
« Reply #15 on: October 08, 2005, 10:14:15 AM »
columnar selection

Generally single semicolons skip out to between column 45 to 60 as autoformatting, depending on config ..

I use UltraEdit and the Vlide. .. fairly conventional :)
kdub, kdub_nz in other timelines.
Perfection is not optional.
Everything will work just as you expect it to, unless your expectations are incorrect.
Discipline: None at all.


  • Seagull
  • Posts: 17750
  • Have thousands of dwgs to process? Contact me.
Re: So you're writing this large lisp application ...
« Reply #16 on: October 08, 2005, 10:15:49 AM »

No wonder I don't use it.


Wait a sec, did you just add the UltraEdit reference?
Engineering Technologist CAD Automation Practitioner
Automation ▸ Design ▸ Drafting ▸ Document Control ▸ Client


  • Guest
Re: So you're writing this large lisp application ...
« Reply #17 on: October 08, 2005, 10:57:17 AM »
Basically I simple don't use local variables until I check that they are right, then I add some breakpoints into the areas I think is going to fail, Or  where I am specting certain return, in that phase I use the inspection feature of vlisp or in the command line the !

The functions are saved into modules and every module is inside of a folder with the same name, I use PRJ projects and if one module is needed is simple added.

All the new functions are saved into their category if they don't fit in any existing then a new module is created.



  • Global Moderator
  • Seagull
  • Posts: 10401
Re: So you're writing this large lisp application ...
« Reply #18 on: October 09, 2005, 09:47:22 AM »
I use VLIDE & UltrEdit.
VLIDE to write the code & format.
I use Ultra edit for spell check (not often enough) & 'Cut & Paste'
Ultra Edit has a neat 'Column' mode that us useful to 'Cut & Paste' and also inserting
a character in many rows at one time. Same with the BackSpace key to remove.

In VLIDE ;;; goes to column zero while ;; follows the indent & ; is a inline comment

I use (print xyz) sometimes to drop the value while in progress and BreakPoint to halt
the routine while I ponder over the variables.

I sometimes use (command "point" p1) to see where the position of points in the drawing.

In large apps I use a debug global variable to turn the debug system on/off.

(setq *debug* 1 to 5)
In the routine I use
(and (> *debug* 3) (print var))
(if (> *debug* 3)

where dump_vars could be this, a dedecated routine

Code: [Select]
  ;; ---------------------------------------------------------------------------
  ;; Function: dump_vars
  ;; Purpose : Used for debug to display the var values at the command prompt.
  ;; ---------------------------------------------------------------------------

  (defun dump_vars ()
    (prompt "\n=-=-=-=-=-=-=-=-=-=   DEBUG MODE =-=-=-=-=-=-=-=-=-=-=")
    (prompt "\n  * * * *    Variable Dump     * * * *")
    (prompt (strcat "\n-> " Plot-Config     " [Plot-Config]- Name if plot, default to Current"))         
    (prompt (strcat "\n-> " (itoa Plot-QTY) " [Plot-QTY]- number of copies of each sheet"))                   
    (prompt (strcat "\n-> " Plot-order      " [Plot-order]- Sort order of tabs \"Alpha\" \"Numeric\" \"Tab\" order")) 
    (prompt (strcat "\n-> " (if RevOrder "True" "False")  " [RevOrder]- t/nil Reverse the order of plots"))
    (prompt (strcat "\n-> " (if PlotAllTabs "True" "False")  " [PlotAllTabs]- t/nil Plot All tabs or use picks"))
    (prompt (strcat "\n-> " (if setlaystate "True" "False")  " [setlaystate]- t/nil set layer state per tab name"))
    (prompt (strcat "\n-> " (if PlotToFile "True" "False") " [PlotToFile]- Flag"))                 
    (prompt (strcat "\n-> " MyPath     " [MyPath]- Path for 'Plot To File'"))         
    (prompt (strcat "\n-> " (itoa Quantity) "[Quantity]- number of sets"))               
    (prompt (strcat "\n-> " (if SaveLayout "True" "False") " [SaveLayout]- Always True- Not an option in this version"))                                           
    (prompt (strcat "\n-> " (if CollateSets  "True" "False") " [CollateSets]- t/nil  Collate plan sets when more than one plotted"))
    (prompt (strcat "\n-> " (if ExcludeTab "True" "False") " [ExcludeTab]- t/nil  Flag to exclude tabs with flag character"))
    (prompt (strcat "\n-> " ExcludeChr " [ExcludeChr]- \"~\" Character marker for exclude tabs"))
    (prompt (strcat "\n-> " (if zoom-all "True" "False") " [zoom-all]- t/nil  Zoom layout before plotting"))
    (prompt (strcat "\n-> " (itoa config#) " [config#]- pointer to config name in list, 0= first item"))
    (prompt (strcat "\n-> Config List [config-list]-> "))
    (setq idx -1)
    (repeat (length config-list)
      (prompt (strcat "\n                              " (nth (setq idx (1+ idx)) config-list)))
    (prompt (strcat "\n-> Tab Name to Plot [tab-list]-> "))
    (foreach tab tab-list
      (prompt (strcat "\n                              " tab)))
    (prompt "\n  * * * *    End Variable Dump     * * * *")
    (prompt "\n=-=-=-=-=-=-=-=-=-=   DEBUG MODE =-=-=-=-=-=-=-=-=-=-=\n")
 ) ; end defun dump_vars
I've reached the age where the happy hour is a nap. ()
Windows 10 core i7 4790k 4Ghz 32GB GTX 970
Please support this web site.