Jump to content

Pat Stanford

Moderator
  • Posts

    12,626
  • Joined

  • Last visited

Everything posted by Pat Stanford

  1. In Vectorscript one way would be to get a handle to the first object using FSActLayer and then step through the selected object using NextSObj. You are done when the handle from NextSObj returns NIL. Be careful using these if your routines modify the objects enough that the handle list might change. This is especially important if you are deleting objects or changing their selection state. Sometimes you need to start at the end of the list and work backwards using PrevSObj.
  2. Not that I know of. Sorry, Actually, since this is the Vectorscript forum, the information is valuable with the HHeight and HWidth functions of a script. At least for Rectangles and Ovals which is all I tested this morning. If you then needed that data in a worksheet you could write a script that would attach a custom Record Format to each object and use the above functions to store the VS HHeight and HWidth into the record which could be accessed with a record.field function in the worksheet. The problem is that you would have to remember to run the script every time you changed an object with the attached record.
  3. Take a look at Service Select. You will have to upgrade to 2015, but it will also let you download and run older versions, back as far at 2011.
  4. Be careful with the Width and Height commands. They refer to the projection onto the screen, not the object itself. They will work fine if you are working with rectangles that are parallel or perpendicular to the screen, but as soon as you have a rectangle rotated a few degrees it will not give you the dimensions of the rectangle, but rather of the bounding box you would get if you converted the rectangle to a polygon. =Height - Returns the delta Y (height) of objects =Width - Returns the delta X (width) of objects
  5. Yes, this is basically impossible, especially as your symbols become more complicated and contain multiple classes. If your symbols are simple enough that they only have one class, you can edit the symbol so the Symbol Instance has the same class as the objects in the symbol. Then the Active Class trick will work. But what you probably really need to do is switch your procedure. 1. Set all classes to Invisible. 2. Set None class (or whatever your symbols are in) to Visible. 3. Set Class Options to Show Others or higher. 4. Cycle through classes as you normally do. Since the None class is visible as is the Active class, when you get to a class that is inside a symbol (whose class is None), those objects will be visible. HTH
  6. Yes it should act that way. They symbol instance has a class. The objects inside the symbol have a different class. If you set the class options to Active Only, then one of those two classes will be set to invisible and you won't be able to see them. When using nested objects you have to manipulate the class visibilities individually, not use the Active Only setting. I try to leave all my symbols and groups in the None class and then leave that always visible.
  7. Out of the box there is no way to reset the record fields of a symbol instance to the record default. I think I was working on a script to do this a few months ago. I will see if I can dig it up and finish it. Regards, Pat
  8. Andy, As Andrew said, there is really not a way to "convert" a symbol to a PIO. Based on the relatively simple geometry in you symbol, making the PIO would not be too hard. But let's take a step back. You say you have 200 symbols. Please tell us exactly what you are trying to do and maybe we can help you figure out a better way. If the geometry of all the symbols will be the same, you can "nest" symbols so they will store the record data, but insert as a basic symbol with the labels you want. I just talked about his on another thread yesterday. https://techboard.vectorworks.net/ubbthreads.php?ubb=showflat&Main=40661&Number=201740#Post201740 With the "nested" version, you will only have to draw one symbol. You will then change the fields as needed and make another symbol. By using the Convert to PIO option, when you place the symbol it will eliminate the outside symbol and give you the inside one with the proper record data. Pat
  9. Can you please clarify what you want? 1. Where are the inputs labeled as "Input 1", "Input 2", etc? On the Data tab of the OIP? On the drawing? What are you doing with this information in the OIP? 2. Where do you want the Custom Names to show? On the object in the drawing or in the OIP? If it is in the OIP, do you want the "labels" in the OIP to show the custom data or do you just want the custom value to show next to the standard labels? If you want custom labels, you will definitely have to make a custom PIO instead of a symbol. If you want the data to show on the Shape Pane of the OIP you will have to make a custom PIO instead of a symbol. If you can live with having the custom names show in the Data Pane (and potentially on the drawing), then you can use a symbol with Linked Text to Record.
  10. I think you will need to create an extra level of symbols to do what you want. A single record format is fine. Each Symbol Instance (object placed in the drawing) has its own record data, but when a new Instance is created it will use the Record Defaults. You can override this by making a symbol within a symbol. Create a symbol with attached text and edit the record values to what you want them to be. With that symbol selected, create a new symbol from the first. For this second symbol, click the box that says "Create Plug-In Object." What this means is that it will not insert as the "outside" symbol but rather as the "contained" symbol, but with the record data included. To show that this is turned on, the name of the "outside" symbol will show in BLUE in the Resource Browser. Trying to phrase this a different way. 1. Insert Symbol-A and edit the record data. 2. Select Symbol-A and create a new symbol. Call it Symbol-B. Check the "Create Plug-In Object box". 3. Look in the OIP (Object Info Pallete) the new symbol should have a name of Symbol-B. 4. Drag a copy of Symbol-B into the drawing from the Resource Browser. 5. Look in the OIP. This last object should have a name of Symbol-A, but have the edited record data you are looking for. I hope this is clear.
  11. Do you have Snap to Grid turned on? Either the poly or the dimension could have snapped to the the grid (or another object) rather than having the length you think it should have.
  12. In your smaller worksheet all you need to do is add a second column with a formal of =L. This will give you a column that shows the layer name of each object. With the database headers showing, drag the SUM tile to the column that has the Layer Name in it.
  13. It would be great to have it happen automatically, but check out the attached link for a process I described on AECBytes a long time ago on how to convert a viewport to lines. http://www.aecbytes.com/tipsandtricks/2006/issue7-vectorworks.html
  14. It looks like these are hard coded into the tool. I don't know of a way to change them.
  15. I am not seeing what I think you are describing, but maybe it is my misunderstanding. I draw a room with a vertical wall, two horizontal walls and an angled wall. I put a door in each of them and click the On-Schedule button to show the ID on the drawing. I get the ID set to be parallel to the wall the door is inserted in. If I click the Keep ID Horizontal check box then The text for that door goes horizontal. As far as moving the ID, it seems to be a little funny. First, I would recommend that you Deselect the Wall Insertion Mode button in the mode bar of the Selection tool. This will keep you from accidentally pulling the door out of the wall. Second, it appears that you move the ID with a Click-Click motion rather than the expected Click-Drag motion. Using the Selection Tool, select the Door In Wall. Click once at the center of the ID (there should be a small blue box there) move the mouse pointer to where you want the center of the ID to be located and click again. The ID should move there. You need to click very accurately. It does not seem that the snapping to the ID center snap point responds to the Interactive Cursor Snap Box and Selection Box settings. You need to click very close or exactly on the Selection Handle.
  16. Short answer for now. Drag another SUM tile to the Quantity column. This will actual "UNSUM" the values and give you the value for just one instance. I am trying to think of a better way to store the "inventory" quantities so that you can still access them other than putting them into the record for each object. If I were to set this up from scratch, I would probably create a different symbol for each height cabinet and store the 2H/3H stuff in a record attached to the symbol definition. That way you don't have to manually put the data into each instance.
  17. The answer is no, but there is a work around. A Database section of a worksheet must contain all record fields about the object(s) that are included in that specific subrow, so you can't just mark some columns as being editable fields. The workaround is that the columns in the database section don't have to be from the same record. For editable fields, create a custom Record Format and attach that Record to the objects. Set the criteria for the column to show the fields from the custom Record. You can then enter the data either manually into the cells in the database or using the Data pane of the Object Info Pallette (OIP).
  18. At least with Rectangles (and ovals and rounded rectangles), you can get reshape from center functionality with the Selection tool. If you have the resize from center point selected in the OIP (set of 9 circles) and hold down the Command key (Mac) while moving a corner point, the object resizes from the center.
  19. Check out the script I posted back in 2010 in the Vectorscript Share forum. https://techboard.vectorworks.net/ubbthreads.php?ubb=showflat&Number=148539&Searchpage=1&Main=20191&Words=rotate&Search=true#Post148539
  20. One possibility on why the Str2Num function is not working properly could be that there is other text in the field as well as the number. Is there a degree sign or something similar? Since this is an angle, maybe try Str2Angle instead of Str2Num?
  21. Check your options for ForEachObjectInList. The 2,1 you are using tells it to only operate on selected objects and to recurse into groups. At the beginning of the script you DSelectAll so nothing is selected. Try 0,1 for the options and you should get what you are looking for.
  22. Are the symbols for the three different clients going to be used in a single VW file? Or will the symbol be used in different files for different clients? In the second case you should be able to just assign the graphic to a class and set its attributes By Class. If it is the first case, I think you will have to create three symbols each with a different class for the graphic.
  23. To get scaled dimensions you need to put the dimensions in the Annotations of the viewport. Double click on the viewport and then select Annotations from the part to edit and put your dimensions there.
  24. There are several ways you can do this. The two easiest are Split using the split by line option or create a cutting object and to a subtract solids. You will need to rotate the view so you can get a proper view of the joist so you can see where you want to cut it.
×
×
  • Create New...