Paolo Posted November 28, 2020 Share Posted November 28, 2020 (edited) Hello, my new plugin to get SVG files out of Vectorworks is in beta testing. Let me know if you are interested, as soon as I am ready the plugin will be placed on my Gumroad® page, at a reasonable price. With this menu command you'll be able to export your Vectorworks elements (such as polylines, polygons, rects, arcs etc.) objects to an SVG file suitable for CNC machines. All you have to do is select the objects to export and select the menu "Export selection to SVG", then choose a file name and click OK. The program will produce the correct SVG code to replicate the same selected object in the SVG viewbox determined by the Vectorworks active layer drawing size. Object are exported relatively to the active layer scale, so, if you need them for CNC purposes, better set the layer scale to 1:1 before exporting. export SVG demo movie.mov What Export selection to SVG can do: The plugin CAN export the following Vectorworks objects: Lines Rects Rounded rects Arcs / circles Ellipses Polygons Polylines (also with holes) The plugin CANNOT export all the other types that are not included in the above types such as: Groups, Symbols, Plugin objects (unless converted in the above types) 3D objects Texts (unless converted to polylines) Quotes Images Attributes: The SVG produced will preserve the following object attributes: Solid fills Solid strokes Fill and stroke colors The plugin does not consider dashes, gradients, textures etc.. Edited November 29, 2020 by Paolo Adding specification 1 Quote Link to comment
Kim Muhmenthaler Posted November 28, 2020 Share Posted November 28, 2020 Hello Paolo I am glad to hear some good news. I am very interested in your plugin. I hope to hear from you soon ... greetings from Switzerland Quote Link to comment
Brian(J) Posted November 28, 2020 Share Posted November 28, 2020 Paolo, This is very interesting. Comment, you say that texts cannot be exported to SVG, and that is common to a great many SVG export options, for obvious reasons. But in most cases I have run across, if you select the text and apply Toolbar: Text / Convert Text to Polylines you can get excellent results. Quote Link to comment
Paolo Posted November 29, 2020 Author Share Posted November 29, 2020 (edited) @Brian(J), I know, of course, just forgotten to mention it in the post (edited!) Convert a text to path and you get a polyline (or a group of polylines). Ungroup, if needed, and you are ready to export in SVG. This is just the first version. I will add the text support either as direct text tag in the SVG or advising the user about the conversion to path (copying and converting it on the fly, leaving the actual text untouched). Edited November 29, 2020 by Paolo Quote Link to comment
Kim Muhmenthaler Posted December 1, 2020 Share Posted December 1, 2020 I am thrilled to hear that you are working on an svg export plugin. can i already buy it. if so, where can i buy it. if not, can you write here when it's ready? Quote Link to comment
Paolo Posted December 1, 2020 Author Share Posted December 1, 2020 The plugin is now in an advanced testing phase (it is ready, almost). I just want it to be perfect, more or less 😉 Please follow this post to know the release announce. As promised in my previous reply, I have added the support for texts. Texts that are included in the selection to export, are sent to the SVG as paths. No need for the user to convert them into polylines. All is done inside the plugin process. 1 Quote Link to comment
Paolo Posted December 2, 2020 Author Share Posted December 2, 2020 (edited) Here's a couple of SVG produced with the Export selection to SVG command. Feel free to test it in your workflow, I'd like to have your feedback before to release. geometry test.svg lines test.svg and here's a part of the produced SVG code: geometry text.svg <?xml version="1.0" encoding="utf-8"?> <!-- Generator: SVG Export Plug-In © Paolo Marcuccetti 2020. SVG Version: 20201128) --> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg version="1.1" id="Level 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0" width="595.2px" height="841.68px" viewBox="0 0 595.2 841.68" xml:space="preserve"> <g transform="scale(28.346456692913385 -28.346456692913385) translate(10.498666666666667 -14.8463)"> <rect x="-8.498666666666667" y="7.995558273480356" width="4.850741726519645" height="4.850741726519644" fill="rgb(204, 204, 204)" vector-effect="non-scaling-stroke" stroke-linecap="round" stroke-width="2.016" stroke="rgb(221, 9, 7)" /> <rect x="-2.425370863259822" y="7.995558273480356" width="4.850741726519645" height="4.850741726519644" rx="1.0" ry="1.0" fill="rgb(204, 204, 204)" vector-effect="non-scaling-stroke" stroke-linecap="round" stroke-width="2.016" stroke="rgb(221, 9, 7)" /> <path fill="rgb(204, 204, 204)" vector-effect="non-scaling-stroke" stroke-linecap="round" stroke-width="2.016" stroke="rgb(221, 9, 7)" d= "M8.498666666666667 11.425550642086936 7.077917308753603 12.8463 5.068674298060086 12.8463 3.6479249401470226 11.425550642086938 3.6479249401470226 9.416307631393419 5.068674298060084 7.995558273480356 7.077917308753605 7.995558273480356 8.498666666666665 9.416307631393417 Z "/> <circle cx="-5.924629136740178" cy="3.570187410220533" r="2.4253708632598228" fill="rgb(204, 204, 204)" vector-effect="non-scaling-stroke" stroke-linecap="round" stroke-width="2.016" stroke="rgb(221, 9, 7)" /> <path fill="rgb(204, 204, 204)" vector-effect="non-scaling-stroke" stroke-linecap="round" stroke-width="2.016" stroke="rgb(221, 9, 7)" d= "M2.4253708632598228 2.746332281802734 -0.6412188019392882 2.746332281802734 -0.6412188019392879 4.394042538638335 2.4253708632598228 4.394042538638335 2.4253708632598228 5.995558273480356 -2.425370863259822 5.995558273480356 -2.4253708632598214 1.1448165469607112 2.4253708632598228 1.144816546960712 Z "/> <path fill="rgb(204, 204, 204)" vector-effect="non-scaling-stroke" stroke-linecap="round" stroke-width="2.016" stroke="rgb(221, 9, 7)" fill-rule="evenodd" d= "M5.078295803406844 2.5751874102205337 5.078295803406844 4.565187410220534 7.068295803406845 4.565187410220534 7.068295803406845 2.5751874102205337 Z M8.498666666666665 3.5701874102205333 A2.425370863259822 2.425370863259822 10313.240312354817 0 1 3.6479249401470213 3.5701874102205347 L3.6479249401470213 3.5701874102205333 A2.425370863259822 2.425370863259822 10313.240312354817 0 1 8.498666666666665 3.5701874102205324 Z "/> <line x1="-8.498666666666669" y1="-12.206080187949256" x2="8.498666666666669" y2="-12.206080187949256" vector-effect="non-scaling-stroke" stroke-linecap="round" stroke-width="1.2959999999999998" stroke="rgb(119, 119, 119)" /> <line x1="-8.498666666666669" y1="-12.8463" x2="8.498666666666669" y2="-12.8463" vector-effect="non-scaling-stroke" stroke-linecap="round" stroke-width="1.44" stroke="rgb(119, 119, 119)" /> </g> </svg> Edited December 8, 2020 by Paolo Message too much long! Quote Link to comment
Brian(J) Posted December 2, 2020 Share Posted December 2, 2020 Paolo, I tried Geometry and it loaded into my Shaper Origin CNC- it looked good up until I tried to place the design for cutting- then it rejected the file format. I have never seen this with a file before-usually they fail to load if they are bad. Quote Link to comment
Brian(J) Posted December 3, 2020 Share Posted December 3, 2020 (edited) Here is more detail. I ungrouped the drawing and tried loading/cutting each individual element. The first two rows and the lines at the bottom are great. The truncated circle and the letters A B C, the entire row 3, will not place in any combination or alone. The truncated circle has an additional element, a sort of shadow, hidden behind it, but removing it does not help either. I think you are close to something good here. Edited December 3, 2020 by Brian(J) Quote Link to comment
Paolo Posted December 3, 2020 Author Share Posted December 3, 2020 Thank you @Brian(J) for your test. Objects come grouped, this is necessary due to the transformation (scale(1,-1)) needed to flip the Y axis that is reversed in Vectorworks. This is needed, there is no other way to flip Y, as far as I know. About the truncated circle, this is a very special case where you cannot get the same (partially stroke in Vectorworks) circle in SVG unless you draw a truncated circle (really is a polyline) for the fill and an arc for the stroke. About the letters, they should be polylines, maybe the problem is that they have no stroke and your program does not recognise it? This should not a be a problem. From a graphical point it is correct that there is no stroke (as they appear in Vectorworks!) but if you need strokes, anyway, I'll do in way to propose stroke as option. I have also changed the SVG version <svg xmlns="http://www.w3.org/2000/svg" version="1.2" baseProfile="tiny" since I use the attribute vector-effect="non-scaling-stroke" that is available from this version (1.2 Tiny). However this attribute is already present in most SVG implementations, but it may be not the case of Shaper, that does not recognise the code. I have tried with an online validator this new version and it passes the test correctly. This attribute is used to get the the visually balanced line weight independently from view zoom, but it does not alter the real weight (that is, if you open the exported file in Illustrator, you get the same line weight that in Vectorworks), so I can simply decide to omit this attribute, if it 'd be a problem. I have uploaded the updated version of the two tests, please, give them a try, if you can. geometry test.svg lines test.svg Quote Link to comment
Brian(J) Posted December 3, 2020 Share Posted December 3, 2020 Same result with the update file. The Shaper CNC doesn't use stroke width as that is determined by the size of the cutter, so the 10 lines at the botom of the Geometry file come in as identical lines of the same thickness. I will send the SVG to Shaper and ask them to comment. Quote Link to comment
Paolo Posted December 3, 2020 Author Share Posted December 3, 2020 Thank you @Brian(J) for your prompt reply. Here's a file with just three rows of converted text text with stroke test.svg When the program finds a "text" type in the selection, it shows this dialog: If you include strokes, they will be 1pt with the same color as fill. Thank you to get in touch with Shaper. I have browsed their site and downloaded their Illustrator template to compare with mine. No differences (they use SVG 1.1 as in my previous tests), rather my code is more simple and clean, since I want it to be widely compatible. Hope they give some tracks, though. Quote Link to comment
Brian(J) Posted December 4, 2020 Share Posted December 4, 2020 Paolo, the text files continue to fail. I have made 2 files and request you convert them to SVG with your plugin. They have been set up with the correct color coding for cutting. The first has text and the second has text that has already been converted to polylines. I also tried to attach an SVG file but that is not a listed allowable file type and it refused. Not sure how you are able to attach SVG's. PolyTEST.vwx textTEST.vwx Quote Link to comment
Paolo Posted December 4, 2020 Author Share Posted December 4, 2020 Hi @Brian(J), here I am Archivio.zip I have refurbished my algorithm to avoid the usage of the <g> tag so you do not have to ungroup. The produced SVG is 1.1 to maximise the compatibility. Hope this works. Quote Link to comment
Paolo Posted December 4, 2020 Author Share Posted December 4, 2020 New SVG test updated produced with the latest plugin version. Feel free to test it in your workflow, I'd like to have your feedback. geometry test.svg lines test.svg text with stroke test.svg Quote Link to comment
Paolo Posted December 4, 2020 Author Share Posted December 4, 2020 @Brian(J) my linked SVG files are actually hosted on my website. To send me an SVG, simply compress it as zip, then you can attach it to a post in this forum (as the .zip I sent you before). Quote Link to comment
Brian(J) Posted December 5, 2020 Share Posted December 5, 2020 (edited) Paolo I could not get any of the files you sent to work. Attached are SVG files that do work. I have two ways of getting to an SVG from VW. First way is DXF to Fusion360 then export with the Shaper plugin. The files below 'Prandina exact' and 'Shaper Exported Geometry' were made that way. Second way is to export PDF from VW to Inkscape then save as file type SVG (Not InkscapeSVG). "Prandina 2' was made using the PDF/Inkscape method. The results are very different but both work. The resulting files are OK, but not as good as I would like. I think your plugin will be much better when it is finished. Prandina 2.zip Prandina exact.zip Shaper Exported Geometry File.zip Edited December 5, 2020 by Brian(J) Quote Link to comment
Paolo Posted December 6, 2020 Author Share Posted December 6, 2020 (edited) @Brian(J) this is my attempt: prandina.svg.zip Substantially, I have copied the header: <?xml version="1.0" encoding="utf-8"?> <!-- Generator: SVG Export Plug-In © Paolo Marcuccetti 2020. SVG Version: 20201206 --> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg version="1.1" id="Level_1" x="0px" y="0px" width="558.96px" height="782.8799999999999px" enable-background="new 0 0 558.96 782.8799999999999" viewBox="0 0 558.96 782.8799999999999" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:shaper="http://www.shapertools.com/namespaces/shaper" xmlns:xlink="http://www.w3.org/1999/xlink"> and inserted a "," comma between x and y coordinates of the various path vertexes (as seen in your examples). I hope this work. Since I do not know what are Shaper SVG specific rules, I cannot go further chasing a (particular) solution by attempts, with the risk of losing the general compatibility. Edited December 6, 2020 by Paolo Quote Link to comment
Brian(J) Posted December 6, 2020 Share Posted December 6, 2020 Hi Paolo, Thank you for your efforts. With the very first examples you sent most of the shapes worked fine, and I think you could consider reverting back to that format if you have added code that might not be required. I think you should complete the plugin and when I have it installed I think I can make it work. Looking forward to the final product. Quote Link to comment
Paolo Posted December 6, 2020 Author Share Posted December 6, 2020 @Brian(J) I am preparing a Beta version for you (and all) to download and try. I will post the download link asap. P.S.: the SVG code in my files has not changed since earlier versions. Usually SVG readers are very tolerant. I am the author of the SVG import plugin that is included in the Vectorworks italian version and I can assure you that there are, out there, so many ways of how the svg are listing their numerical values (with or without commas, spaces, carriage returns etc.) and it seems to me strange that Shaper cannot read a simple SVG 1.1 file that passes the official Mozilla consortium validation. I have seen that the SVG exported with the Fusion plugin adds specific code that Shaper uses, but this should be obtained also interpreting the colors and fills suggested in their templates. Quote Link to comment
Paolo Posted December 8, 2020 Author Share Posted December 8, 2020 Here's the Export to SVG beta to test: Export to SVG Beta The Beta shows a dialog at start that will be removed in the final release. The Beta will cease to work on December 15th, I hope to get some feedback, here on this post or with the form on the plugin page Export to SVG website Quote Link to comment
Brian(J) Posted December 8, 2020 Share Posted December 8, 2020 Paolo, I have been using VW from I think 1986 (it was MiniCad 2 at that time) but have never before installed a plugin. I extracted to widows file path: C:\Program Files\Vectorworks 2020\Plug-Ins then restarted VW. Can you describe or point me to a description of the next steps? Thanks Quote Link to comment
Paolo Posted December 8, 2020 Author Share Posted December 8, 2020 @Brian(J) here's the instructions (from the site)... Unpacking the downloaded zip file, you'll find a sole element: Export to SVG.vsm Move the “Export to SVG.vsm” file inside your Vectorworks Plug-ins folder (in your case C:\Program Files\Vectorworks 2020\Plug-Ins). Restart Vectorworks. Edit your workspace adding the menu Export to SVG command (you'll find it in Import/Export category) Usually you'll add it in the File menu, Export submenu. Save the workspace. In the end you should get a new menu item Export to SVG in the File -> Export submenu. Here instructions for editing the workspaces: https://app-help.vectorworks.net/2020/eng/VW2020_Guide/Start/Customizing_workspaces.htm And here instructions to add a menu command: https://app-help.vectorworks.net/2020/eng/VW2020_Guide/Start/Modifying_menus_and_commands.htm#XREF_12039_Modifying_Menus Note: the plugin is written in VW2021, however your 2020 should get it to work. Quote Link to comment
Brian(J) Posted December 8, 2020 Share Posted December 8, 2020 Thanks, looked but did not see the instructions. I now have the comand in the Export menu but- Quote Link to comment
Paolo Posted December 8, 2020 Author Share Posted December 8, 2020 @Brian(J) try to download the file again, let me know if the error persists. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.