Embedded Dimscale Reactor

Discussion in 'AutoCAD' started by Dan Allen, Jul 11, 2003.

  1. Dan Allen

    Dan Allen Guest

    Posted in the customer files newsgroup is a R14 drawing (saved from vanilla
    2002) has an embedded reactor (maybe more) that changes the dimscale to 96
    before saving, then resets it. I assume my drawing got 'infected' with this
    reactor by inserting or xreffing another drawing. We don't do round-trip
    drawing exchange and so I have no intention of maintaining the integrity of
    any other add-on programs such as ADT or Land Desktop.

    Using superpurge by Manusoft, I can remove the reactors (I'm not sure how it
    works), but I'd rather develop a lisp routine that scans a drawing to see
    what reactors are embedded, and then has options to delete. Any pointers on
    reactor scanning & deleting would be helpful.

    Thanks,

    Dan
     
    Dan Allen, Jul 11, 2003
    #1
  2. Dan Allen

    Mark Propst Guest

    heres a start
    just to see whats loaded

    ;;;From: Cliff Middleton ()
    ;;;Date: 2001-09-19 09:38:14 PST
    ;;;Run this little doo-dad to see if there is an errant reactor you had
    ;;;forgotten to remove.

    (defun c:reacs ()
    (mapcar
    '(lambda (reactors)
    (mapcar
    '(lambda (reactor)
    (princ "\n")
    (princ (vlr-reactions reactor))
    )
    (cdr reactors)
    )
    )
    (vlr-reactors)
    )
    )

    ;my quickie

    (defun ListAllReactors( )
    (vlr-reactors)
    )

    (defun ListAllReactions()
    (foreach r
    (listAllReactors)
    (print (car r))
    (print (cdr r))
    (vlr-reactions (cadr r))
    )
    )


    ;to get rid of
    ;(I think this was from help files, sorry to author if that's not correct)
    ;;;--------------------------------------------------------------;
    ;;; Function: CleanReactors
    ;;;--------------------------------------------------------------;
    ;;; Description: General utility function used for cleaning up
    ;;; reactors. It can be used during debugging, as
    ;;; well as cleaning up any open reactors before
    ;;; a drawing is closed.
    ;;;--------------------------------------------------------------;
    (defun CleanReactors ()
    (mapcar 'vlr-remove-all
    ':)VLR-AcDb-reactor
    :VLR-Editor-reactor
    :VLR-Linker-reactor
    :VLR-Object-reactor
    :VLR-Sysvar-reactor
    :VLR-Miscellaneous-reactor
    )
    )
    )

    not sure if there's specific issues with persistent reactors in removing
    them. check the help.
    good luck
    hth
    Mark


    Any pointers on
     
    Mark Propst, Jul 14, 2003
    #2
  3. Dan Allen

    Doug Broad Guest

    Mark,
    I believe will only work on LISP reactors in the current namespace, not on
    1) separate namespace reactors, 2)VBA based reactors, and 3) ARX
    based reactors.

    Dan,

    If you are using ADT in any part of the process, it automatically establishes
    a default scale (which you can specify) and which you can change. You
    must use the Documentation -> Drawing Setup command rather than the
    dimscale variable to control the aspects of drawing scale in ADT. The
    command name is actually: _AecDwgScaleSetup but I never type it in.

    If you want to eliminate any aspect of ADT, including the smart architectural
    objects, you will need to use AECOBJEXPLODE. That will eliminate the
    dictionaries in the drawing that maintain the architectural information and will
    explode all the custom objects to basic autocad linework.

    I encourage you to try using the ADT methods if you continue to use ADT.

    Doug
     
    Doug Broad, Jul 14, 2003
    #3
  4. Dan Allen

    Dan Allen Guest

    Luis,

    Thanks - I'm short on time today to give this the attention it deserves, so
    I'm probably misunderstanding how I should be looking for the dictionaries,
    as:
    Command: (vlr-pers-dictname)
    "VL-REACTORS"

    gives only that?

    However I did use this code from acadx.com

    ;;;=========================================================================
    =====
    ;;; listDictionaries
    ;;;
    ;;; Purpose
    ;;; Returns a list of all dictionaries defined in the current drawing
    ;;;=========================================================================
    =====

    (defun listdictionaries ()
    (massoc 3 (entget (namedobjdict)))
    )

    to get this:

    ("ACAD_GROUP" "ACAD_LAYOUT" "ACAD_MLINESTYLE" "ACAD_PLOTSETTINGS"
    "ACAD_PLOTSTYLENAME" "ACAD_WIPEOUT_VARS" "AcDbVariableDictionary"
    "AEC_DISP_REP_CONFIGURATIONS" "AEC_DISP_REP_SETS" "AEC_DISP_REPS"
    "AEC_DISPLAY_PROPS_DEFAULTS" "AEC_PROPERTY_SET_DEFS" "AEC_VARS"
    "BNS_VARIABLES")

    I suppose I should cycle through deleting each one till I find the culprit.

    Dan
     
    Dan Allen, Jul 14, 2003
    #4
  5. Dan Allen

    Doug Broad Guest

    Dan,
    To get rid of the behavior, given your drawing contents, you must use
    AECOBJEXPLODE.
     
    Doug Broad, Jul 14, 2003
    #5
  6. Dan Allen

    Doug Broad Guest

    Dan,
    I would suggest asking the Autodesk personnel on either the
    ADT 3.3 or ADT 2004 newsgroup as the source of your
    problem is probably the ADT enablers. If you are
    receiving these drawings from a consultant, then ask
    them to run AECOBJEXPLODE before they send the
    drawings to you.

    There is a registry hack that turns off the drawing scale
    activity. I can't remember which registry key did it.

    Can't help you with the German stuff.

    Regards,
    Doug

     
    Doug Broad, Jul 14, 2003
    #6
  7. DwgSetupDoAcadVars=0

    in the profile's Preferences\AecBase branch.

    --
    R. Robert Bell, MCSE
    www.AcadX.com


    | Dan,
    |
    | There is a registry hack that turns off the drawing scale
    | activity. I can't remember which registry key did it.
    |
     
    R. Robert Bell, Jul 16, 2003
    #7
  8. Dan Allen

    Dan Allen Guest

    Robert,

    Thanks for the tip, looks like there are other settings as well that I might
    want to turn off. Any insight on what they do?

    \Preferences\AecBase
    ViewManagementSystemDiagnostics
    GeometryDiagnostics
    QuickOsnaps
    ObjectRelationshipGraphDiagnostics
    MaintainExplodedObjectBlockProps
    DwgSetupDoZZblk
    DwgSetupDoAcadVars
    DwgSetupDoLispVars
    QuickLayerManager

    Preferences\AecUiBase
    UseCommonPositionForSimilarDialogs
    UseCommonViewerPositionForSimilarDialogs
    ShowNonCurrentVerMsgForOpen
    ShowPrevVerWarningForSave

    Also, my quick test of deleting all the AEC dictionaries didn't work, they
    are recreated at reopening of the drawing.

    Dan
     
    Dan Allen, Jul 16, 2003
    #8
  9. I haven't bothered modifying the others, for fear of making the enabler
    unhappy. ;-)


    --
    R. Robert Bell, MCSE
    www.AcadX.com


    | Robert,
    |
    | Thanks for the tip, looks like there are other settings as well that I
    might
    | want to turn off. Any insight on what they do?
    |
    | \Preferences\AecBase
    | ViewManagementSystemDiagnostics
    | GeometryDiagnostics
    | QuickOsnaps
    | ObjectRelationshipGraphDiagnostics
    | MaintainExplodedObjectBlockProps
    | DwgSetupDoZZblk
    | DwgSetupDoAcadVars
    | DwgSetupDoLispVars
    | QuickLayerManager
    |
    | Preferences\AecUiBase
    | UseCommonPositionForSimilarDialogs
    | UseCommonViewerPositionForSimilarDialogs
    | ShowNonCurrentVerMsgForOpen
    | ShowPrevVerWarningForSave
    |
    | Also, my quick test of deleting all the AEC dictionaries didn't work, they
    | are recreated at reopening of the drawing.
    |
    | Dan
    |
    |
    |
    | | > DwgSetupDoAcadVars=0
    | >
    | > in the profile's Preferences\AecBase branch.
    | >
    | > --
    | > R. Robert Bell, MCSE
    | > www.AcadX.com
    | >
    | >
    | > | > | Dan,
    | > |
    | > | There is a registry hack that turns off the drawing scale
    | > | activity. I can't remember which registry key did it.
    | > |
    | >
    | >
    |
    |
     
    R. Robert Bell, Jul 16, 2003
    #9
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.