Jump to content

Pat Stanford

Moderator
  • Posts

    12,626
  • Joined

  • Last visited

Everything posted by Pat Stanford

  1. I think you should think about rebuilding the tower rather than trying to convert it to something that is not there. It looks like each of the sections of truss are the same. Most of them have 7 sections with the bottom one having 5. Either the top or bottom of each section has the "spacer" between sections. I would do the Extrude Along Path and create a symbol of one section and a symbol of one "spacer". Make a symbol that consists of 7 section and one spacer at an end. Duplicate Array this to get the overall height. Either create another symbol for the 5 high at the bottom or just use the original symbols. You will need to manually model the taper at the bottom. Benefit of this is that the symbols will render much faster than a model made of individual extrudes.
  2. Another possibility is viewports. Objects in viewports can report twice, once for the instance on the design layer and again for the image in the viewport. Easiest way to fix this is to make sure your database criteria specify the design layers with the true instance in the model, not the layers that have viewports.
  3. I think you can do what you want. Select an Elevation/Section viewport. Scroll to the bottom of the Shape pane of the Object Info Palette (OIP). Click the Section Line Instances button. The Section Line Instances Dialog box will open. From here you can choose the Design Layers and Viewports you want the Section Line for this viewport to show in. In your case, click the Viewports button and make sure there is a check in front of your floor plan viewport.
  4. Another option is to use a Decal and set the Transparency of the Decal texture to Rectangular Mask and then click the Edit button next to Transparency. From there you can set the number of repetitions of the texture. If you set the Horizontal Repetitions to Infinite and the Vertical to either Single or a Custom number, you will get a horizontal stripe. Vertical Infinite and Horizontal to Single or Custom and you will get a Vertical Stripe. The location of the stripes can be controlled by the Attributes Mapping tool.
  5. You are correct. Currently you can only edit objects that are in the group you are editing. To edit objects in other groups you would have to leave the current one and enter that one.
  6. How would this be different than the current method of Edit Group with Show Other Objects While In Edit Modes preference turned on?
  7. How about View Menu, Unified View Options. Uncheck the box labeled Center View on Activated Layer.
  8. Check you Class Options. Are they set to Show/Snap/Modify Others? If not, the viewport may be in a class other than the active class.
  9. Just to pile on. ;-) If you are using a recent version of VW, you can turn on the preference toggle in the Data Bar. The Data Bar is the right end of second line at the top of the screen. Click on the disclosure triangle to see all of the preference toggles that can be displayed. If you really want a script, here is a one liner that will toggle between show and don't show others while in editing modes. SetPref(14,(not getpref(14))); Copy and paste that into a script and you should be set. If you make it into a menu command you could even add it to your workspace and add a keyboard shortcut.
  10. I posted a script back in January that replaces all the loci in a drawing with circles. It would be easy to update that to use symbols instead or the center mark tool. Take a look and see if this would help your workflow. If so and you need help in modifying the script to meet your needs let me know. https://techboard.vectorworks.net/ubbthreads.php?ubb=showflat&Number=157918#Post157918
  11. Click the Quote or Quick Quote buttons at the bottom of the message. Quote and Reply give you a bigger palette of tools to better format your message. Quick Quote and Quick Reply are just text.
  12. Peter, I think we have close to a winner. Fit Walls does not work to fit to a Window in Wall projecting above the top of the wall. It does work on an individual Window object. I only tired this with a window in the lower wall extending past the top, but it should work the opposite way as well. So: 1. Make sure Offset Duplication is off 2. Duplicate the window that crosses the walls. It should show as a simple Window object in the OIP. 3. Select the upper wall. 4. Select Fit Walls to Objects from the menu. Tell it to fit to the layer with the lower wall and the duplicated window. 5. Click OK 6. Select and delete the now extraneous window.
  13. Another option is to notch one of the walls around the window using wall peaks and the Reshape tool. There is a very old demo movie (2007) that shows the idea. The specifics have probably changed a little since then, but the concept is still useful. http://www.vectortasks.com/Movies/Movies.html Look for the move called Notch_Walls_Around_Window.zip
  14. Probably time to rebuild the workspace from scratch. Moving it forward over multiple versions is not usually a good idea. If you switch to one of the standard workspaces does the nav palette work properly? If so you will need to spend the time to recreate it.
  15. Place a door object in a drawing (not a door in wall), select it and run the script from this thread: https://techboard.vectorworks.net/ubbthreads.php?ubb=showflat&Number=108487#Post115054 You will get a worksheet showing the exact Record and Field Names that you need to use as the formulas in your door schedule. It looks like you might want to use 'Door'.'GlazingClass', but I am not sure if that is what you are looking for or not.
  16. I don't understand. You mark a class in the yellow at the top. This then populates a database row at the bottom. What are you doing that brings up the Custom Selection? For me If I right click on a subrow header (i.e. 43.2), I get an option to Select Item. If you click on that, the associated item in the drawing will be centered on the screen and the visibilities changed so it can be seen. Kind of like Force Select. What exactly is it doing for you?
  17. I just tried it and it worked for me. It sounds like you somehow ended up with extra text in the script. Try this. Go to the Vectorscript share forum (see link above) and Copy just the code from the First Line Procedure Classes_to_Worksheet; through the last line Run(Classes_to_Worksheet); Go into your VW file and in the lower right disclosure arrow in the Resource Browser choose New Resource in. Then choose Script. If you have no script palettes it should offer to create one with a default name of Palette-1. If you already have one or more script palettes, it should let you choose one of them or create a new one. It will then ask you for the name of the script. After you click OK a blank Script Editor window should open. Paste the script you copied into the window, making sure there is nothing before Procedure and nothing after the semicolon at the end of the RUN line. Click the little gear at the top of the window and it will run a compile test to make sure the code is correct. Click OK to save the script. You can now double click the name of the script in the script palette to run it. If this does not work, let me know and we can see what else we can work through. Perhaps you can COPY all of the script from the script editor (open the script to edit either through the resource browser or by option-clicking on the script name in the palette). and send it to me in a direct message.
  18. Also, would this be easier to use as a menu command that gave you dialog boxes rather than the spreadsheet format?
  19. Since texted classes aren't really nested, just simulated by the dash (-) in the name, you should be able to rename the class to get rid of the "higher level" classes and then run the purge to delete the "higher level" classes.
  20. Grant, Is the worksheet close enough to what you want and usable? If so, I can try to find time to work up a Layer first version. If not, I'll spend the time on something else.
  21. It is probably easier to figure out how this all works from the worksheet than from the script. In the worksheet I just used the script to create a single database line for each class using a formula similar to: =database(If(A5<>'',C=B5,C='Name never to be used by a real class')) The trick in the script is to use CHR(39) to generate the single quotes needed as delimiters in the formula.
  22. I wanted a "Class Name" that was unlikely to ever be used in an actual file. I figured that if someone used that string as an actual class name there would already be cursing enough that it might be funny to see that displayed for every one of the database lines. But probably not.
  23. I thought you would like it Michael. I didn't know that you could use an IF statement in a database definition until I tried it yesterday.
  24. Maybe not exactly what you are looking for, but I just posted a script that is kind of close in the Vectroscript Share forum. https://techboard.vectorworks.net/ubbthreads.php?ubb=showflat&Number=210046Post210046 Run the script on a file and it creates a worksheet listing all of the classes in the file and the number of objects in that class. Mark a class in the worksheet and a database of all the object in the class opens towards the bottom of the file showing the class, layer and object type. Take a look and let me know what you think.
  25. OK, I updated this again. This one is kind of nifty. It goes through and makes a list of all the Classes (used and unused) in a file along with the number of objects in that class. Just like before, but with better formatting. The Nifty part is that I have added some database integration. After you run the script to create the worksheet, if you change any of the yellow cells in column A from blank to anything (try typing an X), a related database row at the bottom of the worksheet will open showing subrows for every object in the class. Each subrow will show the Class, Layer and Object type. Like with any other database, you can right-click on the sub-row row header (i.e. 40.7) and SELECT that item in the drawing and change views so it is visible. Please note that this is a fairly slow script and worksheet. It takes about 25 seconds on my 2008 MacBook Pro to run on a file with about 50 classes and 1300 objects. It has to make a separate database for each class and every object in the drawing will be included in one of those databases. Use at your own risk. Procedure Classes_to_Worksheet; {Make a worksheet listing all of the classes in a VW file} {Lists both used and unused classes} {The worksheet is named "Classes:"with and appended date} {April 10, 2015} {Updated for formatting and to add database integration} {Set any of the yellow cells in column 1 to non-blank and the related} {database row at the bottom of the worksheet will show subrows for each item in that class} {Set the yellow cell back to blank (select, delete, enter/return, and the database subrows} {will disapper. The database rows show the Class, Layer and Object type for the related object} {October 13, 2010} {Updated to sort classes in alphabetical order prior to storing in worksheet} {As of VW2011, there is not way to get the display order of the classes in the Nav Palette} {October 14, 2008} {? 2010, 2008, Coviana, Inc - Pat Stanford pat@coviana.com} {Licensed under the GNU Lesser General Public License} var H1, H2: Handle; N1: LongInt; ClassSort : Array[1..1024] of string; Formula : String; Result : Boolean; Font,Size,Style:Integer; Begin SetCursor(WatchC); H1:=CreateWS(Concat('Classes:',date(2,1)),(Classnum+2)*2,4); SetWSCellAlignment(H1,1,1,ClassNum+2,2,5); SetWSColumnWidth(H1,1,1,20); SetWSColumnWidth(H1,2,2,200); SetWSColumnWidth(H1,3,3,200); SetWSColumnWidth(H1,4,4,200); Result := WorksheetMergeCells(H1,1,1,1,3); GetWSCellTextFormat(H1,1,1,Font,Size,Style); SetWSCellTextFormat(H1,1,1,(ClassNum+2)*2,4,Font,14,Style); SetWSCellTextFormat(H1,1,1,1,1,Font,18,1); SetWSCellTextFormat(H1,2,1,2,4,Font,14,1); SetWSCellTextFormat(H1,Classnum+4,1,ClassNum+4,4,Font,14,1); SetWSCellBorders(H1,3,1,ClassNum+2,3,True,True,True,True,7); SetWSCellOutlineBorder(H1,3,1,ClassNum+2,3,2,25,1); SetWSCellBorders(H1,Classnum+5,1,(ClassNum+2)*2,4,True,True,True,True,7); SetWSCellOutlineBorder(H1,Classnum+5,1,(ClassNum+2)*2,4,2,25,1); SetWSCellFill(H1,3,1,ClassNum+2,1,1,5,0,1); SetWSCellFill(H1,ClassNum+5,1,(ClassNum+2)*2,1,1,1,0,1); For N1:= 1 to Classnum do ClassSort[N1]:=ClassList(N1); SortArray(ClassSort,ClassNum,1); For N1:= 1 to Classnum do Begin SetWSCellNumberFormat(H1,N1+2,2,N1+2,2,13,0,'',''); SetWSCellFormula(H1,N1+2,2,N1+2,2,Concat(ClassSort[N1])); Formula:=Concat('=Count(C=',CHR(39),Classsort[N1],CHR(39),')'); SetWSCellFormula(H1,N1+2,3,N1+2,3,Formula); Formula:=Concat('=Database(C=IF(A',Num2Str(0,N1+2),'<>',CHR(39),CHR(39),', B',Num2Str(0,N1+2),',',CHR(39),'PTS!@#$%^&',CHR(39),'))'); SetWSCellFormula(H1,ClassNum+4,2,ClassNum+4,2,'Class'); SetWSCellFormula(H1,ClassNum+4,3,ClassNum+4,3,'Layer'); SetWSCellFormula(H1,ClassNum+4,4,ClassNum+4,4,'Object Type'); SetWSCellFormula(H1,N1+ClassNum+4,0,N1+ClassNum+4,0,Formula); SetWSCellFormula(H1,N1+ClassNum+4,2,N1+ClassNum+4,2,'=C'); SetWSCellFormula(H1,N1+ClassNum+4,3,N1+ClassNum+4,3,'=L'); SetWSCellFormula(H1,N1+ClassNum+4,4,N1+ClassNum+4,4,'=T'); Message('Number of Classes Processes: ',N1); Wait(1); End; SetWSCellFormula(H1,1,1,1,1,Concat('Classes in File:',date(2,1))); SetWSCellFormula(H1,2,2,2,2,'Class Name'); SetWSCellFormula(H1,2,3,2,3,'# of Objects in Class'); RecalculateWS(H1); SetCursor(ArrowC); ClrMessage; ShowWS(H1,True); End; Run(Classes_to_Worksheet);
×
×
  • Create New...