Jump to content


  • Posts

  • Joined

  • Last visited

Posts posted by SamIWas

  1. I had imported a pdf, which I ungrouped to get normal lines.  It brought in hundreds of thousands of lines, which of course bogged down the machine.  I deleted all of it.  Weeks later, I'm working on the drawing, and periodically when zooming or performing a move command, these phantom lines reappear for a few seconds before going away.  Being that it's 100,000 of them, it causes a long pause on my MacBook Pro.  I have turned on every class and layer, and the lines are not actually in the drawing.  They are just phantoms showing up randomly.  Any idea how to get rid of these...it's absolutely draining my workflow speed.  I'm starting to think I will have to manually copy each and every existing thing to a new document...

  2. 16 hours ago, Pat Stanford said:

    It actually is not that bad. There are a number of ways to do it with some fairly simple loops.


    Probably the easiest would be a ForEachObject using a Criteria of Selected is True and PON = 'Door'. PON stands for Plug-in Object Name.


    Code fragment not tested:

    Procedure Execute(Hd1:Handle);
      ForEachObject(Execute, (((Sel=True) & (PON='Door'))));




    Holy crap, man...that worked!  This is going to make updating old files, and inserting new doors and windows, so much faster!

  3. 37 minutes ago, Pat Stanford said:

    It actually is not that bad. There are a number of ways to do it with some fairly simple loops.


    Probably the easiest would be a ForEachObject using a Criteria of Selected is True and PON = 'Door'. PON stands for Plug-in Object Name.


    Code fragment not tested:

    Procedure Execute(Hd1:Handle);
      ForEachObject(Execute, (((Sel=True) & (PON='Door'))));



    Thanks Pat!  I'll try this tomorrow and see how it goes.

  4. 3 hours ago, MullinRJ said:

    Using: Message(GetTypeN(FSActLayer));


    If I select a free standing Door I get type 86 (Plug-In object).


    If I select a a Door in a Wall I get type 68 (Wall object).


    To see the Door on a test wall I have in an open document, I needed to use:



    As you can see, the door object is deep inside the Wall object. The number of objects in front of it are not exact, and are determined by the wall's construction. You should use a loop to look for the Door, or possibly try ForEachObjectAtPoint(). There may be a more direct way to get to the Door-in-Wall that someone else can point to. I've just done a cursory quick dive at this. 


    Again, make sure your handle is pointing to a Door object before trying to access its record.





    Holy schniekies.  So, it looks like selecting a bunch of doors throughout a document and trying to change records in this way wouldn't work very well.  


    What I was trying to do was create a script that would assign my default class scheme to doors that I pull in from older drawings.  

  5. With the lighting device, I can just use SetRField and GetRField to get and set info for the lighting device.  With door, this doesn't seem to work.  As a test, I used GetRField(h,'Door','2DLeafClass') and GetRField(h,'Door','2D Leaf Class').  but neither works.  Is there different way to get and set door info via script?


    EDIT:  I have found that it works when the door is not in a  wall.  But, once the door is placed in a wall, I can no longer get the script to pull info from it.  Surely there is a way.

  6. 1 hour ago, rDesign said:

    I believe that FileMaker can import from & export to Excel files, so presumably you could use this new 2021 Excel file functionality as the means to transfer data / records between Vw <—> FileMaker, without needing the MS Excel application itself. Just a hunch.


    Yeah, I already do that via text files.  It's just an extra step in the process.   I know that a direct, immediate, and automatically updating connection is possible with Filemaker via ODBC.  I've gotten it working briefly on small projects, but it is mind bogglingly difficult.  I'm hoping for VW and FM to work together to make a solution with easy, automatic connection between the two.  FM Is so powerful when it comes to tracking and reporting data.

    • Like 3
  7. On 9/1/2020 at 5:54 PM, The Hamma said:

    I have a spreadsheet with a list of equipment and each piece of equipment is identified with a unique id.  I also have symbols in the drawing with a record attached and a matching field for every column in the spread sheet.   I was able to create a report based on the record and I am able to copy cell by cell manually from the imported spread sheet to the record report worksheet.  My question is has anyone written a script that would search a worksheet for a matching id and copy all of the following cells in the row to the other worksheet?


    Are you saying you have a spreadsheet outside of Vectorworks and want to import  that spreadsheet, match each line to a symbol, and apply the data from that spreadsheet to the symbols, filling the necessary record format(s)?  If so, yes.  I have dozens of scripts which do this.  Each symbol/lighting device/plug-in has a unique ID, and the script matches the data from each line to the symbol using that.


    It's can get quite complicated.  The  basics are to use OPEN(filename) and then  create a loop to read each line and separate each cell into a variable. Find any symbol which matches the key variable, and SETRFIELD to apply the variables to the records fields.

    • Like 1
  8. I feel like this is one of those moments where 'm going to smack my head into the desk when/if someone gets me the answer, but i'm just  too brain-tired right now to get it.


    I have a bunch of custom tools which are in a tool pallete.   I just got a StreamDeck, and want to be able to call those tools from it.  Since there are only a few keyboard shortcuts left, those aren't a good solution to calling them.  My other solution is to create a script which calls the tools my name.  But DoMenuTextByName doesn't work for this.  I don't want it to create and place the tool, just activate it.


    Anyone got any solutions here?

  9. On 8/14/2020 at 12:16 AM, Jeremy Best said:

    Hi @SamIWas


    I can see how valuable such an enhancement would be for you and fellow power users, but based on my experience providing technical support for Vectorworks users, I suspect it would go largely under-utilised - much like the current implementation. There is another way, that can simultaneously broaden the number of shortcuts possible and coax more efficient use of the interface by more users. Maybe revisit your proposition after the release of 2021 😉


    If 2021 has some new way of handling shortcuts, I'll be all for it.  If they also fix the script-limit issue which has been around for 8-9 years now, that'll be enough for me!

  10. I made this request many years ago, but I'll try again.  


    There are now so many menu items and so many tools, that the basic keyboard shortcuts aren't cutting it.  There are only so many combinations of keys and ways you can contort your hands to run shortcuts.  And most of the possible shortcuts are already taken.  And with the rise in automated things like streamdeck and programmable mice, being able to further expand shortcuts would be very handy.  This also benefits people like myself who build large custom workspaces with custom tools and scripts.


    I again propose a system like Cinema 4Ds.  In addition to Command-X (or Control-X), or Command-Option-Shift-X,  allow hierarchical double-key shortcuts.  For instance, to grab the mirror tool in Cinema 4D, you press M then H (M for a mesh list, and H for mirror).  This increases the available shortcuts by multiple times and allows easy programmability for other devices.  


    The current shortcut system is limited to just over 200 shortcuts.  That's a lot, and it does cover the most-used tools.  But those, combined with double-key shortcuts could easily allow for well over 1000.  


    Obviously, this would probably kill some current shortcuts, and would require a change in muscle memory, but there would be a lot of gain on the other side.

  11. On 8/3/2020 at 4:02 AM, Sebastiaan said:

    by the way. In Label legends I do place the circuit name and circuit number next to each other. It works fine the only downside is that you can not center the two fields as one. 


    Yes...this is the issue.



    also did you know that in the label layout you can group all fields together? This wil make your label behave as one object. 


    Yep.  This is what I do often.  But, when you rotate, especially with "adjust flipped text" on, things get really funky.  Sometimes, the fields stay in order.  Sometimes they don't.  Sometimes, they flop to odd locations.  Sometimes, they don't.  The basic labels all work just fine, including the Universe/Address field.  I made my own custom field to deal with this issue, but then it sucks sending to other people.

  12. On 8/1/2020 at 2:21 AM, Sebastiaan said:

    also you could use a script to concatenate the desired fields into one. In the AutoplotVW Plug-ins there is a menu command called copy field to field which will do exactly what you want.  but this will require you to run it each time you make updates  to your plot. 


    This is what I do currently.  And it works, but is error prone if I forget to run the script.



    use a data tag. In data tags there are dynamic text fields where you can combine mutliple fields into one. Which you can then center align for instance. 


    This is something I need to look into.  Maybe that would;d be a decent short-term solution.

  13. I have never had this issue before, but it popped up yesterday.  I do need to update to the newest service pack (which is happening currently...sloooowwly).  I've been working on 2020 SP3.1.


    I've been working on a large drawing, and every now and then, I have to hit undo (obviously).  There have been several times recently where I hit undo, and it steps back some 10-15 minutes worth of work, completely erasing everything that was done in that span.  And redo does not appear to bring it back.   Has anyone else seen this behavior?


    And just now I found that VW had not done the most recent backup or two (autosave every five minutes), so I lost all that work. 😡


  14. I think this has been requested before, but it was buried...


    One of the best improvements in Spotlight was the Universe and DMX Address fields, and how they work together with Absolute Address (does anyone use that?) and the combined Universe/DMX Address Field, with a selectable divider (I use a period while some use a slash).  


    I would love to see this same feature used for Circuit Name and Circuit Number.  These two fields are almost always used together, and having them separate makes label legends act extremely funky when rotating, with unpredictable results.  Combine them into a Circuit Name/Number field, with a "-" as the default divider, but changeable like the Universe/Address one.  


    I solved this with my own custom field, but it's a manual process to enter the info and thus error-prone.

    • Like 1
  15. 1 hour ago, C. Andrew Dunning said:


    Food-for-thought...:  might you be open to sharing those PIOs w. others on your team(s)?  For me, outside of my commercially-available tools, I've got several simple PIOs that I frequently include when sharing files.  That may or may not make sense for you depending on the tool(s) but is at least worth considering.


    Absolutely.  I'll share them with anyone who needs them.  Where it becomes unfortunate is that I don't work within a small team.  I work here and there and everywhere, and plots that I draw will be used by someone else who will then send them to someone else to refer to.  I was hoping those things could track across once I converted them to red symbols.   I was under the impression that the red symbol sort of "contained" the plug-in.  But I see now that it simply maintains field entries for an existing plug-in.

  16. Just now, klinzey said:

    @SamIWas The user still needs to have the script in the plug-ins folder. When you place a Red Symbol it places the Plug-in Object with the parameters pre-configured rather than just a symbol. So in order for someone else to use the Plug-in object they would need a copy of the Plug-in.

    @klinzey  Oh, okay.  Well, balls.  I completely misunderstood how those worked, which makes all the plug-ins I've built useless for plans which are sent out to others (and stops ones I'm currently building).  I guess all the red symbols included with VW have a matching plug-in buried in VW somewhere? 😨

  17. I thought that when you created a Red Symbol from a custom plugin object (using "Create Plug-In Object" when making the symbol) that the Red Symbol could be used by others.  However, I just had my gaffer test a file with a few of my custom plug-ins which I made Red Symbols, and he can't even edit the info on them.  It's all greyed out.  I was under the impression that was the entire purpose of red symbols: to make plugins more portable.  Is this not the case?  Is there any way I can use these symbols in a way that he is able to manipulate and use them also?

  18. 2 hours ago, C. Andrew Dunning said:

    Be sure to look into the different SetTexMapRealN and SetTexMapBoolN selectors.  In addition to scaling you can control things like tiling, X&Y offset, rotation, etc.



    I can barely even figure out Vectorworks texturing normally.  I think you need a degree in theoretical mathematics to determine where Vectorworks is going to place a texture's origin and how scaling will affect it.  But, I'll look into these...


    (I made a post in the general forum about the texturing positioning, but no one replied 😞 )

  19. 2 hours ago, Pat Stanford said:

    Name2Index should accept the name of the texture and return the Texture Index you can use with SetTextureRefN.


    That was the ticket!  I knew i needed to find something to change the name to some sort of reference ID.  I just didn't know what t was.  Took a minute to figure out scaling, too.  Then I found the somewhat confusing SetTexMapReal.



    • Like 1
  • Create New...