Author Topic: Drawing history  (Read 1462 times)

0 Members and 1 Guest are viewing this topic.

jonesy

  • SuperMod
  • Seagull
  • Posts: 15568
Drawing history
« on: July 19, 2005, 09:44:07 AM »
Is there any way that a drawings history can be tracked. For example if I create a drawing, then "Mr Smith" comes along and makes some changes, it is recorded that he has opened the drawing and made unknown changes. Then if "Miss Smith" opens the drawing and binds an xref those changes are recorded.
I want to do this primarily as a training exercise, to figure out who needs to be trained in the correct use of blocks and xrefs, but this could also be useful in tracking how many changes are made to a drawing, whether the changes are our changes, or clients changes etc.

Any ideas anyone?
Thanks for explaining the word "many" to me, it means a lot.

Keith™

  • Villiage Idiot
  • Seagull
  • Posts: 16899
  • Superior Stupidity at its best
Drawing history
« Reply #1 on: July 19, 2005, 10:14:16 AM »
Well, I am not sure you can implement something that would work outside of your office without some sort of EDMS.

In a localized environment, you could use VB based reactors to write data to a log file, but beware, this log file could get exponentially large.
You could capture commands(i.e. end command event) and write out those you are interested in tracking .. i.e. xref, insert, explode ....
When a user closes a drawing (with a save), you could archive the backup file and increment it's name with the current date, thus you would be able to go back and compare the  changes at any time inthe future. Mind you this COULD get into HUGE space needs, depending upon the size of your drawings and how often you edit them.
Proud provider of opinion and arrogance since November 22, 2003 at 09:35:31 am
CadJockey Militia Field Marshal

Find me on https://parler.com @kblackie

SPDCad

  • Bull Frog
  • Posts: 453
Drawing history
« Reply #2 on: July 19, 2005, 01:48:09 PM »
I wrote a small lisp a while back for a client who had a similar problem as you have.

The lisp would ask for a description of what the user had done every time the user saved the drawings. The descrition data plus the user name was saved to a text file, for later viewing and inspection.
I don't believe I have a copy of the source anymore, but I will search my home archives and send it by email if you like.  I don't think it would take much to duplicate the orginal lisp. It was a pretty straight forward lisp.
AutoCAD 2010, w/ OpenDCL

visit: http://reachme.at/spd_designs

jonesy

  • SuperMod
  • Seagull
  • Posts: 15568
Drawing history
« Reply #3 on: July 19, 2005, 01:57:44 PM »
Thanks Keith for your input. Our server is minute, jeez one hard disc on my puter at home is more than twice the size of our works server! - so I guess that the sequential backup method is out.

Would it be possible to just capture some data eg. Name of file, the person who saved, the date saved and flag up if certain commands are used. The file would be unique to a drawing and only need to be a txt file, and most drawings after initial drawing would only be amended 6 or 7 times, and then archived when the scheme is complete
Thanks for explaining the word "many" to me, it means a lot.

Keith™

  • Villiage Idiot
  • Seagull
  • Posts: 16899
  • Superior Stupidity at its best
Drawing history
« Reply #4 on: July 19, 2005, 02:23:03 PM »
That would be relatively easy to do with VBA ...

Create a VBA reactor for the event "EndCommand" ~ in this reactor grab the commands as they are issued by the user. Once those commands are grabbed, test to see what command was issued and if it matches what you want to track, put it in an array.

Create another reactor for BeginClose. In this reactor put the code to open a text file (if it exists) or create a text file and write out the value of the array created in the previous event. Then clear the array variable .. just in case the user cancels the close ... you still get the changes ..

You could test the system variable DBMOD to see if the user actually changed the drawing ... also it will tell if the drawing has been saved .. so you might need to filter for save ... just to be sure ...then again you could use an "EndSave" event .. but I would subclass it just to be sure an error wasn't thrown when the user closes all drawings.
Proud provider of opinion and arrogance since November 22, 2003 at 09:35:31 am
CadJockey Militia Field Marshal

Find me on https://parler.com @kblackie

jonesy

  • SuperMod
  • Seagull
  • Posts: 15568
Drawing history
« Reply #5 on: July 19, 2005, 02:41:59 PM »
Thanks again Keith. I think I'll wait until I have a few more lessons under my belt before I try this! (or is it something that could be worked through as a sample in the VBA course)
Thanks for explaining the word "many" to me, it means a lot.

Keith™

  • Villiage Idiot
  • Seagull
  • Posts: 16899
  • Superior Stupidity at its best
Drawing history
« Reply #6 on: July 19, 2005, 03:01:46 PM »
perhaps ..
Proud provider of opinion and arrogance since November 22, 2003 at 09:35:31 am
CadJockey Militia Field Marshal

Find me on https://parler.com @kblackie