Jump to content

Joe-SA

Member
  • Posts

    232
  • Joined

  • Last visited

Posts posted by Joe-SA

  1. The independent Counter Top PIO includes controls for a sink hole. Just put in your dimensions and off set location.

    Go to your cabinet PIO and toggle off the included counter creation and then place the separate Counter Top PIO with hole on top of it.

    Why the original base cabinet doesn't include hole options is beyond me. Being able to input a symbol name into a PIO field and have it show up right where we want with over or under mount toggle would be nice as well. As is, base, counter, sink, and faucet all need to be separate PIO's or symbols stacked together.

    Joe

  2. We have a lot of Internal Resources in a file. I like to keep the browser pretty small in the corner of the monitor. I seem to spend a lot of time scrolling up and down and toggling the arrows to display some but not other resources...many of which I rarely need to access.

    I'd like to see these dived into 'Panes' like the OIP or have a filter added where we can pick the resource we want out of a pull down menu and have the browser only display that resource. I'd find that much more usable then one giant list even with shading of individual resources.

    Joe

  3. The Issue Manager does a good job of sending dates and notes to a set of sheets and assigns a letter or number designation to that particular sub-set. There is no method to modify that data as a set after it makes it to the title block other than editing each individual title block one at a time.

    I still consider myself a novice script writer but managed to create this Menu Command Plug-In that allows you to input the letter of any existing sheet set and revise the date and notes associated with it in every sheet in the drawing where that issue set was added. Nice when an hour after you put a date on 20 sheets you decide to issue the next day instead.

    Hopefully others find this helpful.

    Joe

    Procedure ReviseTitleBlockIssueData;

    {

    This procedure searches all instances of the 'Issue Data' record created by the Issue Manager

    and takes a user input previously issued set letter and revises the associated date and note to a user input values.

    Sears Architects

    Developed by Joe Hoffner

    Sears Architects

    Last Modified: 10/31/2011

    }

    Var

    Request1, Request2, Request3, Default1, Default2, Default3, IssueLetter, RevDate, RevNote, FName, DName, NName, FValue, FinalCheck : String;

    Record : Handle;

    NoOfFields, X : LongInt;

    Answer : Boolean;

    PROCEDURE ReviseData(ObjHdl : HANDLE);

    BEGIN

    X:=1;

    REPEAT

    FName:= Concat('Number-', X);

    DName:= Concat('Date-', X);

    Nname:= Concat('Note-', X);

    FValue:= GetRField(ObjHdl, 'Issue Data', FName);

    IF (FValue = IssueLetter) THEN BEGIN

    SetRField(ObjHdl, 'Issue Data', DName, RevDate);

    SetRField(ObjHdl, 'Issue Data', NName, RevNote);

    END;

    X:=X+1;

    UNTIL(X>50);

    ResetObject(ObjHdl);

    END;

    BEGIN

    BEGIN

    Request1:=('What is the letter of the Issue Set you wish to revise?');

    Default1:='A';

    IssueLetter:= StrDialog(Request1, Default1);

    END;

    BEGIN

    Request2:=('What is the revised date you wish this issue set to display?');

    Default2:='mm/dd/yy';

    RevDate:= StrDialog(Request2, Default2);

    END;

    BEGIN

    Request3:=('What is the revised note you wish this issue set to display?');

    Default3:='Issue Note';

    RevNote:= StrDialog(Request3, Default3);

    END;

    BEGIN

    FinalCheck:= Concat('Are you sure you want to change issue set ', IssueLetter, ' to the new date ', RevDate, ' and the new note - ', RevNote, ' ?');

    Answer := YNDialog(FinalCheck);

    IF Answer THEN BEGIN

    ForEachObject(ReviseData, (R IN ['Issue Data']));

    END;

    END;

    END;

    RUN ( ReviseTitleBlockIssueData );

  4. Are you managing the Upper and Lower floor display tab from the plug-in Settings?

    The Custom Stair PIO has had this for a while and the more advanced (but strangely limited) Stair PIO just got this ability in VW2012.

    Much better to draw one stair then two, have one stair to edit changes, always have them align from floor to floor and have the flexibility to display each floor in the best way possible for that plan.

    One caution, however, I always run into issues when I try to duplicate one of these stairs to create a second one. Save your favorite configs to the Default file and pull in new ones each time instead.

    Joe

  5. Having the same issue. Haven't found a solution. Would it be possible in the short term to leave the headings blank and draft the text in over top of your worksheet object in the layer you are displaying them. Then group them together. Perhaps better then excel.

    Julian Carr's (OzCAD) Worksheet On Drawing PIO could possibly solve it. Not sure if it works in VW2012, however.

    Haven't tried either solution yet and might largely depend on exactly how your worksheet is laid out.

    Ideally the bug gets fixed in short order.

    Joe

  6. We are in the process of upgrading from VW12.5 to VW2011. I wrote a suite of Drawing Marker PIO's over 10 years ago that I have been using ever since. They have held up surprisingly well over the different upgrades. However, with this latest upgrade they could use some small tweaks. I'm 10 years rusty on my Vectorscript and was never an expert at it in the first place but managed to cobble together from various sources enough information to put together some very useful tools that allows my firm to set some standards that are difficult if not impossible for employees to screw up. In that regard I'd like to maintain them in VW2011.

    The main feature I'm interested in adding is the call to Active Sheet Number in my Drawing Title PIO. I searched through the Function Reference in hopes I could find what I needed to add a few lines of code but instead found I'm too far removed from VS to get where I would like to go.

    NNA tech support suggested I post this question here as my best source of information.

    Below is the script to my Drawing Title PIO. I can configure the VW Drawing Label PIO to look very close to this and could simply save this out as a symbol but I'm interested in removing all the customization controls that PIO has built into it so the rest of my office can more easily stick to the office standards.

    Any assistance you can provide will be much appreciated. Thank You.

    Joseph Hoffner

    Sears Architects

    Grand Rapids, MI 49503

    PROCEDURE ReferenceMarker;

    {

    1999 - Joseph Hoffner

    First Created: 01/14/99

    Last Modified: 1/7/02

    }

    LABEL 99;

    CONST

    {**Starting distances from origin for full size mark**}

    kDistanceA=0.25;

    kDistanceB=0.175;

    kDistanceC=3.5;

    kDistanceD=0.4;

    kDistanceE=0.0125;

    kDistanceF=0.03;

    kDistanceG=0.185;

    kDistanceH=0.32;

    kDistanceI=0.455;

    {**Assigning textsize values to a variable**}

    kTextSize18=18;

    kTextSize10=10;

    kTextSize9=9;

    {** Scales to appear as text in the mark}

    kS1200='Scale: 1" = 100 ft';

    kS600='Scale: 1" = 50 ft';

    kS500='Scale: 1:500';

    kS480='Scale: 1" = 40 ft';

    kS360='Scale: 1" = 30 ft';

    kS240='Scale: 1" = 20 ft';

    kS200='Scale: 1:200';

    kS192='Scale: 1/16" = 1''-0"';

    kS120='Scale: 1" = 10 ft';

    kS100='Scale: 1:100';

    kS96='Scale: 1/8" = 1''-0"';

    kS64='Scale: 3/16" = 1''-0"';

    kS50='Scale: 1:50';

    kS48='Scale: 1/4" = 1''-0"';

    kS32='Scale: 3/8" = 1''-0"';

    kS25='Scale: 1:25';

    kS24='Scale: 1/2" = 1''-0"';

    kS20='Scale: 1:20';

    kS16='Scale: 3/4" = 1''-0"';

    kS12='Scale: 1" = 1''-0"';

    kS10='Scale: 1:10';

    kS8='Scale: 1 1/2"= 1''-0"';

    kS5='Scale: 1:5';

    kS4='Scale: 3" = 1''-0"';

    kS2='Half Actual Size';

    kS1='Actual Size';

    kS0='Not to Scale';

    VAR

    A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, x, y, Length, TheLayerScale, UPI : REAL;

    getUPI : REAL;

    TheScl, Fmt : INTEGER;

    LayerHandle, hPIO, hRECORD, hWALL, Rtext, AutoLength : HANDLE;

    UM, UM2, Title, Scale, MScale, CScale, ScaleSetting, Detail, Page, FontToggle, R1, R2, R3, R4, hNAME: STRING;

    useGraphics , Abort, Done, ALength, status : BOOLEAN;

    UName, DA : LONGINT;

    {*********************************************************}

    FUNCTION getTextScaleFactor (hPIO : HANDLE) : REAL;

    {*/// This procedure determines the factor to use to adjust

    text size if the plug-in is regenerated and the active layer

    has a different scale than the layer on which the plug-in is

    located ///*}

    BEGIN

    IF (IsNewCustomObject (GetName (hPIO))) OR (GetLayer (hPIO) = NIL) THEN

    getTextScaleFactor := 1

    ELSE

    getTextScaleFactor := GetLScale (GetLayer (hPIO)) / GetLScale (ActLayer);

    END; {of getTextScaleFactor}

    FUNCTION getLayerScaleFactor (hPIO : HANDLE) : REAL;

    {*/// This procedure asks if the PIO is existing or not. If new, the scale of the active layer is referenced. If existing, the scale of the layer the PIO is on is referenced///*}

    BEGIN

    IF (IsNewCustomObject (GetName (hPIO))) OR (GetLayer (hPIO) = NIL) THEN

    getLayerScaleFactor :=GetLScale(actlayer)

    ELSE

    getLayerScaleFactor := GetLScale(GetLayer(hPIO));

    END; {of getLayerScaleFactor}

    {*********************************************************}

    {**Main Script**}

    BEGIN

    {**Assigns handles to the PIO**}

    IF GetCustomObjectInfo(hNAME, hPIO, hRECORD, hWALL) THEN BEGIN

    {**Parameters**}

    Title:=PDETAIL_TITLE;

    Detail:=PDETAIL_NUMBER;

    Page:=PSHEET_NUMBER;

    Length:=PLINE_LENGTH;

    ScaleSetting:=PDISPLAY_SCALE;

    MScale:=PManual_Scale;

    CScale:=PCustom_Scale;

    ALength:=PAUTO_LENGTH;

    FontToggle:=PFONTTOGGLE;

    {**Find Scale and define Scale Text**}

    TheLayerScale :=getLayerScaleFactor(hPIO);

    TheScl :=TheLayerScale;

    CASE TheScl OF

    1200 : Scale:=kS1200;

    600 : Scale:=kS600;

    500 : Scale:=kS500;

    480 : Scale:=kS480;

    360 : Scale:=kS360;

    240 : Scale:=kS240;

    200 : Scale:=kS200;

    192 : Scale:=kS192;

    120 : Scale:=kS120;

    100 : Scale:=kS100;

    96 : Scale:=kS96;

    64 : Scale:=kS64;

    50 : Scale:=kS50;

    48 : Scale:=kS48;

    32 : Scale:=kS32;

    25 : Scale:=kS25;

    24 : Scale:=kS24;

    20 : Scale:=kS20;

    16 : Scale:=kS16;

    12 : Scale:=kS12;

    10 : Scale:=kS10;

    8 : Scale:=kS8;

    5 : Scale:=kS5;

    4 : Scale:=kS4;

    2 : Scale:=kS2;

    1 : Scale:=kS1;

    OTHERWISE Scale:=ks0;

    END;

    {**Re-size distances to appropriate scale**}

    GetUnits ( UName, DA, Fmt, UPI, UM, UM2 ) ;

    A1 := kDistanceA * UPI * TheLayerScale;

    B1 := kDistanceB * UPI * TheLayerScale;

    C1 := kDistanceC * UPI * TheLayerScale;

    D1 := kDistanceD * UPI * TheLayerScale;

    E1 := kDistanceE * UPI * TheLayerScale;

    F1 := kDistanceF * UPI * TheLayerScale;

    G1 := kDistanceG * UPI * TheLayerScale;

    H1 := kDistanceH * UPI * TheLayerScale;

    I1 := kDistanceI * UPI * TheLayerScale;

    J1 := Length * UPI * TheLayerScale;

    DSelectAll;

    {**Create mark objects and Title Text**}

    PushAttrs;

    FillFore(65535,65535,65535);

    FillPat(1);

    PenSize(20);

    Marker(0,0,0);

    Oval(x-A1,y-A1,x+A1,y+A1);

    PenSize(14);

    MoveTo(x-A1,y);

    LineTo(x+A1,y);

    {Add these lines to divide the lower half into quarters}

    {MoveTo(x,y);

    LineTo(x,y-A1);}

    FillPat(0);

    TextFont(GetFontID('Palatino'));

    TextSize(kTextSize18 * getTextScaleFactor(hPIO));

    TextJust(1);

    TextVerticalAlign(5);

    TextOrigin(X+D1,Y);

    IF (FontToggle = 'Archie') THEN BEGIN

    TextFont(GetFontID('Archie'));

    END;

    IF (FontToggle = 'Papyrus') THEN BEGIN

    TextFont(GetFontID('Papyrus'));

    END;

    TextFace([bold]);

    IF Title <> '' THEN BEGIN

    BeginText;

    Title

    EndText;

    Rtext:=LNewObj;

    END;

    {**Display Scale **}

    IF ScaleSetting = 'Auto Scale' THEN BEGIN

    TextSize(kTextSize9 * getTextScaleFactor(hPIO));

    TextJust(1);

    TextVerticalAlign(1);

    TextOrigin(X+D1,Y-F1);

    TextFace([]);

    BeginText;

    Scale

    EndText;

    END;

    IF (ScaleSetting = 'Manual Scale') THEN BEGIN

    TextSize(kTextSize9 * getTextScaleFactor(hPIO));

    TextJust(1);

    TextVerticalAlign(1);

    TextOrigin(X+D1,Y-F1);

    TextFace([]);

    IF (MScale = 'Custom') THEN BEGIN

    BeginText;

    CSCALE

    EndText;

    END ELSE

    BeginText;

    MSCALE

    EndText;

    END;

    {**Auto Length Toggle**}

    IF ALength THEN BEGIN

    IF Title <> '' THEN BEGIN

    Length:=GetTextWidth(Rtext);

    J1 := Length + D1;

    END;

    END;

    PenSize(20);

    MoveTo(x+A1,y);

    LineTo(x+J1,y);

    {**Create Reference, Sheet, & Detail numbers**}

    TextSize(kTextSize10 * getTextScaleFactor(hPIO));

    TextJust(2);

    TextVerticalAlign(1);

    TextOrigin(X,Y+B1);

    TextFace([]);

    IF Detail <> '' THEN BEGIN

    BeginText;

    Detail

    EndText;

    END;

    TextJust(2);

    TextVerticalAlign(1);

    TextOrigin(X,Y-F1);

    IF Page <> '' THEN BEGIN

    BeginText;

    Page

    EndText;

    END;

    {TextJust(3);

    TextVerticalAlign(1);

    TextOrigin(X-F1,Y-F1);

    BeginText;

    R1

    EndText;

    TextJust(3);

    TextVerticalAlign(1);

    TextOrigin(X-F1,Y-G1);

    BeginText;

    R2

    EndText;

    TextJust(3);

    TextVerticalAlign(1);

    TextOrigin(X-F1,Y-H1);

    BeginText;

    R3

    EndText;

    TextJust(3);

    TextVerticalAlign(1);

    TextOrigin(X-F1,Y-I1);

    BeginText;

    R4

    EndText;}

    PopAttrs;

    END;

    END;

    RUN ( ReferenceMarker );

×
×
  • Create New...