Jump to content


  • Content Count

  • Joined

  • Last visited

Everything posted by MullinRJ

  1. MullinRJ

    Elliptical arcs

    Hi Petri,I have a question about your previous remark: << Just remember: VW ovals are not true ellipses. >> Would you please explain what you mean? To the best of my ability to determine the shape, the OVAL (full, not arc segment) seems to conform quite well to a mathematically generated ellipse. TIA,Raymond
  2. MullinRJ

    Making Windows Clear

    As I have stated previously, I am not a Window expert, but could the class Window-Main refer to the conatiner that holds the window parts, where each part in the container is in a different class? That way, when you only display the class Window-Main, the internal objects do not display, because the are in different classes. I am just guessing, but if it's true, it might explain what you describe. You can use the Custom Visibility menu to display objects in multiple levels of classes, or run a short script like the following: Hide(ALL);Show((C='Window-Main')|(C='aSubClass')); There are probably other ways to do this too. Best wishes,Raymond
  3. MullinRJ

    Making Windows Clear

    << Can't figure out what I might have done to turn these windows opaque. Ideas? >> Wash them? Sorry, I don't really know the answer, wish I did. Raymond
  4. MullinRJ

    quick toggle for "zoom lineweight"?

    You can do it with one line of code: SetPref(9, not GetPref(9)); This sets the preference to the opposite of its current state. I place it in a script palette with the name ZLT (for Zero Line Thickness), but you can do as IONW suggests, <<Make it a plugin and add it to your work space and assign it a keystroke. >> This can be done with any of the boolean preferences. You just need the number of the pref which you cn get from the Appendix of the VS Function Reference. HTH,Raymond PS - Pref 10 that IONW mentions is for toggling B&W display. [ 08-30-2002: Message edited by: MullinRJ ]
  5. MullinRJ

    scale lineweights

    Kevin,You are right, circuit board design is primarily done in other software packages. However, at the time I started doing designs, all the other circuit board packages could not comprehend the geometries I needed (circular arrays). MiniCad, because of it's mechanical capabilities, scripting language and price was perfect for my needs. Only the square pen feature made it a little more difficult to use, but I developed ways around that. VW still has more flexibility than any other package I have seen, and I have 12 years of tools developed that make designs easy to manage. Chip design and PC board design are light years apart. You are right, the big silicon houses do not use VW for IC design. Board design is another issue and well within the capabilities of VW. Actually, I have been able to do things in MC/VW for over a decade that only recently have been done in other packages. I have made the right choice for software packages, and whether or not the line weight and square pen issues are addressed, I will continue to VW for my design work. <<If I need to draw a thick circle, then I would draw a solid circle and do a "clip surface with another circle.>> Using the knockout feature is nice, but it does not print correctly for me on all the machines I use; whereas, concentric circles always work. Katie, I too wish to offer my thanks for a job well done - both, by the entire VW team and especially to the tech support people that answer this board. I, for one, usually only write when there is a problem. Frustration can sometimes sharpen my words, but it never lasts (the frustration, that is). If I have sounded off too harshly in the past, I apologize. I may disagree with various points of view, but I still appreciate the work you do. Mostly, I wish to say thank you. Thank you all. Best wishes,Raymond Mullin [ 08-30-2002: Message edited by: MullinRJ ]
  6. MullinRJ

    scale lineweights

    I, too, agree with Dan. Trying to do something simple like scaling a layer should not require a multitude of edits to preserve the finished look of a drawing. However, the problem is not easily remedied by allowing lineweights to be scaled. One key point that has so far been omitted in this thread is the inherent technological limit of available lineweights. From the beginning of the software as MiniCad, there have only been 256 available lineweights (0-255 mils). Even the metric weights are rounded off to the nearest mil in this range. (You can see this if you dump a metric drawing to a VectorScript text file and search for the PenSize command. The units are always in mils.) It's nice from the programmer's standpoint to have such a concise data structure to manipulate, but it severely limits the software from a draftsman's point of view. Lineweights over 127 mils cannot be doubled accurately, and forget about tripling or quadrupling the scale. The widths will clip at 255 mils. On the other end, small lineweights cannot be drawn below 1 mil. If an object is scaled multiple times, up or down, where lineweight clipping occurs, all relationships to the original lineweights are lost. From a drafting perspective, consider having to draw circles with varying weights. Circles up to 255 mil lineweights can be drawn with one circle. But if one circle needs to be drawn with a 0.5" line thickness, two concentric circles of 0.25" need to be drawn, and their respective radii must be calculated and adjusted accordingly. Not the hardest of tasks, but it's a real time waster. I've had to do it, and it ain't fun. Don't even think about scaling this up. As a circuit board designer, lineweights are critical to doing exacting high tech work. Unfortunately, this software does not allow me to be as picky as I'd like. To get finished trace widths precisely etched in copper, it is necessary to plot lines 0.5 - 1.5 mils over the required finished copper trace width. The smaller the finished linewidth, the more critical this oversizing becomes. I can force the finished linewidths to the values I need to control my plots, but not inside VW. It requires an edit after the file is exported. Katie, as to your comment << A lineweight is an attribute assigned to an object. Scaling an object has no relation to it's attributes such as line weight. >>, I could not disagree more. Although this is currently true with VW, it is not the way most draftsmen think. To cite a parallel that does exist in Vectorworks, the Scale Objects... menu allows you to scale, or not scale, associated text when scaling selected objects. Text is an attribute to an object, yet you let us choose whether or not to scale it. Why not lineweights? This "feature", like the square drawing pen*, really needs to be updated to make VW an exemplary CAD package. Raymond Mullin * Square drawing pen - Sorry, I couldn't resist bringing it up again. This QuickDraw hand-me-down should be abandoned. It's hard to do precise work when the screen image is not what prints, and in some cases, is what prints but shouldn't.
  7. MullinRJ

    offset separate lines

    Dan,Sorry, I don't know the answer to that. Based on the nature of the offset commands you were inquiring about, I would be surprised if they did not work. The VectorScript required for those functions is not that difficult (basic math functions) and those functions used should work under all environments. As to the rest of the package, I don't know. Each tool is a separate piece of code, so one could break without affecting the rest, but the odds are they all will work. If there would be any problem, Julian will work with you to fix it. I have dealt with him in the past and you won't find a better person to do business with. HTH,Raymond
  8. MullinRJ

    offset separate lines

    OK Dan, I see what you mean. What you are looking for can, and has been done in VectorScript. Julian Carr has written a suite of tools (more than 40) that enhance the functionality of VW. There are four Offset and Array tools that I believe do what you are looking for. Check out his site at Julian Carr Design, then choose the link to OzCad VW Pro (it's across the top). You can view the manual in PDF to see if it interests you. HTH, Raymond
  9. VectorScripts could be SO much more flexible if there were commands that could sense the modifier keys at the exact time the VS command is executed. The existing SHIFT, COMMAND, OPTION & CAPSLOCK commands only sense modifier keys at the last user event. Your tools have this capability. I want my tools to have the same ability. Thanks,Raymond Mullin
  10. MullinRJ

    offset separate lines

    Hi Dan,You can use the Move command for simple translation (X, Y) or (r, Theta). The Offset tool is better used for making concentric duplicates. Select all the objects you want to offset, then Option-Click (Mac keyboard) on one of the selected objects to make your duplicates. Option-Clicking on a selection will duplicate that selection in place. Then use the Move command under the Tool menu and type your distance in the dialog box. The Move command shortcut on the Mac is Cmd-M. The appropriate Windows shortcut will be listed on the menu. Ctl-M, I think, I never remember which. Also, Option-Clicking on an unselected object will duplicate just that object. It takes a little practice since there is no obvious feedback that a duplication has taken place, but it's quick, easy, and fairly intuitive. When in doubt, UNDO. If you just want to move the original objects, then Cmd-M, & Enter. It remembers the last offset entered. Another fun shortcut, if you Option-Click on an object and then drag the duplicate into position, then by hitting Cmd-D (duplicate) N times, you will get N more duplicates, each offset the same amount as the first one. This is a quick and dirty Duplicate Array method. HTH, Raymond
  11. MullinRJ


    PostScript fonts display just fine on a Mac - with a little help from Adobe's ATM. I have been using PostScript fonts with TrueType fonts for years without a problem. Although I have replaced many PS fonts with TT ones (as new OS's ship with TT's now), I still have dozens of PS fonts active. I cannot tell any difference by what I see on the screen or the printed page (PostScript printer) as to which font type was used. ATM? Deluxe is what I am using now on OS 9. I am not sure what is available for OSX yet.
  12. MullinRJ

    resedit, again

    No disrespect intended, but I think that would depend on the level of understanding of the tinkerer. I have never had trouble using ResEdit. It's a great tool and I don't know where I'd be without it. Raymond [ 08-19-2002: Message edited by: MullinRJ ]
  13. MullinRJ


    What happens if you hold the SHIFT key down while using GetPtL? (a shot in the dark question) Raymond
  14. MullinRJ


    Sometimes my angle snap prefs mysteriously get unselected, don't know why, but they do. Double hit the "S" key to open the Angle Snap preferences, or you can double click on the constrain angle button in the Constraint Palette. Make sure the 30,60 and the 45 check boxes are checked. Repeat procedure as often as necessary if the program "forgets" again. Next, check that you are in Top/Plan View. My program loses the ability to snap to anything, angles and objects, at random intervals. I press CMD-5 and all is right with the world again (for a while). This may not solve your problem, but you'll need to check these things (if you haven't already) before you go on. HTH,Raymond [ 07-30-2002: Message edited by: MullinRJ ]
  15. MullinRJ

    Saved Sheets Disappearing

    Undo works just as well, too. I Cut, Copy & Paste in my script palettes by accident all the time. Undo is a life saver. Raymond
  16. MullinRJ

    to change objects from one layer to another

    Although, I agree with you in principle, that implementaion of something simple is never simple, I can't help but wonder that these aspects could not have been implemented in more than a decade of development. You and I can work around it, but ease of use should be a goal, not a Wish List item. Raymond
  17. MullinRJ

    to change objects from one layer to another

    I never did understand why there have not been Copy; Paste; & PasteInPlace; commands in VS. And for that matter, SendToLayer would be nice, too. In some of the documentation I have read over the years, the use of DoMenuText() commands was discouraged for portability reasons, but I know of no other way to invoke these basic functions. It seems to me the above commands would be a logical extension of the VS interface, and it would make it a whole heck of a lot easier for NOVICE programmers to get started. That's just my 2?. Glad I could help. Raymond
  18. MullinRJ

    to change objects from one layer to another

    OK, I had a few minutes free time and it's not 4 AM, so I can think straight. Here is a PutStuff script. One note of caution, if an object is locked, Cut will do nothing. HTH,Raymond Procedure PutStuff(Lyr :String; MoveObjs :Boolean); { Copy or Move all selected objects from the active layer to layer = "Lyr". } { If MoveObjs is TRUE, Objects are moved by Cut and Paste. } { If MoveObjs is FALSE, Objects are duplicated by Copy and Paste. } VAR LName :String; Begin LName := GetLName(ActLayer); { Get active layer name } if MoveObjs then DoMenuTextByName('Cut', 0) else DoMenuTextByName('Copy', 0); Layer(Lyr); { Make "Lyr" the active layer } DoMenuTextByName('Paste In Place', 0); Layer(LName); { return to previous active layer "LName" } End; { PutStuff }
  19. MullinRJ

    to change objects from one layer to another

    This procedure will copy all objects from a specified layer to the active layer. It should be easy to adapt it to copy selected objects from the active layer to any target layer (ie - Procedure PutStuff(Lyr :String) . HTH,Raymond Procedure GetStuff(Lyr :String); { Copy all objects from layer = "Lyr" to the active layer. } VAR LName :String; Begin LName := GetLName(ActLayer); { Get active layer name } Layer(Lyr); { Make "Lyr" the active layer } SelectAll; DoMenuTextByName('Copy', 0); Layer(LName); { return to previous active layer "LName" } DoMenuTextByName('Paste In Place', 0); End; { GetStuff }
  20. MullinRJ

    Opinions on feasability for circuit tools

    Matthew,Your response has definitely opened the door for some serious Wish List items. Is there any hope of wishing for Dynamic Memory Allocation in VS? User defined data structures (Pascal records) would be a BIG plus. If you answer this question, will you have to shoot me? On your comment about 4096 pin IC's, no, I have not seen any that big, yet, but it's probably not too far off. I have already done designs for some 1657 & 2092 pin BGA's. The good news regarding those monsters is that most (more than half) of the pins were Power and Ground pins. Still, by the time I finish writing this, the pin count will have gone up again. But to be practical, this would not be the limiting factor to a PIO approach. Since PIO's cannot affect changes in other PIO's, could I also wish for a new object, a master PIO type that had the ability to force changes to related objects as in a Parent/Sibling relationship? I know this is not the Wish List board, but you did start some wheels turning. Though keeping a realtime connection list sounds like the ideal way to make a "smart" layout system, it might be a lot faster to parse the existing connections after the editing is done. The downside to having everything done dynamically is that every small change would be accompanied by a ripple down effect when all the regenerations are done. I still think that having "smart" objects would be a useful addition to a well thought out system. For years now, I have been exporting data to files and then reading the results with other routines, both internal and external to VW, to process the data. If objects can be made to export key attributes from a controlling script, or a script can extract and export the data from the objects, then I see no reason why a system could not be designed with the program as it is. Post processing the objects should be a lot faster than dynamically updating a database as you edit. But who am I to say it can't be done. More power to the motivated. My gas tank hath runneth empty. Good night. Raymond
  21. MullinRJ

    Opinions on feasability for circuit tools

    It would be really hard to give you a comprehensive dissertation of how I develop a PCB design in a single post, so let's see if I can give you a good 10 cent tour. I have an advantage with my designs in that the boards are used for IC testing, there is a lot of symmetry inherent in each design. For most designs there is only a single chip in the center of a tester specific piece of hardware. But for some, there are dozens, maybe hundreds, of relays and passive components. I do all the drafting in VW and I control placement with VS. This way I can control registration through all the layers. I have done designs up to 32 layers. The secret to finishing any job is having the ability to output the work in a usable format. Until this year I had been exporting the data as PostScript, having the data plotted and then shipped to the PCB shop. This year I am exporting Gerber and sending the files directly to the PCB shop. Both forms of output use translators that I wrote to format the data. I have no idea how much of a time investment I have spent developing my tools, as it is a never ending process. I do know that I spent at least 3 solid months working on the Gerber translator. Postscript is a lot easier, as Gerber only has lines and arcs for basic primitives, and Gerber only prints one color at a time. I usually start by placing the known "obstructions" first. By "obstructions" I mean holes and SMT pads. There will always be objects you save until the end to place, but get the big ones and the required ones down first. Second, mark all your power connections. This will give you a visual aid of pins you don't need signals on. The remaining pins will usually need traces to somewhere. Running traces is a hit or miss process. Sometimes I have to start over two or three times to keep things balanced. Doing it wrong should give you ideas on how to do it better, so don't be afraid to restart. There are many possible requirements for the traces: equal line length for some or all traces, controlled impedance, predefined wiring or best fit for connectors, to name the most popular requests. Wiring spacing for BGA's is different from that for QFP's and DIP's, and different packages can really affect the layer count. Lastly, run your power. It doesn't need to be last, but it is the way I do it. After all the traces are run, most, if not all the holes are in their final position. Knowing where the holes are makes it easier to distribute the power grid. Each design is a puzzle. Each design is different and each has a unique set of constraints that needs to be met. Having a good understanding of VS is a great plus in getting the jobs done easier, faster and accurately. After all these years, I think I have derived more pleasure in designing the tools I use than in finishing the jobs, but it is the latter that pays. I know this is a short answer, but I hope it helps. Have fun deciding which way you want to go. Best of luck,Raymond [ 07-18-2002: Message edited by: MullinRJ ]
  22. MullinRJ

    Opinions on feasability for circuit tools

    I was hoping someone would respond to your post so I could have the luxury of reading and musing. I feel you deserve a written response, as a silent one is much less satisfying, though it does answer your questions directly. Since no one has yet posted, here are my comments. << While this all may be ambitious, does it sounds feasible? >> Yes, and yes. It is very ambitious, yet also very feasible. I have been designing circuit boards for IC test equipment using VW for more than 12 years. It is an excellent tool for the task. Most of what you outlined I have been able to accomplish, but not all of it in VW. Many processes I accomplish outside of VW because I have more control of data structures, the computer and the execution speed is much greater. Your item, "4. Netlist export", is just such a beast. I have found that VS does not process large arrays very quickly, though it has sped up dramatically over the years. When the trace count is in the thousands, sorting through all the endpoints can take a good bit of time. If you were to write your routines with the SDK you might regain the speed benefits, but add another layer of complexity to your onion. One important missing item from VS is the linked list. I would not have been able to do many things I have achieved without it. Working entirely with arrays can be daunting. <<My biggest concern would be how the wire tool can figure out which pins it has touched.>> Though it is not a trivial exercise to check for connectivity, it is more a brute force task - save all coordinates and start comparing. That may seem like a big concern now, but you will find many larger ones if you proceed. You will need an extensive library of parts to draw upon for your component tools. Reading one Component Vendor's catalog to find the right part is a non-trivial task, multiply that by the number of vendors out there and reach for your Excedrin bottle. Then, try to organize it for all the redundancy in the industry and you have created a full time job for someone. In the end, I think the biggest hurdle you will encounter is selling the package. Even if it does all you set out to do, and does it well, most prospective clients, and there are quite a few, are entrenched in AutoCad or other PCB design environments. Just getting their attention will be difficult. Getting them to switch will be much harder. If you are interested in attempting some of the things you have outlined, you might want to start designing it solely to suit your needs. There is still a lot of merit in having tools that do exactly what you need, and a lot of satisfaction in having built them. Best wishes,Raymond
  23. MullinRJ

    object reversal

    Joe, I have no way of testing if this works in v9, but give this a try. "SelectAll" the objects that have been reverse stacked and "Send to Front", (Cmd-F) on the Mac. In v8.5.2, this has the unique feature of reversing the stacking order of all the selected objects in addition to moving them to the front, but it's tolerable since pressing it twice restacks them back again. The feature may or may not have made it to v9, but you can write back and let me know. "Send to Back" has the same "hidden feature". If you're lucky, they haven't fixed it yet. Actually, I hope they leave it alone, it can be a desired side effect at times, and pressing Cmd-F twice doesn't bother me a bit. Though it may not be intuitive, it is useful when you understand how it works. It works in the drawing, in the symbol edit mode, and inside groups. HTH,Raymond
  24. MullinRJ

    SetTextStyle Demystified

    Has anyone ever tried to set the TextStyle of a text object with: Procedure SetTextStyle (objectHd:HANDLE; Start:INTEGER; Count:INTEGER; Style :INTEGER); ? I had tried to use it for months with varying results: TxtStyle := GetTextStyle(TxtHnd, 0); { save text style }{ change things up here }SetTextStyle(TxtHnd, 0, strLength, TxtStyle); { reset text style } Note: In the above example, the whole text block has the same formatting as the first character. If individual characters have separate formatting, then additional code will be needed. The documentation appears straightforward, but the results were anything but. I finally figured out what was missing from the written word. Just as the menu commands in the TEXT / STYLE submenu work, so does the VS command. The menu commands TOGGLE the text attributes. If some characters in a text block are BOLD and some are not, then with the whole text block selected (not a range of characters), selecting the Text / Style / Bold submenu item changes the BOLD characters to PLAIN, and the PLAIN characters to BOLD. To get all BOLD characters, you must first clear all formatting by selecting PLAIN and then select the BOLD option. Adding one more SetTextStyle statement makes the next SetTextStyle command work the way the documentation would lend you to believe it should have worked in the first place. TxtStyle := GetTextStyle(TxtHnd, 0); { save text style }{ change things up here }SetTextStyle(TxtHnd, 0, strLength, 0); { clear style formatting }SetTextStyle(TxtHnd, 0, strLength, TxtStyle); { set new style formatting } This even works with multiple format styles selected, like BOLD & ITALIC. Raymond
  25. MullinRJ

    Tools: key shortcuts

    Interesting, when I close VW and start again, the Circle/Oval tool reverts to the SECOND mode button (Circle By Center & Radius). The FIRST mode button is the OVAL mode, which is usually the one I want. Of course I am using VW 8.5.2, so you probably don't care about it any more. We really could use VS support for selecting the Tool mode. 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.