Jump to content

MullinRJ

Member
  • Posts

    2,007
  • Joined

  • Last visited

Everything posted by MullinRJ

  1. In the upper right hand corner of the drawing window, second little black triangle down from the top, select the option that says "Use floating data bar only when tab key is pressed" or one of the next two selections. Welcome to VectorWorks Land. Raymond
  2. Pat, that is only true if the parameters are all the same type and declared in the same parameter group. eg. procedure XYZ(var A, B, C :Integer);?????{ all are VARs } eg. procedure XYZ(var A :Integer; B, C :Integer);?????{ only A is a VAR } but I do it as you do with the VARs at the end, as a convention. eg. procedure XYZ(B, C :Integer; var A :Integer);?????{ input in the front, answers in the back } I think it looks better. It is only required if you want the function/procedure to return any modifications it made to your variable. Miguel is right, you cannot pass a constant value to a VAR parameter. The procedure has nowhere to put the new value on return. One other pitfall that I often run into and is somewhat tricky to catch, but I'm getting faster with repeat infractions... When you write two functions/procedures and one calls the other, if the other one returns a VAR parameter then it MUST be a VAR in the first. eg. ???procedure XYZ(var A :Integer); ... ???procedure ABC(B :Integer); ???Begin ??????XYZ (B);?????{ will not work as B is not a VAR parameter and XYZ is expecting one } ???End; { ABC } rather write: ???procedure ABC(var B :Integer);?????{ needs to be a VAR if it will be passed to another procedure } ???Begin ??????XYZ (B);?????{ now it will not work } ???End;???{ ABC } If you write enough code, you will be cursed with the same message you got earlier, but it will be a little harder to track down. Hopefully you'll not spend as much time as I have in the past looking for the cause. Raymond
  3. Hi Bruce, I was able to compose the 4 objects in place if I select 2 at a time. Compose did join the wrong end of the line to the arc, so I undid the operation, flipped the line, and composed again. I ended up flipping both lines and composing 2 objects at a time. I am sending you the file off line. Raymond
  4. Where are you in your drawing environment? Design Layer? Inside a group? Inside a Symbol Definition? Inside your house? While you're at it, what platform, OS, version of VW, flavor of VW (vanilla, SP1, SP2, SP2a), color car you drive? Just the facts, please. Raymond
  5. I think I'd have a hard time remaining coherent with one of those. So, did you pay for it in cash, or trade one of the VI's for it? Either way, will you be needing lunch money this week? Raymond
  6. What's the difference between the Free version and the Pro version ($25)? It wasn't readily apparent on their website. Raymond
  7. Hi Richard, I am in the final FINAL stages of updating Reshaper for VW 2008. It's a matter of days. I'll post back a short notice when it's ready and you can try a demo copy free for 30 days to see if you like it. Thanks for your interest, Raymond
  8. Hi Richard, ???The Bezier curve segment used in VW is a real Bezier curve, but it is a subset of the generic Bezier curves you are probably used to editing in programs like Freehand (loved that program) or Illustrator. The generic Bezier curve segment has two end points (on the curve) and two control points (off the curve). VW uses a simplified construct that combines the two control points into one. This configuration is also used heavily in TrueType font outlines (and others). ???In the VW Bezier curve segment the control points you are used to seeing are situated 2/3 of the way between the Corner points and the single "Bezier" control point and are not individually selectable. The reason for this model is it greatly simplifies the math for drawing the curves. ???Without getting into too much minutiae, the general equations for Bezier curve segments are cubic polynomials (powers of 3). The version of Bezier curves used in VW simplifies the equations to quadratic polynomials (powers of 2), which reduces the formulae by two multiplication operations for each point on the curve (one for X and one for Y) and is a HUGE time saver when thousands of curves need to be redrawn with possibly a hundred points in each segment. It's most likely all documented nicely in a text book somewhere, but I stumbled on this the slow way. Needless to say, I found the math quite interesting. ???Though I would also like to see Bezier curves fully implemented in VW, I have not run into a situation where the VW version doesn't work. The only major thing you can't do with the VW Bezier that you can with the more generic variety is create a loop with one curve segment. Since everything I have ever needed Bezier curves for was drawing outlines of physical objects, this has never been a serious problem, but if you're used to editing the general kind I can see where you might get frustrated. HTH, Raymond
  9. Cool. It works in OSX 10.4.11, too.
  10. I am going to wish again for the ENTER key to close the VS Editor. It used to in VW 8 but has not since then. Having to use the mouse to do such trivial things is annoyingly slow. Thanks, Raymond
  11. Or if you have an instance selected in the drawing use: GetObject(GetSymName(FSActLayer));
  12. Familiar - yes; expert - no; but I thank the gods we don't use EBCDIC.
  13. Charles, if you use Tabs to indent your lines, replace all Tabs with 3 or 4 NBS characters (Non-Breaking Space - ASCII 0xCA or 202) before pasting the code in the window. NBS is Option-Space on the Mac. Not sure on Windows. Assuming I indent like you, your code will look something like this (w/ 4 NBS per Tab): Procedure classWork; Var ????pickit :Handle; ????x,y :Real; ????Procedure ShowAllClass; ????Var ????????i: integer; ????Begin ????????FOR i:=1 to ClassNum DO ????????????ShowClass(ClassList(i)); ????End; Begin ????GetPt(x,y); ????pickit:=PickObject(x,y); ????IF pickit=NIL THEN ShowAllClass ????ELSE HideClass(GetClass(pickit)); End; Run(classWork); {***************} Raymond
  14. Have you tried "TrueType To Polyline" under the Text menu? It's an extra step and increases the file size a lot if you are doing Tons O' Text, but for banners and headlines, it's perfect. If you will need to edit the text after the conversion, duplicate the original text and convert the copy. You can't go back to text from the outline. Raymond
  15. Modify > Lock and Modify > Unlock Been around for a few decades. If not that then what?
  16. 1) There is an object preference that can be set, SetPrefInt(55, #); where # is a power of 2 and #/2 is the number of segments a full circle will be divided into. SetPrefInt came into use in VW8, but I don't know when 55 was made available. 2) Yes. Some analytical geometry is required. 3) Yes. Are you lookng for a manual method or a VS solution? If the latter, more analytical geometry is required, but I have used VS to solve the one-circle-tangent-to-3-other-circles problem. As you mention, up to 8 solutions are possible. With different colors assigned to the various solutions, it's quite pleasing to the eye. I haven't tried it for two arbitrary objects (lines) and a circle, but it should be solvable. Solutions for 3 circle tangents are posted on the internet. I found some after I did all the algebra. You might try looking for other algorithms there. Scripting is a lot easier with a well defined plan, but a lot less fun. Raymond
  17. Is the class you are creating the text in visible? If you have any invisible classes, try turning on all classes and see if the missing text returns. Raymond
  18. Larry, ???You did what I always do - you changed the application name to reflect the version. And then I always forget to change it back until AFTER I run an updater at least once. ???Change the application name back to "VectorWorks" and run the updater again. Then to check the version, launch VW and look at the About VW splash screen. It should have 80532 as the build number. Ignore the man behind the curtain and the Get Info window in the Finder. It lies. ???Give it one more try. Raymond
  19. It sounds as if you are on the verge of a sad realization, or about to enter a maze of twisty passageways, all alike.
  20. Nah, Gerard is completing his sentences.
  21. If a piece in B is needed in A, why not move the piece to A and it will always be there when A is used (with or without B). As long as B loads after A (when you $Include B) all should be well, which assumes A is always there when B is used. OR If you you use both A & B independently, sometimes A, sometimes B and sometimes A & B, then remove the common part of B used in A and make a third $Include file with the common part and place it before A and/or B as: {$Include 'CommonPart' } {$Include 'A' } or: {$Include 'CommonPart' } {$Include 'B' } or: {$Include 'CommonPart' } {$Include 'A' } {$Include 'B' } Yes, you can have $Include files nested in other $Include files (I do it at least 3 files deep in my Reshaper program) but for the most part you will get name conflicts if you $Include the same file twice. Remember, all $Include references are expanded before compiling begins. The result is one giant temporary text file with everything expanded. Any naming conflicts will kick an error. My advice is do not use $Includes twice in your program, even though it is technically possible if great care is taken to avoid naming conflicts. Structure your program in the simplest fashion to avoid future headaches. Raymond
  22. IsNewCustomObject() - I've used it when I wanted to initialize internal variables that weren't user input. Your need would depend if you wanted to set up something on the first pass only, or perhaps query the drawing before you start.
  23. Petri, ???PIO scripts for objects execute at least twice when they are placed, one to determine the ghost outline and one to finally draw the object when you click. Could one of the executions be more guilty than the other, or affecting the other? From what you've written I wouldn't think so, but it may be worth a look. ???On the first execution no objects within the PIO exist and there are no reference points: active layer, handle to your PIO, etc. Are you using IsNewCustomObject() to isolate setup issues? Raymond
  24. Hi Pat, ???If people haven't kept copies of their old software around they will need old software disks and a machine with a floppy drive to install them. I can attest that a Mac G4 running Classic will run versions back to MC+2.0 (my oldest copy). Anyone on a Mac with old copies of MiniCad or VectorWorks on a hard drive can copy the application folder to a newer machine running Classic (on a G3, G4 or G5) and use them to access their older files. All you'll need is your Serial Number to get it going on the newer machine. If forgotten, the SN can be found in the preference file in the old system folder, which can also be copied to the preference folder in the Classic system folder. Not sure how the PC side will fare with legacy apps. Raymond
  25. Special (high ordered ASCII) characters are font dependent. Different fonts display different glyphs (character outlines) for the same ASCII codes above 127. Unless you can control the font that is used in the listbox, you are at the mercy of only having available the glyphs within the font that is used. Off the top of my head I don't know what font is used on Windows or even if it can be user defined. I suspect not. I know that doesn't answer your question. Perhaps another will elaborate more. Raymond
×
×
  • Create New...