Jump to content

Pat Stanford

Moderator
  • Posts

    12,626
  • Joined

  • Last visited

Everything posted by Pat Stanford

  1. Depending on how the PDF was created it might be a problem with the PDF not lining up the vector and raster portions. Try Peter Cipes idea and Ungoup the imported PDF. You should end up with three objects. Top: A raster image object. Delete this. Middle: A plain white rectangle that represents the page. Delete this. Bottom: A group containing all of the vector information in the file. Trace this or enter/un-group and use the objects as they are.
  2. width and height should be defined in the PIO parameters, not as variables in the script. To run from the script you need to have them declared as you have them now. Comment the variable definition before converting to a PIO.
  3. Convert to Group? but this will let them fairly easily make it back into a symbol. Convert to Lines? even harsher, but still able to take the lines and make a new symbol.
  4. Check the snap grid settings and turn off the Snap to Grid constraint.
  5. So you want to select a single instance of the symbol and have the script select all the instances of the same symbol? Something like this should work. I have not run this so there may be some errors. PROCEDURE SelectSameSymbol; VAR h:HANDLE; name:STRING; BEGIN h:=FSActLayer; name:=GetSymName(h); DSelectAll; SelectObj(S=name); END; RUN(SelectSameSymbol); There used to be some kind of an issue with setting criteria using variables. The work around was to set the entire criteria to a string variable and then just put that single variable into the function/procedure that needed the criteria.
  6. You can use ForEachObject and then make the first step of your called procedure a test to see if the object is selected and only process it if it is. Or you could do as Matt suggested and use ForEachObjectInList so the called function will only get handles to the objects that are selected. Or you can just set up a loop and use FsActLayer and deselect the processed abject at the bottom of the loop. When FSActLayer returns a nil handle you have processed all the objects (on the active layer). Really depends on what you are trying to do..
  7. Try adding a REDRAW command at the end of the script. If that does not work try ReDrawAll.
  8. If you scroll all the way to the bottom right of the worksheet you will get a funky looking cursor that will let you drag in new columns and rows at the right/bottom.
  9. Try the Tangent Arc mode of the polyline tool. It was kind of designed for tracing freeform paths.
  10. Copy Symbol-B. Create a new file and paste Symbol-B into it. Rename (in the new file) Symbol-B to Symbol-A. Save the file somewhere easy to get to. Switch back to the original file. Using the resource browser navigate to and show the symbols in the new file. Select Symbol-A (the renamed Symbol-B from the new file) and Import it. You should get the dialog box asking you to use, rename or cancel.
  11. Move symbol B to a new file. Rename it to the same name as Symbol A in the file you want to change. Navigate to the file with Symbol B via a resource Browser. Select Import. You should get a dialog box asking if you want to replace. Select yes. Rename the Imported "Symbol A" to Symbol B. The above assumes that you only have Symbol B there to replace Symbol A. If you actually have multiple instances of Symbol B you will probably have to convert both A and B to a temporary symbol and then replace them both.
  12. When you create a new design layer there is a section at the bottom of the New Design Layer dialog box labeled Creation Options. By default this is set so that newly created Design Layers are set to be invisible in Saved View and Viewports. I think if you change the default (by creating a dummy (or needed) new layer) to Visible, then the New Layers created in the referenced file will show up, but I have not had time to test this. Regards, Pat
  13. Yes. Create a database showing the objects you want. Include a column with a formula of =C to show the class of each object. Manually edit one of the classes to be what you want. Copy that value. Select all of the subrows that you want to have that value. Paste. Paste in a VW worksheet is different than Paste in Excel. In a worksheet, if the copied area and the selection to paste into are different, VW will try to repeat the pasted value into all of the cells. If you only have a single cell copied, it will act to paste that value into all of the selected cells.
  14. This was suggested before, but just to confirm, are you trying to measure off of a viewport of an elevation on a sheet layer? If so, you will need to enter the Annotations to do so. Sheet layers are always at a 1:1 scale. Each viewport has its own scale. If you dimension or use the tape measure tool on the sheet layer you will get the real world distances between the drawing objects on the sheet. If you do this inside the Annotations, you should get the correctly scaled dimensions.
  15. I think you have to roll your own. See the Function Reference for Export PDF Pages and the associated functions/procedures.
  16. There would be huge outcry and gnashing of teeth if this was eliminated. Just as if the ability to have separate 2D and 3D portions of symbols. Just because you don't use a feature does not mean that no one does.
  17. Two ideas I can think of if you don't want a normal record. 1. Use text in a hidden class Benefits: Easily changed by the user Problems: Easily changed by the user. Bounding box will grow larger. 2. Use a hidden record format Benefits: Not easily changed by the user without a script Problems: Not easily changed by the user without a script It kind of depends on how you are going to use the info. If you attach a record format as Jonathan suggests, you can then run a script that will make that format hidden. I think it is SetPrefBoolean(H1,900,False). If you know the format name and fields you can still access them through a worksheet, but there is no easy way to get at the info otherwise without a script.
  18. Editing the criteria should have worked. What do you mean by "in the header add criteria"? 1. Make sure the database header row (i.e. 4, not 4.1, 4.2, etc.) is visible. If it is not, go to the triangle pull down menu over the row headers and select Database Headers. 2. Right Click on the row header for the database row. 3. Choose Edit Criteria. 4. Click the More Option button at the bottom left of the window and add a new criteria of Layer Is "you layer name" 5. Repeat as necessary for schedules for other layers.
  19. Have you tried a dynamic array of Char? This can be as long as you want. In most places strings and arrays of Char are interchangeable. This is written up in the Vectorscript Language Guide.
  20. Create a custom record format with f numerical filed for the factor. I will use Benson.Factor as an example. Attach the record to all of the objects in the database. Set the formula in column G to be. =Benson.Factor. You should now be able to set up a formula in column H like. =G5 * window.width. And you should be able to enter the factors directly into the database and have them automatically transferred to the objects. The trick is that everything in a database has to be part of a record, but they don't have to be part of the same record..
  21. One and only one object in a file can have the same name. So if you duplicate the object the public ate has no name as that function is entirely handled inside vectorworks. If you copy paste the object, it goes onto the system clipboard. When you paste it it "changes" the name so it is not a duplicate. The rules are not very clear except that one and only one object can use a name in a inlet drawing. Try to create a class called Door in a new file and then use the door tool and see what happens. Or Window. Or Sab. Pat
  22. If you only have a one button mouse you can simulate a right click by holding down the CTRL key and clicking. Try right clicking on other objects. There are a lot a context sensitive options for many objects. i.e. if you right click on a viewport you will have options to edit the crop or annotations as well as other things.
  23. Right click on the Row Header (Database Header row) where it say 3 (not 3.1, etc.). Select Edit Criteria. Add a new criteria of Layer is XXXX. Close the dialog. You may have to Recalculate the worksheet.
  24. Simple answer: No. Explanation: Walls (and groups, and symbols, and PIOs) are "Container" objects. When the container is made invisible, all of the objects inside the container also become invisible. Possible Work Around: Make sure you are using By Class attributes for your walls. In a viewport set the Class overrides to use a zero line weight and no fill. That will allow the container object class to remain visible while the graphical representation will not be present.
  25. Make sure you have the database header row (3. Not 3.1, 3.2, etc. ) visible first. If it is not use the little triangle pull down menu ( above the row labels) to put a check mark next to Database Headers. Then right click on the row label(ie. 3), and select Edit Criteria..
×
×
  • Create New...