Jump to content

Pat Stanford

Moderator
  • Posts

    12,743
  • Joined

  • Last visited

Everything posted by Pat Stanford

  1. As you said, it is a multi-line field. The worksheet is importing all three lines. Depending on what you need, there are a few options. 1. Change the Row Height so that all three rows will show 2. Change the Row Vertical Alignment. By default it is General and you get the bottom of the data. Change it to Top and you will get the top line. 3. Create a custom Worksheet Script that will take the multi-line text and concatenate it back to a single row, possibly with some kind of separator.
  2. You are correct that Chain Dimensions are a different type. Even though they show in the OIP as Dimension, they are actually a Plugin Object. Here is a version of the script that properly handles both regular and chain dimensions. Procedure ChangeDimTextInViewportAnnotations; {November 30, 2016} {© 2008-2016, Pat Stanford pat@coviana.com} {Licensed under the GNU Lesser General Public License} {This script will edit the text properties of a dimension object} {in the Annotations Group of a Sheet Layer Viewport.} {Edit the Const definitions and uncomment the respective part of} {the Change function as necessary to effect the needed changes} {11/30/2016 Revised to handle Chain Dimensions} {No Warranty Expressed or Implied} {Use on a backup copy of your file at your own risk} {Do not use while operating a motor vehicle or heavy machinery} {Use may cause heart palpitations, acne, and dandruff} {If aggrevation persists, consult a doctor.} {This script is intended to also act as a template for other scripts} {to modify objects in the Annotations group of Sheet Layer Viewports} {As such, extra code has been included and commented for ease of} {future changes.} Const {Font='Verdana';} Text_Style='Title Block 12 pt'; {Set this line to the EXACT} {name of the text style to change to} {FontSize=14;} var Hd: Handle; Function Change(Hd:Handle):boolean; Begin if GetType(Hd)= 63 then begin {SetTextFont(Hd, 0,len(gettext(Hd)),GetFontID(Font));} (*Change Font *) SetTextStyleRef(Hd, Name2Index(Text_Style)); end else Begin if ((GetType(Hd)=86) & (EvalStr(Hd,ST)='NNA_ChainDim'))then Begin SetTextStyleRef(Hd,Name2Index(Text_Style)); End; end; end; Begin ForEachObjectInList(Change,1,1,FinGroup(GetVPGroup(FSActLayer,2))); SetZoom(GetZoom); {this is a workaround to get screen to update} end; Run(ChangeDimTextInViewportAnnotations);
  3. OK. This script should change the TextStyle of every dimension in a Selected Sheet Layer Viewport to whatever Text Style you put in in the CONST portion of the script. If you like this and have enough viewports to make it worth while, this basic script could be put in a wrapper that would step through all of the viewports in the document or all of the selected viewports. Let me know if this makes sense. Copy everything in the following code block and paste it into a new blank script created from the Resource Manager. Procedure ChangeDimTextInViewportAnnotations; {November 29, 2016} {© 2008-2016, Pat Stanford pat@coviana.com} {Licensed under the GNU Lesser General Public License} {This script will edit the text properties of a dimension object} {in the Annotations Group of a Sheet Layer Viewport.} {Edit the Const definitions and uncomment the respective part of} {the Change function as necessary to effect the needed changes} {No Warranty Expressed or Implied} {Use on a backup copy of your file at your own risk} {Do not use while operating a motor vehicle or heavy machinery} {Use may cause heart palpitations, acne, and dandruff} {If aggrevation persists, consult a doctor.} {This script is intended to also act as a template for other scripts} {to modify objects in the Annotations group of Sheet Layer Viewports} {As such, extra code has been included and commented for ease of} {future changes.} Const {Font='Verdana';} Text_Style='Notes 12 pt'; {Set this line to the EXACT} {name of the text style to change to} {FontSize=14;} var Hd: Handle; Function Change(Hd:Handle):boolean; Begin if GetType(Hd)= 63 then begin {SetTextFont(Hd, 0,len(gettext(Hd)),GetFontID(Font));} (*Change Font *) SetTextStyleRef(Hd, Name2Index(Text_Style)); end else Begin {message('GetType ',gettype(Hd)); sysbeep; wait(1);} end; end; Begin ForEachObjectInList(Change,1,1,FinGroup(GetVPGroup(FSActLayer,2))); RedrawAll; end; Run(ChangeDimTextInViewportAnnotations);
  4. Something weird is going on with Illustrator. I don't have Illustrator, so I can't track it down from here, but maybe I can help with some more background information. Normally after you CUT or COPY an object the clipboard contains the data in multiple different formats. Then when you Paste, the program choose the version that it thinks will work best. Some applications give you different choices of how the data is stored into the clipboard. Some Application give you different choices on how the data is pulled from the clipboard (Paste Special in Word and Excel). Take a look at the menus in Illustrator and see if there is a Copy As type command. Check your VW menus and make sure the keyboard shortcuts are correct for the type of PASTE you are doing. If you are using a Custom Workspace, especially if it has been migrated from VW2013, try one of the stock workspaces and see if that gets you a better result. If none of the above work, make a small sample file in Illustrator and a VW file showing the improper import and send them directly to VW tech support so they can try and figure out what is happening. Make sure you give them the exact versions of Illustrator, VW, and operating system so they can try to replicate.
  5. I edited my previous message to include the screen shots. I have some scripts somewhere to edit text objects in Viewport Annotations. Let me see if I can dig them out. I just tried the Custom Selection with the Viewport Annotation option checked and it did select the dimensions inside the viewports, VW just won't let you change them from outside the viewport. So using the Custom Selection to get everything, you then would only have to enter the annotations and make the changes. Still a lot of work depending on the number of viewports, but better than having to do the Custom Selection inside each one. But even that, if you saved the selection as a VectorScript would not be too bad.
  6. Tools: Custom Selection will allow you to select the Dimensions and then use the Menus or OIP to change them in Bulk. You can use a worksheet to display the data, but since these are not Record-Fields, you will not be able to make the changes from the Worksheet. You can Right Click on the database row to Select a given object and then use the Menus/OIP to change. Set up a database row with Criteria of: Then in the database header row (Row 3 in the image) set the formulas to the values I have shown in Row 2. I entered the exact same formulas in Row 2 but with a space in front so they show as text instead of working as a formula.
  7. Try and UNGROUP the PDF Page. You should then have a large white rectangle and possibly a bitmap preview of the page that you will want to delete. Below that you should get the vectors and text of the page in an editable format.
  8. I think this will give you what you want for design layers. By using a worksheet Vectorscript you can get the stacking order of the layers by comparing the layer referenced in a database row to the layers in the "Layer List" kept by Vectorworks and accessible by the script. The attached file has a worksheet. The Database of the worksheet looks for a symbol called "Layer Stack Order Marker". There is one instance of this symbol/marker on each layer. Column A uses the formula =L to return the Layer Name that the symbol/marker is on. Column B uses a formula of =RunScript('GetLayerOrder'). GetLayerOrder is a Vectorscript that compares the Layer of the symbol/marker to the list of all the layers in the drawing to determine the stacking order. The number displayed should match the Stacking Order (#) column in the Navigation Palette or the Organization Palette. Try dragging to change the order of the layers in the Navigation Palette and then choose Recalculate from the Worksheet File Menu. A similar method could be used to get the Story information. Any criteria that will return exactly ONE (1) object per layer could be used as the criteria for the database section. Currently the GetLayerOrder script needs to be in the active file. It may be possible to store it in a single location for use across multiple files, but there appears to be a bug that crashes VW in some cases when using an external file. I recommend that you play with the demo file before you add into a large working file. Make sure you have backups before you use. No warranty expressed or implied. Use at your own risk. This file is for VW2017. This should also work in VW2016. Ask if you need more information. RunScript_Test.vwx
  9. The record format for Issues and Revisions needs to be accessible in a Worksheet. Currently the record formats look something like: Rev_1 Description_1 etc Rev_2 Description_2 etc ... Rev_50 Description_50 etc. So without manual entry or very complicated formulas there is no way to get the data into a worksheet. And certainly no way to use the 2-way feature of a simple record.field to allow editing of the data in the worksheet and having it flow back into the revisions. Best in my mind would be to have multiple instances of a very simple record attached that could then be accessed from worksheets.
  10. I believe that Vectorworks is closed until Monday due to the Thanksgiving 4 day holiday.
  11. Hold down the Command key while you drag and you should move in snap grid dimensions. If the object was originally on the grid it should stay on. Similarly, if you hold down the Shift and Command keys and use the arrow keys the object will Nudge by the snap grid. I recommend that you set a much larger grid Maybe 6 or 12 inches in a test file and play with it there so you can easily see the results.
  12. Yes. I strongly recommend NEVER importing a DXF/DWG into any drawing that contains ANYTHING that you care about. The possibility of mucking it up (changes to dash styles, moving origins, etc, etc.) is just to high to make it worth the risk.
  13. Snapshot is an option in the OIP when you have the DTM selected. It might be in one of the sub menus. It allows you to create a graphical representation of the DTM that is static and does not change when you change the parameters of the DTM.
  14. Try this script. Copy everything in the code block below. Go to the Resource Manager and Create a New Resource of type Script. You will probably need to name both the Script Palette and Script. Paste the script code into the Script Editor window. Make sure it is set to be Vectorscript and click OK. Double click on the script in the Script Palette to run it. Procedure SheetLayers_to_Worksheet; {Make a worksheet listing all of the sheet layers in a VW file} {Lists both used and unused layers} {The worksheet is named "Layers:"with and appended date} {Sorts layers in alphabetical order prior to storing in worksheet} {November 17, 2017} {Based on a script originally written} {March 19, 2015} { copyright 2017,2015,2010, 2008, Pat Stanford pat@coviana.com} {Licensed under the GNU Lesser General Public License} var H1, H2: Handle; N1, N2: LongInt; LayerSort : Array[1..1024] of string; Begin H2:=FLayer; N2:=1; While H2 <> nil do Begin If GetObjectVariableInt(H2,154)= 2 then Begin LayerSort[N2]:=GetLName(H2); N2:= N2 + 1; End; H2:=NextLayer(H2); End; {Add Curly Braces (comment out) the next line to not sort the layers by name} SortArray(LayerSort,N2-1,0); H1:=CreateWS(Concat('Layers:',date(2,1)),N2,2); For N1:= 1 to N2-1 do SetWSCellFormula(H1,N1+1,1,N1+1,1,LayerSort[N1]); SetWSCellFormula(H1,1,1,1,1,'Layers in File'); ShowWS(H1,True); End; Run(SheetLayers_to_Worksheet);
  15. What program are you using to open and print the PDFs? If you are not using it, get and try with Adobe Acrobat Reader.
  16. Change the Layer Stacking order in the Organization Palette. Drag the numbers in the # column (right next to the layer name) in Details view.
  17. Mark, Once you have a Viewport on a Sheet Layer, you can then use the Section Viewport command on that viewport to generate extra sections. Unlike on the Design Layer, the Sectioned Viewport can cut through a horizontal plane of the Model in the Viewport. This works with regular Viewports on the Sheet Layer. The Viewport has to be selected before you run the Create Section Viewport command. Zoomer, On a Design Layer, the Section Viewport command always switches back to Top/Plan view, so you can not cut a horizontal section. On a Sheet Layer you can make a horizontal section cut of a viewport.
  18. Congratulation Jim!! We appreciate all the hard work, effort, and political infighting it took to get these changes done. We know you have our backs!
  19. Cut a section of an elevation viewport on a sheet layer.
  20. Check that the sheet layer DPI is set to more than 72 dots per inch. If not all the thin lines will look the same as they will be one dot or about 0.35 mm
  21. As an explanation, the Space Object contains duplicate field for some items, one storing the data in a TEXT format, the other storing it as a NUMBER. TEXT representations can not have math performed on them (Such as SUM). You can use the script in the following thread to determine the field types for any PIO.
  22. Extrude Along Path will only work with a polygon/polyline as the path. You will either need to change your NURB to a poly or do it the other way and convert your 3D poly to a NURBS and use the LOFT command.
  23. The script to do the change is not the problem. The issue is there is not way to trigger the script when you get close. And they will require support from VW, not anything that any third party developer could add IMHO.
  24. If you were in Vectorscript I would suggest using CHR(13) as the return character and concatenating [CONCAT()] the various parts of the string together.
×
×
  • Create New...