Re: Drawing number/name generator??

Having said all the above... I pose my question
> again.... does anyone have a utility or app that will
> generate such numbers? It would "remember" all the
> numbers previously generated....and make sure the new
> one is unique.... no matter WHO used the app.
There was a similar post, not too long ago in this group. It think the
original poster found a solution and posted it. It's not exactly what
you're looking for, but is similar.
I'd be willing to take a stab at something like that for you, though if
you want it free, it would be on my timetable. It wouldn't be terribly
difficult to program for you.
A couple of things to think about:
What do you want to store, number only, number and desription, etc.?
Do you want to store a PLT file for each, as well?
Do you have Access, Excel or similar file (goes to potential usability)?
Reply to
TomD
Loading thread data ...
Something like this?
(defun C:NUMGEN (/ fname numfile num nextnum) (if (setq fname (findfile "dwgnum.dat")) (progn (setq numfile (open fname "r")) (while (setq num (read-line numfile)) (setq nextnum num) );;while (if nextnum (setq nextnum (1+ (atoi nextnum))) (setq nextnum (1+ (* 100 (fix (getvar "cdate"))))) );;if );;progn (setq nextnum (1+ (* 100 (fix (getvar "cdate")))) numfile (open "dwgnum.dat" "w") );;setq );;if (close numfile) (while (not (findfile "dwgnum.dat"))) (if (/= (fix (/ nextnum 100))(fix (getvar "cdate"))) (setq nextnum (1+ (* 100 (fix (getvar "cdate"))))) );;if (setq numfile (open (findfile "dwgnum.dat") "a")) (write-line (itoa nextnum) numfile) (close numfile) (alert (strcat "Next available number is " (itoa nextnum))) (princ) ) ___
Reply to
Paul Turvill
I thought the question was pretty clear:
The way I read it, he wants to "generate [unique] numbers." Period. ___
Reply to
Paul Turvill
Wow Paul!
That was quick
Im very dumb abt LISP tho. How do i run this?
Do I run it from WITHIN Autocad itself? Or can it be run stand alone?
BTW..... THANKS!!
Reply to
john63401
Inside of AutoCAD. First, cut and paste the routine into a file called NUMGEN.LSP, and place that file in your acad path. With AutoCAD open, type either APPLOAD and follow the prompts, or simply (load "numgen"). This adds a NUMGEN command to your AutoCAD installation; just type NUMGEN to use it.
There's a great deal of information on using AutoLISP and Visual LISP in the Customization Guide section of HELP.
...and here's a somewhat different version that actually generates a unique number and renames the current drawing (if it doesn't already have a compliant 10-digit name); instructions as above, but call the file NAMEGEN.LSP, and call it with NAMEGEN:
(defun C:NAMEGEN (/ fname numfile nextnum num) (if (setq fname (findfile "dwgnum.dat")) (progn (setq numfile (open fname "r")) (while (setq num (read-line numfile)) (setq nextnum num) );;while (if nextnum (setq nextnum (1+ (atoi nextnum))) (setq nextnum (gen)) );;if );;progn (setq nextnum (gen) numfile (open "dwgnum.dat" "w") );;setq );;if (close numfile) (while (not (findfile "dwgnum.dat"))) (if (not (wcmatch (substr (getvar "dwgname") 1 10) "##########")) (nameit) (progn (initget "Yes No") (setq yn (getkword "Drawing already named; do you want to RENAME it [Y/N]? ")) (if (= yn "Yes") (nameit) );;if );;progn );;if (princ) );;defun (defun nameit () (if (/= (fix (/ nextnum 100))(fix (getvar "cdate"))) (setq nextnum (gen)) );;if ___
Reply to
Paul Turvill
Oops ... you'll need to include this subroutine in the NAMEGEN.LSP file as well:
(defun gen () (1+ (* 100 (fix (getvar "cdate")))) );;defun
...just add it to the end. ___
Reply to
Paul Turvill
Could've been bad judgement on my part, but I didn't sense any likelyhood of it, from the initial post. ;)
Definitely a point well taken, though.
Paul Turvill wrote:
Reply to
TomD

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.