[V8i Ss2] Variable Distance Key-In (Based on Active Scale)

All,

I recently stumbled across a key-in string that will orient a North arrow cell automatically when being placed.  This would be perfect if my firm liked to put the "Scale: " text with the same orientation as the arrow but they do not.  Instead we align the "Scale: " text with the view, which I think is pretty common.

Because of this,  I created a second cell, one with the text "$SCALE$" (A text substitution we make with our pen table using named expressions), and I expanded the key-in string to place the scale cell a distance of 1 unit below the arrow cell after the arrow cell is placed.

The string is now...

ac=North;aa=0;accudraw dialog;accudraw setorigin;accudraw rotate top;%d;accudraw rotate view;reset;ac=Scale;dx=0,-1,0;reset

My question then is, is there any way to make the distance of 1 unit a variable amount based off of the active scale?  

Something to the effect of ...dx=0,<as=>*-1,0...

I am anticipating the answer is a no, but I suggested solutions do not have to be limited to the key-in dialog.  I am open to macros and other utilities so long as the end result can get slapped on a function key.

Any suggestions?

Parents
  • what if... you put an ellipse (on a level which doesn't plot) in the Arrow cell surrounding it at the distance you wish the Scale cell to be offset nearest to, then programmatically move the scale cell to contact the ellipse?

    Brent.
  • When you say programmatically are you suggesting a script that can find that point or a user data point entry (%d)?
  • could you  do a screen shot  or pdf of what you want every thing to look like after you done everything

    I'm not sure I understand what your trying to achieve

    ... 

    My work we place the  north cell  via keyin script but I set the active scale  first  from   drg scale 

    The text  that tells you the  printed scale scale is done in the title block by text  substitution

    and we also have a graphic scale bar also drawn in the  title block so it auto scales up and down via the scale factor of the title block for the sheet.

    and the text telling you the plotted paper scale is placed under that via the $SCALE$ text .. this way  even if printed on the wrong size paper   by clients IE I set it to A1 but client prints to A3 ....

    before I came up with the north script, I used to use a dirty little trick I learnt from acaders ..

    Create a ref file  everything 1:1 the way you want  ie title  block, text, north point , text sizes and styles

    Then unrotate your  drawin active view not the ref file above, now attach this ref file via top and at the scale you need it   then copy through the  pieces you need ie the  north point 

    detach 

    return view to correct rotation attach the same ref again via top and match attributes  for text sizes etc ... with Alt Data key.. ( I changed this to  by element not attributes so it works with text) 

    This was before we had sheet views  works very well in model space...

    Lorys

    Started msnt work 1990 - Retired  Nov 2022 ( oh boy am I old )

    But was long time user V8iss10 (8.11.09.919) dabbler CE  update 16 (10.16.00.80) 

    MicroStation user since 1990 Melbourne Australia.
    click link to PM me 

  • Sub main

    Dim startPoint As MbePoint
    Dim point As MbePoint, point2 As MbePoint


    MbeSendKeyin "mdl silentload calculat;ac=North;aa=0;accudraw dialog;accudraw setorigin;accudraw rotate top;%d;accudraw rotate view"
    MbeSendKeyin "ac=Scale;dx=0,-{tcb->yactscle*.8},0;reset;mdl unload calculat"

    End Sub

Reply Children
No Data