Jump to content


  • Content Count

  • Joined

  • Last visited

Everything posted by WhoCanDo

  1. Hi, I wish to add a Field Name value to a Wall item within the perimeter of a 2D polygon object. At the moment, I have given the polygon a Name and then .. ForEachObject (Record_Data, (Loc = 'Tmp') & ((T = Wall) or (T = RoundWall))); However, some of the Wall items lie within the perimeter of a group of polygons. The group, for example contains one large polygon and another smaller polygon within it's boundaries (representing a cutout). Now, how do I do the same as above for a group?
  2. WhoCanDo

    Finding objects within a perimeter

    Thanks Pat, No problem finding the bigger polygon, but (Loc = 'Tmp') does not seem to work on a group. procedure Test_2; var x : integer; h, hG : handle; NetArea : real; IsGroup : boolean; procedure Count (hC : handle); begin x := x + 1; end; begin h := FSActLayer; IsGroup := False; if (GetTypeN (h) = 11 { Group }) then begin SetDSelect (h); DelName ('Tmp'); hG := FInGroup (h); NetArea := HArea (hG); DoMenuTextByName ('Copy', 0); hG := NextObj (hG); while (hG <> Nil) do begin if (NetArea < HArea (hG)) then begin NetArea := HArea (hG); DoMenuTextByName ('Copy', 0); end; hG := NextObj (hG); end; DoMenuTextByName ('Paste In Place', 0); h := LNewObj; IsGroup := True; end; DelName ('Tmp'); SetName (h, 'Tmp'); ForEachObject (Count, (Loc = 'Tmp') & ((T = Wall) or (T = RoundWall))); message (x); end; run (Test_2);
  3. Hi, I thought there was a "Worksheet" topic previously, but I can't find it so I've ended up here. I want to list the layer name in a worksheet. I want the worksheet cell to show the name of the layer that the worksheet is inserted on ("Worksheet On Drawing"). I also want only part of the layer name so I was thinking of something like "=(Right (LayerName, Len (LayerName) - Pos ('-', LayerName)))" (eg. "Layer-1" returns "1") Can this be done?
  4. WhoCanDo

    Listing layer name in worksheet

    Thanks Pat, sorry, didn't get the notification by email that you replied. A bit odd. We have our own titleblock on it's own layer @ 1:1 which is visible. This layer has the prefix drawing number 12345 - 1 - We have another invisible layer (Detail Layer-1) we are using to draw and dimension components (say 1:5). This layer has the suffix 1 to finish the drawing number. We then duplicate the invisible layer (automatically becomes Detail Layer-2) and draw the second component, and so-on. This layer will have suffix 2. We would like something to automatically reflect the layer number to complete the drawings number. However, if I was to write a script then I would not need the worksheet option. On reflection, your idea may be sound. I could write a macro that duplicates the layer and fills in the worksheet. This would alleviate another problem we have when we change the layer scale from one scale down to another. If we use the text "1" at 10pt, then it becomes smaller and requires us to resize the text. Annoying. Worksheet text is independent of the layer scale 😃 If you can offer an alternative, I'm all ears. Thanks
  5. WhoCanDo

    Duplicate Symbol Script

    We do the same with the script I gave you. It's a great way of modifying a set of components without affecting the others.
  6. WhoCanDo

    Dimension tool ID

    Another idea would be simply 1, 2, 3, 4, etc. so that it can be implemented typically to all tools with options.
  7. Hi, I would like to see which dimension option is picked by changing the mouse pointer respectively. I can never get the hang of hitting "n" on the keyboard and remembering that the last dimension option I used is not necessarily the one I want now. Maybe the single letters L (Linear) C (Chain) B (Baseline) O (Ordinate) S (Selected) could appear above the mouse cursor to tell me what option is active 😊 At the moment, the Linear and Selected have one mouse cursor, and the Chain, Baseline and Ordinate have another, but I use Chain and Ordinate which have the same, and it's annoying.
  8. WhoCanDo

    Duplicate Symbol Script

    Here's one I wrote years ago. It doesn't do exactly what you want, but may be it's a start. { 20150713 - First written. } procedure Main { Copy_to_New_Symbol }; var h1, hL, hG : handle; N : string; {••••••• PROGRAM ••••••••} begin ClrMessage; DSelectObj (T <> Symbol); if (Count (Sel = True) = 1) then begin h1 := FSActLayer; DSelectAll; SetSelect (h1); Message ('Original Symbol Name : ', GetSymName (h1)); Duplicate (50, 50); hL := LSActLayer; SetDSelect (h1); SymbolToGroup (hL, 0); hG := FSActLayer; HUngroup (hG); DoMenuTextByName ('Create Symbol', 0); DeleteObjs; hL := LObject; N := GetName (hL); SetActSymbol (N); SetTool (-209); { or -309 for 3D symbols } hL := LSActLayer; if (YNDialog ('Do you want to delete the original symbol ?') = True) then DelObject (h1); end else AlrtDialog ('No Symbol Selected On This Layer !'); ClrMessage; end; run (Main);
  9. I use "Import dxf/dwg or dwf" all the time. It's great when the customer gives me multiple drawings. Can VW do the same with PDF please? Either by converting them to separate vwx files, or better still, import them directly into VW as you do with a multi page PDF.
  10. Have you guys ever used "Import dwg/dxf or dwf". It's one I use all the time. It is not an import, but a batch converter. It allows you to pick all the ACad drawings and converts them to separate vwx drawings. Then you can view them at your leisure and copy and paste to your drawing as required.
  11. Hi, Can anyone explain why this is not working please? I want to use PP= with ForEachObject, but the test below indicates that (PP = Line_Style) doesn't work when the Line_Style is changed to a "Line Type" (Dotted, etc.) procedure test; var Line_Index : longint; begin ClrMessage; Line_Index := GetLSN (FSActLayer); Message (Line_Index); Wait (2); DSelectAll; SelectObj ((PP = Line_Index)); Message (GetLSN (FSActLayer), ' ', Line_Index); { ForEachObject (Do_This, ((T = Line) & (PP = Line_Index))); } end; run (test);
  12. WhoCanDo

    Attribute Criteria PP= is not working

    I think this will work 😃 Interestingly, JB mentioned the LT option but it's not in the Appendix "Attribute Criteria" and therefore I thought it was a typo when his eg. used PP again. Sorry.
  13. WhoCanDo

    Attribute Criteria PP= is not working

    Hi Pat, When you get back, try this with a line that has Line Type "Circles" or anything but "Solid" or "Pattern". It won't work. procedure test; var Line_Index : longint; Procedure Do_This (h : handle); Begin SelectObj ((PP = Line_Index)); Message (GetLSN (h), ' ', Line_Index); End; begin ClrMessage; Line_Index := GetLSN (FSActLayer); Message (Line_Index); Wait (2); DSelectAll; ForEachObject (Do_This, ((T = Line) & (PP = Line_Index))); end; run (test);
  14. WhoCanDo

    Attribute Criteria PP= is not working

    Thanks JB, This partly works. For SelectObj it works, but for ForEachObject it doesn't. I have had to use ForEachObject without PP and then check each "h" with "if (GetLSN (h) <> Line_Index) then" before running the code. I still think there is a bug with ForEachObject (Do_This, ((T = Line) & (PP = Line_Index))); not recognising the PP
  15. WhoCanDo

    GetName not working

    Hi, I have a rectangle on a layer with Class "Border" and Name "A3 Border" Can someone tell me why the following message does not return the name "A3 Border" please? procedure test; begin Layer ('Title Block'); DSelectAll; SelectObj ((L = 'Title Block') & (C = 'Border')); Message (GetName (FSObject (ActLayer))); end; run (test);
  16. WhoCanDo

    GetName not working

    Thanks, forgot about FSActLayer 😃
  17. WhoCanDo

    GetName not working

    Sorry, also the rectangle is a symbol with the name "A3 Border" Ok, just tested this. I need to use GetSymName, not GetName Thanks
  18. WhoCanDo

    GetName not working

    Just to be clear 😊, the rectangle has the class "Border" and name "A3 Border". I want GetName to tell me it's name is "A3 Border".
  19. WhoCanDo

    DWG file importing problems

    Are you using the "DXF/DWG or DWF Import" or are you importing them directly into VW? We always convert the files using the above bulk converter rather than importing them directly.
  20. WhoCanDo

    dedicated vs integrated graphic card

    When looking around the web regarding graphics cards for CAD, the recommendation is a Quadro. However, they then continue to refer to AutoCad, etc. If GTX is best for VW, I presume it's also OK for using the other CAD Viewers or Software for multi-tasking. I am guessing from all that I have read, that we should pick the GPU to suit our primary CAD software and secondary CAD software should work, but maybe at a slightly degraded performance. So, if we use VW 90% of the day, and AutoCad 10% then we pick a GTX, but if it were the other way around then we pick a Quadro. What's the opinion on this ?
  21. WhoCanDo

    Importing a PDF

    I am using VW with a black background to reduce eye strain. When I use VW to import a PDF vector drawing, the PDF has black lines and therefore, on the black background, I cannot see it. Is this an oversite/bug or can I change this somehow?
  22. WhoCanDo

    PDF to VW

    If the PDF is vector, then you should be able to "File / Import PDF" from VW itself (I don't think Fundamentals does it). You can easily scale this down as you wish. However you will have to draw over the PDF objects if you want polygons to use in VW.
  23. WhoCanDo

    Concurrent Open Documents?

    It's not so much how many I open when working, but how many I need to open to print the fabrications drawings (could be 50). It's not reasonable to print as I go since they get lost in the communal printing pile. I like to print them in alpha-numeric order in one pile so the job doesn't separated and get lost. If VW doesn't allow more than 8, maybe a printing macro is what is needed.
  24. Hi, I want to create a wall type with a dotted line cavity. In VW2018 this worked .. procedure test; var Response : boolean; begin Response := DeleteAllComponents (nil); Response := InsertNewComponentN (nil, 1, 5, 0, 10, 6, 0, 2); Response := InsertNewComponentN (nil, 2, 20, 0, 6, 10, -2, 0); SetTool (13); end; Run (test); However in VW2019, it doesn't. It seems that the -2 is the cause of the problem. -2 is the line type "Dash Style-2" from the standard pallet. If -2 is changed to 2 in this script, the wall looks like above with a solid cavity line. Can anyone suggest what changed between VW2018 & VW2019? Please note: that I was using InsertNewComponent in VW2018 but now I am forced to use InsertNewComponentN
  25. WhoCanDo

    Creating a wall with dotted center line

    Thanks Julian, I can work with that 😊


7150 Riverwood Drive, Columbia, Maryland 21046, USA   |   Contact Us:   410-290-5114


© 2018 Vectorworks, Inc. All Rights Reserved. Vectorworks, Inc. is part of the Nemetschek Group.