Jump to content


  • Posts

  • Joined

  • Last visited

Everything posted by Joe-SA

  1. When you are inside the Settings of the PIO you can Browse to the Default Stair configurations. This file is in the Default sub-folder of your Library folder in your Vectorworks application folder. Create your own stair configs and save them as symbols into this same file and you can recall them straight from the Browse feature of the Stair PIO. Do the same for all the other default objects...wall styles, hatches, textures, Custom Door Leaves, etc. Joe
  2. Yes, that's all it is. My comments about classes and methods of achieving a nice gray tone to the background were just ways to enhance the output further. The base method, however, is quite simple. Put your roof and walls into two separate SLVP's instead of one. Place a masking polygon in between them. Perhaps with floor slabs a masking polygon isn't even needed anymore. Just turn on the floor slab beneath the upper walls and you get the same effect. Joe
  3. Speaking just to the Dropbox setup... I have our entire Library on Dropbox. Here was my method. Once copied to Dropbox I renamed the original library folder to Library(original) so it was saved but ignored by VW. I then created a new Library folder and created alias' to each folder located in my DropBox library. The only exception here was Favorites. Each users Favorites need to be pointed to their own installation of DropBox on their own drive so these had to be created at each station. Once created at each station, however, all worked well. Even without any Favorites the Vectorworks Libraries folder in the Resource Browser got to the DropBox library correctly. One caution, I originally tried to just create one alias named Library linking all contents inside to DropBox but the Favorites conflict caused VW to error out because the paths set in Favorites confused it. Keep Favorites out of DropBox. This setup allowed for all Default Content from any tool that references Default content to pull it from the DropBox libary. Anybody who adds anything like a symbol or a wall type back to the library it becomes immediately available to all other users. I created this setup because I had one guy who works from home 2 days a week but still needed access to our common library. This way he has it because its all part of his DropBox on his computer. Even from home, however, if he is on-line with his computer he is syncing with DropBox and always up to date with the latest revisions. Even if its only a few minutes after an update. Joe
  4. The tried and true method would be to make a symbol from the window plug-in and then independently create 2d only and 3d only objects inside each symbol component so each display the way you want them to. You may be able to put the wall segments suggested previous right into the symbol. You might have issues making each look seamless but with some fussing you can usually get past that such as inserting symbol without caps and/or texture mapping, etc. This is never the first chosen method but usually works as a last resort. Haven't used the Symbol Hole Component much since introduced but could be beneficial here at some capacity. Joe
  5. Are you asking for a CornerBoard image (the boards that cap the siding profile at building corners) or for a trim profile that wraps a window opening? or both? Incidentally, Vector Depot has a suite of tools known as Mouldings that does trim at openings. I haven't used it but it looks like it would be a great add-on. Joe
  6. The method I describe adds flexibility to how you display the end result in your SLVP's. The modeling process is unchanged and therefor remains 'simple'. Future edits to roof objects would be more simple having to manipulate one objects instead of two for each face that spans 2 stories. I am intrigued by the 3d view of the story showing the roof planes beneath the cut, however. Back in about 1995 I was working in DataCAD and they had a Clip Cube feature that allowed you to draw a 3d cube and either display the interior or exterior of the cube. Display feature only...no cuts were made. It would be like adding a Z base and height to our viewport cropping. Wouldn't that be slick? Joe
  7. Not knowing the shape of the roof you are making let me say...sometimes its best to make your roof out of a collection of Roof Objects and not try to make the entire roof out of one single object. Most dormer roofs, for example, are better as stand alone Roof Objects that you snap to holes cut into the main Roof Object. I never use Roof Faces because of the poor (and very different from Roof Objects) control of textures. This is despite the ability to extend and connect Faces to other objects. Faces also don't interact with symbols if you wanted to insert a skylight. The ability to extend a roof plane to another object really needs to be added to single plane Roof Objects at least if extending individual planes of a multi-faced Roof Object is too complicated. Joe
  8. Still works. In the past year I've made the jump to having my finished CD elevations generated about 99% from my model. No more elevation drafting. Not crowns, not siding hatch, and thanks to your PIO not corner boards, either. Once I got a handle on setting line weights by class and using NURBS curves in all my EAP objects I got very good and acceptable results. Even surprisingly good results. Joe
  9. oh, one other thing.... Don't forget the use of viewport cropping. If you have a small second floor over a sprawling first floor you can crop this background viewport just enough to give context to the second floor without showing the entire first floor around it. Joe
  10. I might be misunderstanding your intent here but I do the following: Create a viewport to the floor plan only including all knee walls and gable walls. Create a second viewport that contains the roof plan. Stack the roof VP beneath the plan VP. In addition you could take the roof only viewport and add grayed first floor plan to it. Then you can draw a solid polygon stacked between these two viewports as a mask so the second floor plan stays readable but you still see your roof and perimeter first floor walls that surround this plan. Creative use of classes allows you to turn off furniture and cabinets on first floor if you wish. You could even dash the first floor lines and or turn off the interior walls all together to show just the perimeter walls. Whatever you wish. If the gray layer toggle isn't good enough set the gray tone in the Use Layer Color setting in the design layer and print with this toggle on. Then the surrounding info can be as light or as dark as you want depending on the depth of the gray you choose. Since its in a separate viewport it doesn't mess with your second floor plan at all. If, however, graying your original first floor plan layer messes up your display elsewhere you can Layer Link (are these still around?) or DLVP to a different layer...call it 1-background or something. Set that layer to a gray Use Layer Color and then reference that to your viewport. Original first floor plan is unchanged. In the case of a balcony looking down to the first floor this method fails to show the actual horizontal cut through the roof at the second floor level but we would typically be satisfied with the second floor plan, roof plan, and first floor walls all showing and skip the actual horizontal roof cut. One caution, don't toggle on gray layer AND set Use Layer Color. You actually get a double lightening in the VP. Use one or the other. Touched on a lot of topics here. Hope its not too confusing. Joe
  11. Love that Extrude Along Paths can be co-planer. Crowns on gable rakes are simple now when they used to be too much trouble to bother. However, I'm still longing for Julian Carr's 3D manager. Here is a list of things it could do 10 years ago that current EAP's can not do but should. - multiple objects per extrude - class settings of each object determine texture allowing for multiple textures in one extrude - Symbol based profiles allowing for sharing of profiles easily between files through the Resource Browser and the creation of default libraries of common profiles. Also allowing for quick reference to a profile when you want to create another identical EAP that just has a different path. - and I might still be able to make some progress on the technique here but in 3D manager I would be able to keep the origin of the profile and path common with the overall file. When I had 6 different objects that had different paths but identical profiles I could just draw the new path and cut and paste it into a duplicate of the symbol(3D manager) or now the EAP object and regenerate. The new object would show up exactly where expected. Unique origins for EAP's make this impossible. - rotation and orientation seemed to be very predictable. I'm constantly flipping and rotating in the EAP to get what I need. I may have some things to learn still on this but it would be nice if I could match the origin of the path object to the overall drawing origin so I can cut a path drawn in the drawing into the path setting of the EAP and have the object show up in the right place. I also can't stand the origin of the profile defaulting to the center of the profile object. It would be nice if I could select a locus point in addition to my profile and the EAP would assume I want my origin at the locus point. Never do I control the final location from a center point but some offset distance which means I always have an additional edit for final location both for path location on the drawing and for profile orientation to that path. Neither should be necessary. Joe
  12. 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
  13. 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
  14. This already exists. I use it all the time. I'm pretty sure I got it from Vector Depot. Joe
  15. 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 );
  16. 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
  17. 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
  18. 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...