Jump to content

calsan

Member
  • Content Count

    43
  • Joined

  • Last visited

Community Reputation

0 Neutral

About calsan

  • Rank
    Greenhorn

Personal Information

  • Occupation
    Architect
  • Location
    Australia
  1. calsan

    Layer name wildcard

    OK, thanks guys. At least there is an underlying logic to why it doesn't work!
  2. calsan

    Layer name wildcard

    I wonder if there is an alternative routine to find by layer name? I tried this and it doesn't work either... PROCEDURE PickLayer250; PROCEDURE SelectThem(h :HANDLE); BEGIN SetSelect(h); END; BEGIN ForEachObject(SelectThem, L='*250*'); END; RUN (PickLayer250);
  3. calsan

    Layer name wildcard

    I'm trying to find objects in layers whose name contains (for example) "250" Why does this work for classes: SelectObj(C='*250*'); but wildcard search doesn't work for layers: SelectObj(L='*250*'); :confused:
  4. calsan

    Script replace pattern with fill

    Instructions to install the above script into a menu in your workspace: Create the plugin: Select menu item: Tools / Plug-ins / Plug-in Manager... Custom Plug-ins Tab - click "New..." Name the script "Grey Patterns to Grey Fills" Select the option "Command" Click "OK" Click "Edit Script..." Paste the script text copied from the above field Click "OK" Click "Close" Edit your workspace: Find the command "Grey Patterns to Grey Fills" under miscellaneous Drag it under the menu "New" (or your preferred menu location. This will now be available at all times under the New menu
  5. calsan

    Script replace pattern with fill

    Procedure PatternsSwapToFill; PROCEDURE fillObj1(h:HANDLE); BEGIN SetFPat(h, 1); SetFillBack(h,21760,21760,21760); {Fill 1 - Type the desired fill colour # here} END; PROCEDURE fillObj2(h:HANDLE); BEGIN SetFPat(h, 1); SetFillBack(h, 34816,34816,34816); {Fill 2 - Type the desired fill colour # here} END; PROCEDURE fillObj3(h:HANDLE); BEGIN SetFPat(h, 1); SetFillBack(h, 43520,43520,43520); {Fill 3 - Type the desired fill colour # here} END; PROCEDURE fillObj4(h:HANDLE); BEGIN SetFPat(h, 1); SetFillBack(h, 49152,49152,49152); {Fill 4 - Type the desired fill colour # here} END; PROCEDURE fillObj5(h:HANDLE); BEGIN SetFPat(h, 1); SetFillBack(h, 56576,56576,56576); {Fill 5 - Type the desired fill colour # here} END; PROCEDURE fillObj6(h:HANDLE); BEGIN SetFPat(h, 1); SetFillBack(h, 60928,60928,60928); {Fill 6 - Type the desired fill colour # here} END; BEGIN ForEachObject(fillObj1,(INSYMBOL & INGROUP & INOBJECT & INVIEWPORT & (FP=3))); {Type the original pattern 1 # here} ForEachObject(fillObj2,(INSYMBOL & INGROUP & INOBJECT & INVIEWPORT & (FP=4))); {Type the original pattern 2 # here} ForEachObject(fillObj3,(INSYMBOL & INGROUP & INOBJECT & INVIEWPORT & (FP=5))); {Type the original pattern 3 # here} ForEachObject(fillObj4,(INSYMBOL & INGROUP & INOBJECT & INVIEWPORT & (FP=6))); {Type the original pattern 4 # here} ForEachObject(fillObj5,(INSYMBOL & INGROUP & INOBJECT & INVIEWPORT & (FP=7))); {Type the original pattern 5 # here} ForEachObject(fillObj6,(INSYMBOL & INGROUP & INOBJECT & INVIEWPORT & (FP=8))); {Type the original pattern 6 # here} END; RUN(PatternsSwapToFill);
  6. calsan

    Script replace pattern with fill

    I found out the fill numbers are unreliable, as they have changed between vectorworks versions. More reliable than fill numbers is to use 24bit RGB values. Get the RGB Value by hovering over the fill in the attirbutes palette. Multiply each RGB value by 256 i.e. Grey of RGB value (221, 221, 221) becomes (56576, 56576, 56576) Below is amended 24bit RGB script.
  7. calsan

    Script replace pattern with fill

    Procedure PatternsSwapToFill; PROCEDURE fillObj1(h:HANDLE); BEGIN SetFPat(h, 1); SetFillBack(h, 1236); {Fill 1 - Type the desired fill colour # here} END; PROCEDURE fillObj2(h:HANDLE); BEGIN SetFPat(h, 1); SetFillBack(h, 1237); {Fill 2 - Type the desired fill colour # here} END; PROCEDURE fillObj3(h:HANDLE); BEGIN SetFPat(h, 1); SetFillBack(h, 1238); {Fill 3 - Type the desired fill colour # here} END; PROCEDURE fillObj4(h:HANDLE); BEGIN SetFPat(h, 1); SetFillBack(h, 1239); {Fill 4 - Type the desired fill colour # here} END; PROCEDURE fillObj5(h:HANDLE); BEGIN SetFPat(h, 1); SetFillBack(h, 1240); {Fill 5 - Type the desired fill colour # here} END; PROCEDURE fillObj6(h:HANDLE); BEGIN SetFPat(h, 1); SetFillBack(h, 1241); {Fill 6 - Type the desired fill colour # here} END; BEGIN ForEachObject(fillObj1,(INSYMBOL & INGROUP & INOBJECT & INVIEWPORT & (FP=3))); {Type the original pattern 1 # here} ForEachObject(fillObj2,(INSYMBOL & INGROUP & INOBJECT & INVIEWPORT & (FP=4))); {Type the original pattern 2 # here} ForEachObject(fillObj3,(INSYMBOL & INGROUP & INOBJECT & INVIEWPORT & (FP=5))); {Type the original pattern 3 # here} ForEachObject(fillObj4,(INSYMBOL & INGROUP & INOBJECT & INVIEWPORT & (FP=6))); {Type the original pattern 4 # here} ForEachObject(fillObj5,(INSYMBOL & INGROUP & INOBJECT & INVIEWPORT & (FP=7))); {Type the original pattern 5 # here} ForEachObject(fillObj6,(INSYMBOL & INGROUP & INOBJECT & INVIEWPORT & (FP=8))); {Type the original pattern 6 # here} END; RUN(PatternsSwapToFill);
  8. calsan

    Script replace pattern with fill

    Have modified the script to replace on multiple patterns to fills. Posting as may be of use to someone.
  9. calsan

    Script replace pattern with fill

    Procedure filler; PROCEDURE fillObj(h:HANDLE); BEGIN SetFPat(h, 1); SetFillBack(h, 1236); END; BEGIN ForEachObject(fillObj,(INSYMBOL & INGROUP & INOBJECT & INVIEWPORT & (FP=3))); END; RUN(filler); This works!!!!!!!! Happy Happy Joy Joy Many thanks to Dieter @ DWorks and twk. I hope the above code will be of use to someone reading this in the future.
  10. calsan

    Script replace pattern with fill

    And this is the error: Line #8: ForEachObject(fillObj,(INSYMBOL & INOBJECT & INVIEWPORT & (FP=3))); | { Error: Expected a procedure that accepts one handle argument. } Line #10: RUN(filler); | { Error: Expected a RUN statement at the end of the script }
  11. calsan

    Script replace pattern with fill

    This is the script now. Procedure filler; Function fillObj(h:HANDLE):BOOLEAN; BEGIN SetFPat(h, 1); SetFillBack(h, 1236); END; BEGIN ForEachObject(fillObj,(INSYMBOL & INOBJECT & INVIEWPORT & (FP=3))); END; RUN(filler);
  12. calsan

    Script replace pattern with fill

    On a tangent... This forum needs a 'like post' option... Would be nice to give a like to someone who's trying to help you out of a hole.
  13. calsan

    Script replace pattern with fill

    This is with the '' removed Line #1: FUNCTION filler(): | { Error: Expected beginning of a statement. } | { Error: Identifier not declared. } Line #3: FUNCTION fillObj(h: HANDLE): BOOLEAN; | { Error: Identifier not declared. } | { Error: Identifier not declared. } Line #6: SetFPat(h, 1); | { Error: Identifier not declared. } | { Error: Expected a string. } | { Error: Expected a handle. } | { Error: Expected , } | { Error: Expected a string. } | { Error: Expected ) } | { Error: Did not expect this after end of statement - missing ;? } Line #7: SetFillBack(h, 1236); | { Error: Expected END } | { Error: Identifier not declared. } | { Error: Expected a string. } | { Error: Expected a handle. } | { Error: Expected , } | { Error: Expected a string. } | { Warning: Expected a longint or integer expression. } | { Error: Expected , } | { Error: Expected a string. } | { Warning: Expected a longint or integer expression. } | { Error: Expected , } | { Error: Expected a string. } | { Warning: Expected a longint or integer expression. } | { Error: Expected ) } | { Error: Did not expect this after end of statement - missing ;? }
  14. calsan

    Script replace pattern with fill

    This is the error output with '' in place: Line #1: FUNCTION filler(): | { Error: Expected beginning of a statement. } | { Error: Identifier not declared. } Line #3: FUNCTION fillObj(h: HANDLE): BOOLEAN; | { Error: Identifier not declared. } | { Error: Identifier not declared. } Line #6: SetFPat(h, 1); | { Error: Identifier not declared. } | { Error: Expected a string. } | { Error: Expected a handle. } | { Error: Expected , } | { Error: Expected a string. } | { Error: Expected ) } | { Error: Did not expect this after end of statement - missing ;? } Line #7: SetFillBack(h, 1236); | { Error: Expected END } | { Error: Identifier not declared. } | { Error: Expected a string. } | { Error: Expected a handle. } | { Error: Expected , } | { Error: Expected a string. } | { Warning: Expected a longint or integer expression. } | { Error: Expected , } | { Error: Expected a string. } | { Warning: Expected a longint or integer expression. } | { Error: Expected , } | { Error: Expected a string. } | { Warning: Expected a longint or integer expression. } | { Error: Expected ) } | { Error: Did not expect this after end of statement - missing ;? }
  15. calsan

    Script replace pattern with fill

    Hi Thanks for the help - but I can't get this line to compile: BEGIN ForEachObject(fillObj,'(INSYMBOL & INOBJECT & INVIEWPORT & (FP=3))'); END; I tried with and without the '' but it just pops up a script error. I'm sorry, I also don't know how to reset objects!

 

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.

×