Jump to content

David L

  • Posts

  • Joined

  • Last visited

Everything posted by David L

  1. Since upgrading iMac to Mojave (10.14.4) I get this message when launching Vectorworks 2019, SP3 ("Vectorworks 2019.app" not optimized for your Mac). That is the message for non-64 bit apps that will not run on future versions of MacOS, likely the next version 10.15 out in the Fall. Vectorworks is advertised as 64 bit, so what's up and will it stop work in MacOS 10.15 (Death Valley?).
  2. Was looking for solution to the Bridge Line PIO problem and found this thread. I tried the final script above, but it would not compile and I did have time to troubleshoot the problem. I still have Vectorworks 2014 on my machine so I copied Bridge Line PIO, renamed it Bridge Line 2014.vso and dropped it into 2018 Plug-Ins folder. That fixed the problem. I actually forgot to delete the existing Bridge Line file, so they were both in the Plug-Ins folder. I thought that was weird, but it worked for some unknown reason. If you don’t have a copy of Vectorworks 2014, the 2014 Bridge Line file is attached. When I deleted the 2018 Bridge Line file, the tool showed up missing. I imagine you can reinstall the 2014 version in the tool palette with the Workspace Manager, but I didn’t bother since it was working. Bridge Line 2014.vso
  3. The SP1 update did fix my issue with NBS characters. My problems were exclusively due to non-breaking spaces. Unfortunately they were in nearly all of my 200+ scripts that I use regularly. They all seem to be working again.
  4. Raymond was correct on my issue. The non-breaking space characters (option-space) caused the problem. I don’t know why the error presented itself as an undeclared variable, but replacing the non-breaking spaces with regular spaces or tabs fixed the problem. I just pasted the script into Pages, turned on Show Invisibles, Found & Replaced all non-breaking space characters with tabs, copied the corrected script and pasted it back into Vectorworks and that version did compile. I assume Pages uses UFT-8 encoding, but I didn’t even check that. I don’t remember why I used non-breaking spaces when I wrote the scripts years ago. I think it made the lines indent in a more controllable fashion. It would be nice if Vectorworks would make a Command to fix old scripts, like the Update Plugin Objects command. I will look into making a Keyboard Maestro macro to automate the script cleanup process. If I can get one working, I will make it available for those who use Keyboard Maestro.
  5. Thanks to both of you. I found a partial solution. Tried Pat's recommendation to make variables H1 and W1. Still failed in the same places. I will use that practice in the future. I did find something on the VS:Vectorworks 2018 Development page that said the script engine needed Unicode UTF-8 encoding. http://developer.vectorworks.net/index.php/VS:Vectorworks_2018_Development Following RJ's lead, I copied the script from this page and pasted it back into my existing script. It compiled and worked from the assigned key command. I tried copying the script into TextEdit and saved it as a plain text file, then used the Run command from inside Vectorworks. That failed with the same error. I dug around in TextEdit and found the Save As dialog allowed you to choose UTF-8 and other formats to save plain text files. Those also failed using Run and pasting the text into the script. If someone with Vectorworks is following, we need a method to convert existing scripts, to fix the incompatibility. The Migration Manager does not convert custom plug-ins in the User folder. For the time being I may have to post scripts to this website and copy them back, as a temporary solution.
  6. Most of the 100+ scripts I use in Vectorworks (some for over 10 years) fail in Vectorworks 2018. All of the failures are related to undeclared variables. I looked for changes to Vectorscript in 2018 that may be causing the problems, but couldn't find anything specific. This is a typical example of a simple script that sets the line weight of a selected object, but now it fails saying the Handle (h) is not declared, even though it is in the Function definition, and has been working fine in many versions of Vectorworks since 2008. PROCEDURE SelectedObjLineWeight; CONST w = 20; { <----------- Line weight in mils.} VAR countObj : INTEGER; FUNCTION SetAttribute(h:HANDLE) :BOOLEAN; BEGIN SetLW(h, w); ResetObject (h); countObj := countObj + 1; END; {---IF selected objects exist, they will be counted each time Function above is called} BEGIN ForEachObjectInLayer(SetAttribute, 2, 1, 4); {---IF no objects are selected, then default attribute is set} IF countObj = 0 THEN PenSize(w); END; Run(SelectedObjLineWeight); If anyone can tell me what the problem is, I can migrate my office to 2018.
  7. In previous versions of Vectorworks, when a Viewport was selected the Annotations in the Viewport were highlighted. This has been removed in Vectorworks 2014. Now only the bounding box of the Viewport is highlited. It is very useful to see what Annotations are in a Viewport by simply selecting it. Now you have to open the Viewport and Select all of the Annotations to see them. I look for a command or preference setting to control Annotation highlighting, but could not find anything. Please bring back Annotation highlighting in Viewports to Vectorworks 2014.
  8. There a 12 minimum F-keys on all keyboards (19 on the current Apple keyboards) but there is no way to assign commands or tools to them with the Workspace Editor. I've been making use of F-keys for 15+ years by using QuicKeys, but they should be assignable with the Workspace Editor. That way your custom Workspaces could easily be carried forward from one version of Vectorworks to the next. I have Vectorworks setup to use all 19 F-keys with 3 additional modifiers so I assign 76 commands, pref toggles and multi-step macros to the F-keys alone. Of course the multi-step macros can only be created with a scripting utility like QuicKeys or Automator. I see they have finally implemented preference toggles in Vectorworks 2012, but I've been using simple Vectorscript created commands to do the same thing with a keystroke for 10+ years. I guess people just work more slowly without quick keyboard commands available. 76 key commands may sound crazy to most, but I also use a printed keyboard template attached to the keyboard for the lesser used commands. You'd be surprised how quickly you can memorize that many commands when they are logically organized and prioritized.
  9. I installed Lion on my iMac 2.8 GHz Core2Duo at home last week. I spent the weekend working on a set of drawings in Vectorworks 2010 and I didn't encounter a single problem. It was all 2D work, no 3D or rendering. Vectorworks did hangup ocasionally for a few seconds at a time, but it never crashed or quit. I don't know if that was attributable to Vectorworks/Lion or just the age of the machine. If you are doing mainly 2D work I think you will be safe with Vectorworks 2010 running in OS X 10.7.1. I'll try and test some fairly complex 3D models (4 story 25,000 s.f. buildings, with extensive Workgroup references) that were created in 2010 and get back with a report.
  10. BTW: I found some new (so they say) MX-610 mice in eBay or $36. You might take a look. I will probably buy a couple more - as backups for when mine die. http://cgi.ebay.com/NEW-Logitech-MX610-Cordless-Laser-Mouse-MX-610-NIB_W0QQitemZ390168208750QQcmdZViewItemQQptZMice?hash=item5ad7d6656e On a Mac you will need a third party driver like Steer Mouse $20. http://plentycom.jp/en/steermouse/ I recently got a Logitech Performance MX from Logitech as a warranty replacement for a previous version that croaked. It is very nice and better at some things but it pricey.
  11. I use a Logitech MX-610 and its the best CAD mouse I've ever used, mainly because it has 12 assignable button functions. Unfortunately its no longer available. It is not even Mac compatible, but with the SteerMouse driver I have all 12 buttons programmed. I've tried a lot of mice over the years and find the Logitech models provide the most available functions while being the most comfortable for me. Besides the pan and zoom functions on the scroll wheel, I have the Selection Tool, Resource Browser, Object Info palette, shift select and delete functions programmed along with the 3 Expose and Dashboard functions. The Performance Mouse MX is good and has 9 button functions, but it is $100. I've tried trackballs over the years (Kensington and Logitech) but always found them more difficult to draw with. I did like them more for general mousing in other apps, but I spend most of my time drawing.
  12. The Version attribute appears to only apply to applications and not files.
  13. In Mac OS-10.6, after installing VectorWorks 2010, all Vectorworks files are now listed as "Vectorworks document" in Finder windows in the Kind column. In the past, Vectorworks files were always listed with the version number ("Vectorworks 2009 document"). I didn't realize how often I referred to this until it disappeared. I've been using OS-10.6 since the day it was released and I'm pretty sure this happened after recently installing VectorWorks 2010. This is a pain when referring to old Vectorworks files, and I have a ton, with a few going back to MiniCad 4-5. I know Apple changed the way file types are associated with apps in Snow Leopard, but I'm sure it was still listing the version, prior to installing Vectorworks 2010. Anybody know what's up.
  14. Attached is the above script in a VectorWorks 2008 file.
  15. I believe Pat is referring to a script he was helping me with. Attached is a VectorWorks file with a script that will consecutively number a specific symbol with a specific record number block. Try it out in the attached file. Like Pat said, you will need to link a text block to the symbol with an attached record format. If you've never used linked records or have any experience with VectorScript, then you may want to look for another solution (not that I know of any). If you want to tackle it. Edit the script in the attached file, by replacing the 'symbol name'.'record name' with the corresponding names from your object. You can import the command palette into your drawings and use it or convert the script into a command and install it with the Workspace Editor.
  16. Thanks for the lesson on handles. It will probably be useful to me in the future.
  17. That?s interesting. I inserted your script above into my script and it still crashes. Maybe I don't fully understand how handles are passed (that was one of the hardest concepts for me to get a handle on ;-) I thought this would generate a new handle to the door PIOs, But it doesn't work inside this script. PROCEDURE NumberDoorsConsecutive; VAR ???numberStr : STRING; ???h,h2 : HANDLE; ???pX,pY : REAL; ???doorNumber,dummyVar : INTEGER; PROCEDURE SetDoorNumber; BEGIN GetPt(pX,pY); ??{### Test if clicked object is a DOOR, skip incrementing number if not DOOR ###} ??IF GetRField(h2,'Door','DoorWidth') <> '' THEN BEGIN ????SetRField(h2,'Door','IDLabel',numberStr); ????{ResetObject(h2);?????????} ????doorNumber := Str2Num(numberStr); {convert number string to number} ????numberStr := Num2Str(0, doorNumber + 1); {increment number then convert number to string} ??END; END; PROCEDURE DoIt(h3:Handle); Begin ResetObject(h3); End; BEGIN {### Ask for starting number ###} numberStr := StrDialog('Enter and INTEGER to start numbering:','101'); Message('Click in empty space to end Door numbering'); SetDoorNumber; ??{### Repeat process until there is NO object at the clicked location ###} ??WHILE GetPickObjectInfo(pX,pY,h,h2,dummyVar) DO BEGIN ????SetDoorNumber; ??END; ClrMessage; ForEachObject(DoIt,((PON='Door'))); END; RUN(NumberDoorsConsecutive);
  18. Pat, I tried your script that isolates the ResetObject( ) procedure and it crashes VectorWorks every time. I tried several other things but none of them fixed the problem. 1. Set procedure to ResetObject(h) ? Resetting wall has no effect, does not change door ID. 2. Applied script above to doors placed in space (so they are not subhandles) ? No effect, does not change door ID. 3. Applied Door Numbering (Consec) script to doors placed in space ? Crashed VectorWorks. 4. Created default unstyled wall (in None class) and placed default door PIOs ? Crashed using original Door Numbering (Consec) script. 5. Replaced procedure ResetObject(h2) with ResetBBox(h2) ? No effect, does not change door ID. (Revised test drawing is attached) Evidently something was changed in the Door PIOs so they are not compatible with the ResetObject( ) procedure. You'd think the same problem would exist with Window PIOs? I sent the original problem in as a Bug Submittal. Will advise tech support of this thread.
  19. Pat, I appreciate the help. I'm sure all of the Vectorscripts I've created could be cleaned up, quite a bit. I have no programming background or training, so everything I've done is strictly constructed through a lot of reading of the Language Guide and the Function Reference and looking at examples of scripts, where I could find them. My biggest problem is I know what I want to accomplish and I understand the basic constructs of the language, but finding the best or most efficient predefined procedures and functions to use is very difficult. Plus, the explanations of those procedures and functions are often quite cryptic for the uninitiated. Typically if I can get something to compile and work as expected, I'm happy, regardless of how inelegant the code is. Per the SetDoorNumber procedure, that was the first way I could figure out how to test if the object being clicked on was actually a door. While the script is running you can click on any object you want, but only clicking on a door will cause the number to increment. Also, the SetRField( ) procedure requires a string and I couldn't figure our how to increment a text string (number), so I took a number, incremented it then converted it to text for use in the procedure, then back to a number to increment it, etc, etc. That?s the reason for the switching back and forth between text and number. Getting the IDs to update, during execution, was another thing I tried to do, but was unsuccessful. I believe I posted a question on that, but got no solution. Seems like somebody said you could get IDs to update if it was a Tool, but making the numbering a Tool had other problems, so I left it at that. I'm sure there are better ways to do these things, but I got what I wanted to work so I moved on. BTW: The Door and Window tools, in VectorWorks, should have an automatic numbering function built in, so they could be aware of all of the other Door and Window PIOs in the drawing and automatically update their numbering when one is added or removed from a plan. On commercial projects I use an opening numbering system that is associated with the room number (Room-101 gets doors 101A, 101B, etc). That numbering system is also in the attached sample drawings. I would guess that system would be nearly impossible to implement in the Door and Window PIOs. Thanks for the education.
  20. I created VectorScript commands for numbering doors and windows in VW2009. The window numbering scripts work fine but the door numbering scripts cause VectorWorks 2010 to quit whenever they are run. The scripts are the same, except using door criteria in one and window criteria in the other. In fact, I took the window script and modified only the Criteria specification to work on doors and it started crashing when run. (A sample drawing with scripts is attached) The door tool appears to be unchanged from VW2009 and the scripts work fine in 2009 without crashing. You can try the 2009 version of file. I would appreciate it if somebody can figure out what the problem is.
  21. There are 4 Preference settings I use constantly (20-50 times a day). I created Plug-in Command toggles and assigned them to the F-keys using QuicKeys. I still can't believe Graphsoft/Nemetschek has not added the ability to assign commands and tools to the F-keys, after all these years. I have 72 commands mapped to the F-Keys on my 19 F-key Mac keyboard. Plus most of the tools and another 60 commands to other key combinations. Yes it sounds obsessive but I've been using it for 15+ years and it is a huge time saver. Check it out:
  22. Oops - just realized you?re using VectorWorks 12. Here's a version for 12.
  23. Here's a plywood (section) hatch I've been using for ages. It works fine for any details from 1"=1'-0" on up. The hatch aligns within walls, so use wall tool in thickness needed and apply plywood hatch or just use preconfigured wall style for plywood. See attached drawing including hatches and "plywood" wall styles. Plywood hatch #2 is used when you have 2 layers against one another.
  24. A simpler method is to add the SUM function to the WIDTH and HEIGHT columns too. But, you can only use the SUM function on 3 columns max. If you need to sum more than 3 columns you'll need to use Pat's method. I tried using the formula =(Door.DoorWidth)/COUNT but it didn't have any effect, while using Pat's method worked fine. I can't figure out why that didn't work. Its simpler than creating another column that I don't want in the schedule.
  25. I have the following script that consecutively numbers doors as you click on them, but the numbering only shows after you complete the script. I would like it to update (redraw) the drawing as you click on each door (so you can see the new door number) during the script execution. I've tried everything I can think of (ResetObject, ReDraw, ReDrawAll, etc.) but nothing seems to update during script execution. Any recommendations are appreciated. ================================================================= PROCEDURE NumberDoorsConsecutive; VAR ???numberStr : STRING; ???h,h2 : HANDLE; ???pX,pY : REAL; ???doorNumber,dummyVar : INTEGER; PROCEDURE SetDoorNumber; BEGIN GetPt(pX,pY); ??IF GetRField(h2,'Door','IDLabel') <> '' THEN BEGIN ????SetRField(h2,'Door','IDLabel',numberStr); ????ResetObject(h2); ????doorNumber := Str2Num(numberStr); {convert number string to number} ????numberStr := Num2Str(0, doorNumber + 1); {increment number then convert to number string} ??END; END; BEGIN numberStr := StrDialog('Enter and INTEGER to start numbering:','101'); Message('Click in empty space to end Door numbering'); ??WHILE GetPickObjectInfo(pX,pY,h,h2,dummyVar) DO BEGIN ????SetDoorNumber; ??END; ClrMessage; END; RUN(NumberDoorsConsecutive); Plug-In command is also attached:
  • Create New...