Jump to content

Joe-SA

Member
  • Posts

    232
  • Joined

  • Last visited

Everything 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. This already exists. I use it all the time. I'm pretty sure I got it from Vector Depot. Joe
  4. 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 );
  5. 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
  6. 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
  7. 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...