Jump to content


  • Content Count

  • Joined

  • Last visited

Everything posted by MullinRJ

  1. MullinRJ

    screen plane only

    halfcouple, This is an old issue, and I remember answering it before. What I didn't remember was how long ago I posted a response. See this post from 7.5 years ago. Since my post, I added another line to BEEP when the preference is set to TRUE. This lets you hear an audible BEEP when the "Active Plane Menu" gets set to "Screen Plane", and nothing when it gets set to "Layer Plane". Click reduction AND Glance reduction rolled into one. { This script will toggle the "Active Plane Menu" between "Screen Plane" and "Layer Plane", } { and BEEP when "Screen Plane" is active. } { 23 Apr 2011 - Raymond J Mullin } SetPref(1099, not GetPref(1099)); if GetPref(1099) then SysBeep; If the last option in the "Plane Mode" dialog is selected, "Screen Plane or Working Plane", then my script toggles the "Active Plane Menu" between "Screen Plane" and "Working Plane". If anyone needs help turning this into a Menu Command, please write back. HTISH, (Hope This Is Still Helpful), Raymond
  2. MullinRJ

    Sample VST with Mode Bar Buttons

    I found an old email (GBTML*) with a reference to the Developer Wiki on how to edit a VST to be event-enabled. http://developer.vectorworks.net/index.php?title=VS:vstGetEventInfo Thank Ryan and Conrad for writing this down. Raymond * God Bless the Mailing Lists 🙂
  3. MullinRJ

    Sample VST with Mode Bar Buttons

    I have run down that dead-end alley, too. Life would be so much more colorful if it did. Thanks, Raymond
  4. MullinRJ

    Sample VST with Mode Bar Buttons

    Josh, You've got my attention. Thanks. Somewhere I've got a recipe for "using" a Hex Editor. I'll post back when I dig it up. So, in your opinion which is harder, going down this route, or learning the SDK? :-) Raymond
  5. MullinRJ

    Sample VST with Mode Bar Buttons

    Julian, If you find one, I'd love one, too. Please share. Years ago, when I first looked for the same, I believe I was told it was only achievable with the SDK. I have several tools I have made that would benefit immensely from Mode Buttons. I hope you find an example. Raymond
  6. MullinRJ

    How to convert old MiniCAD .mcd files

    Steve, Good news. On a whim I tried a later version of VW to see what would happen and VW 8.5.2 opened the file. In you email you ask if I can export as a DWG file. I can, but I may not pick the settings you'd like. That kind of translation is somewhat "personal" and is often done several times before it exports to your liking. What version of VW do you have? I was able to bring it up to VW 2018, but that won't do you any good if you don't have it. Making progress, Raymond PS - if you add a signature to your Forum Profile, and include your version of VW and your OS it will help others answer your questions more accurately.
  7. MullinRJ

    How to convert old MiniCAD .mcd files

    Hi Steve, You will need to contact Vectorworks Support for this file. It appears to be a MC 7 file, but it was created by a BETA version of the software and the file format is not the same as released versions. Unless you open it with the right beta version it is not readable. Hopefully the engineers in the Mother Ship can help you. I tried to paste a picture of the warning but my file upload failed. You can send me another or all of the files and I can tell you if they are BETA files, or if they will open. All the best, Raymond
  8. MullinRJ

    How to convert old MiniCAD .mcd files

    Hello Steve, How many files and how big? If it's not too many files I could convert them for you, assuming you are free to send them to me. As to the byte sequences - YES - modern VW files have a header you can read with a text editor. Older MiniCAD files, not so much. I'm not sure when the header became human readable. My suggestion, open a file in a text editor and see if you can make anything out. If not, no harm done. Just don't save it with the text editor! If you'd like me to update your files, you can email me at mullinrj AT aol.com. HTH, Raymond
  9. MullinRJ

    Converting file

    Hello Victor, No, you will need VW 2018 to open it. If the file is not confidential, I'd be happy to convert it for you and send you back a VW 2015 file. You can email the file to my AOL address. Use MullinRJ AT aol.com. I hope that's not 2 cryptic. ;-) Raymond
  10. MullinRJ

    Arcs to circles.

    I downloaded the file in the first post on Mar 17th, but only now played with it. Like Kevin, I reduced the network to take advantage of the vs.SetArc() command. This has the advantage of preserving the graphic attributes of the original ARCs and their stacking order on the page. I, too, noticed UNDO was broken for my network, while it works for the original network. I believe this is due to the different ways these networks run. Rob's network runs like an object PIO, and Kevin's and my networks run like a Menu Command. Rob's network uses ARCs as input and creates a group of CIRCLEs from them, then it deletes the ARCs; while Kevin's and my networks modify the original ARCs and create no output object. A typical Marionette network creates an output. When a network is rerun, the existing output object is deleted and a new object is created. UNDO works for this scenario. In my network, no new object is created. The existing ARCs are modified to CIRCLEs. UNDO does not work to restore them. See attached file. Marissa, I hope this gets you pointed in the right direction. Raymond arcs to circles (RM).vwx
  11. MullinRJ

    Geometric Algorithms (a.o Voronoi)

    Dave, I clicked "Open image in New Tab" and the entire PDF opened there. I wasn't expecting it to open that way, but it did. I just did it again and it still works. Raymond
  12. MullinRJ

    Clearing Dialog pull down menu

    Sam, After reading Julian's comment I looked at your code and mine again; there is a difference. I always remove the 0th element (the element at the front of the list). Julian's way removes the last element every time. You are removing the element at the index counter, which is a moving target. Eventually, the list gets shorter than the index counter and you will receive a runtime error. You need to pick one of our two methods and you should be okay to proceed. Raymond
  13. MullinRJ

    Clearing Dialog pull down menu

    Sam, It looks like your code should work. Have you verified that "fieldCount" is > 0? If it is, are your "Dialog" ID, and your "kTargetData2BOList" constant correct? I use something similar in Reshaper, where GetChoiceCnt is a custom function that returns the menu size from GetChoiceCount(), just like yours. for I := 0 to GetChoiceCnt(dlogID, MenuItem)-1 do RemoveChoice(dlogID, MenuItem, 0); HTH, Raymond
  14. MullinRJ

    Symbols in PIOs...turn off 2D?

    Control the visibility of the parts with classes. Raymond
  15. MullinRJ

    Quitting & Closing the VW Program by Red Dot

    If you use individual drawing windows, like in the good old days – Red Dot. If you use the "Application Window" – no Red Dot. Toggle the "Use Application Window" menu item to see the differences. Of course, I'm only speaking about the Mac. HTH, Raymond
  16. MullinRJ

    Layers with Python

    Martin, A basic Plug-In object is a SINGLE object and it must reside on one layer. It can contain multiple parts, like a symbol or a group, but it is treated as ONE object. You can put the pieces in multiple classes, but not on multiple layers. It is possible to "cast off" objects to other layers as your Plugin code runs, but that is definitely not standard practice. You could run your code as a Menu Command and draw on separate layers. That is more akin to running code from a script palette. Write back if you need more direction. Raymond
  17. MullinRJ

    Layers with Python

    Martin, Try this script: import vs; vs.Layer('Screen - Panels') vs.Rect(0, 0, 1, 1) vs.DSelectAll() vs.Layer('Screen - Data') vs.ArcByCenter(1, 1, 0.5, -90, 270) vs.DSelectAll() It creates a layer and draws a Rectangle on it (and deselect it), then creates another layer and draws an Arc on it (and deselect it). How does this differ from your script? Raymond
  18. MullinRJ

    screen plane only

    Gentlemen, I posted this as a bug on January 1st. I was informed it is (or will be fixed) in a future release, but I don't know which one. Hopefully the next one. I was able to determine through testing that the bug only affects files saved in VW 2018, as files saved in VW 2017 open correctly in both VW 2017 and VW 2018. If you use a particular template file often, you could export it to VW 2017, resave it as a template file in VW 2017, then move the .sta file to your VW 2018 User Folder under the "Vectorworks/2018/Libraries/Defaults/Templates/" directory. Save your VW 2018 version of the .sta file in another folder. Of course if you already have a template file in VW 2017, you can drag a copy of it to your 2018 User Folder. As soon as the bug fix is released you can replace your template file to the VW 2018 version again. This won't correct the problem when you save and reopen regular files, but at least you'll start a new file correctly. HTH, Raymond
  19. MullinRJ

    2D Symbols always insert at the drawing origin.

    Obviously not known by everyone. Are there any "known" workarounds? Thanks, Raymond
  20. MullinRJ

    2D Symbols always insert at the drawing origin.

    Sorry Michael, no new ideas here. Questions, but no ideas. Does this happen in all files? Files created from a VW 2018 template? Blank VW file? Files converted from earlier VW version(s)? PageBased, or WorldBased symbols? Can you post a problem file here? Raymond
  21. MullinRJ

    2D Symbols always insert at the drawing origin.

    Michael, What is your Snap Grid distance set to? Menu "Tools -> SmartCursor Settings...", or CMD-8. If you have constraint "Snap to Grid" enabled, and the Snap Grid is LARGE compared to your screen area, you'll be placing symbols at the origin all day long, assuming the origin is visible in your drawing window. Of course Symbols won't be the only thing jumping to the Origin, every click will land there. Please write back with the answer when you find it. I doubt I guessed it. Raymond
  22. MullinRJ

    Issue with "Extrude Along Path"

    Hello Sam, Problem 1, either draw your 2D objects directly on the Layer (GND) Plane, or move them there after they are created. Problem 2, requires manual clean up. I modified your script to address both problems. PROCEDURE EAPOnGndPlane; VAR struc, struc1, struc2 :Handle; BEGIN Rect(-40, 40, 40, -40); SetObjectVariableBoolean(LNewObj, 1160, FALSE); { Move PathRECT to Ground Plane } struc1 := ConvertToNURBS(LNewObj, FALSE); Rect(-1, 1, 1, -1); struc2 := LNewObj; SetObjectVariableBoolean(struc2, 1160, FALSE); { Move ProfileRECT to Ground Plane } struc := ExtrudeAlongPath(struc1, struc2); Move3DObj(struc, 0, 0, 10); { elevate EAP } { Clean up } DelObject(struc1); DelObject(struc2); if (struc <> nil) then SysBeep; { APPLAUSE!!! } END; Run(EAPOnGndPlane); HTH, Raymond
  23. MullinRJ

    Snap to loci

    Yes. This script will toggle the SnapToLoci preference and set the MasterSnaps preference to the opposite state as the SnapToLoci preference. { Toggle VW Preference SnapToLoci, and BEEP when it's enabled. } { Also toggle the MasterSnaps preference OFF when SnapToLoci is ON, and ON when SnapToLoci is OFF. } SetPref(5, not GetPref(5)); { Toggle SnapToLoci pref } SetPref(1257, not GetPref(5)); { Toggle MasterSnaps opposite of SnapToLoci pref } if GetPref(5) then SysBeep; { Beep when enabling SnapToLoci pref } Of course, if you normally keep the MasterSnaps preference OFF, then you only need to toggle the SnapToLoci preference. HTH, Raymond
  24. Once again, THANK YOU!!! Raymond
  25. MullinRJ

    Auto generate dimensions script issue

    Hi Emily, To get an "orthogonal" 3D size, you must first unrotate a 3D object before using Get3DInfo(). I modified your script to do just that. I also merged your Num2StrF() statements into the SetRField() statements to shorten the script a little. PROCEDURE InputData3D; { Get 3D_Size and attach or modify a "PanelSizes" record with the info. } { 11 Jan 2018 - Emily L. - Original script works for unrotated 3D objects only. } { 11 Jan 2018 - R.Mullin - Unrotate objects before measurement, then re-rotate them. } CONST RECD = 'PanelSizes'; VAR h :HANDLE; W, T, D :REAL; Xcen, Ycen, Zcen :REAL; xRot, yRot, zRot :REAL; isMirrored :BOOLEAN; BEGIN h := FSActLayer; REPEAT if Get3DOrientation(h, xRot, yRot, zRot, isMirrored) then begin Get3DCntr(h, Xcen, Ycen, Zcen); { get 3D center } { unrotate 3D object } Set3DRot(h, 0, 0, -zRot, Xcen, Ycen, Zcen); Set3DRot(h, 0, -yRot, 0, Xcen, Ycen, Zcen); Set3DRot(h, -xRot, 0, 0, Xcen, Ycen, Zcen); Get3DInfo(h, T, W, D); { get 3D size } { re-rotate 3D object } Set3DRot(h, xRot, 0, 0, Xcen, Ycen, Zcen); Set3DRot(h, 0, yRot, 0, Xcen, Ycen, Zcen); Set3DRot(H, 0, 0, zRot, Xcen, Ycen, Zcen); { store data in attached record. } SetRecord(h, RECD); SetRField(h, RECD, 'Width', Num2Strf(W)); SetRField(h, RECD, 'Height', Num2Strf(T)); SetRField(h, RECD, 'Depth', Num2Strf(D)); end; { if Get3DOrientation } h := NextSObj(h); UNTIL(h=NIL) END; RUN(InputData3D); HTH, Raymond


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.