Jump to content

MullinRJ

Member
  • Posts

    1,990
  • Joined

  • Last visited

Everything posted by MullinRJ

  1. There is a slight difference in how the two tools work that in my mind would make them a little difficult to merge. The 2D Move tool moves objects in the screen plane, both 2D and 3D objects alike. X offset means move to the right or left, while Y offset means move up or down, all relative to the current view. The 3D Move tool moves 3D objects along the absolute X Y & Z axes, regardless of the view. This is where I've stopped thinking how to proceed. Any suggestions how it should work as one tool?
  2. Pat, You're too fast for me...
  3. Hi Petri, There are two undocumented commands, but they work on individual objects. HScale2D(h: HANDLE; centerX, centerY, scaleX, scaleY: REAL; scaleText: BOOLEAN); HScale3D(h: HANDLE; centerX, centerY, centerZ, scaleX, scaleY, scaleZ: REAL); HScale3D does not work for Groups of 3D objects. For 3D Groups I scale from the top with HScale2D using Scale_X and Scale_Y, then from the front using Scale_X=1 and Scale_Z. A Redraw will be needed to see the results. HTH, Raymond
  4. Try: =ROUND(A1+0.499) This will round 3.001 up to 4, but 3.0001 will round down to 3. If you want more precision add more 9's after the 4. It's okay to have more 9's than you need, but having less will yield incorrect results. HTH, Raymond
  5. Renderworks - YES Vectorworks - NO
  6. Sorry guys, No need to be discrete, my website is second to last on the list of things to be updated. (The manual? is dead last.) I've spent a lot of time recently updating the software to remove some long standing and elusive bugs. The results were good for the software, bad for the website. If you'd like to try the Reshaper Demo for a month, free of charge, please email me at info@SiriusSolutions.net and include the last six digits of your VW serial number, and please specify what version of VW you want this for (VW 12, 2008 or 2009). I'll send you a DEMO KEY and a copy of Reshaper. Though AndiACD is right, Reshaper does help you position and locate objects in ways beyond the OIP's scope, especially 3D objects, it is not yet optimized for working with objects inside walls, partly because I've had no requests to do so. Reshaper's evolution is shaped by feedback from the user base. The Azimuth Mode that Bruce Robertson mentioned above was added solely at his request. I am always available and happy to answer questions. Please feel free to write at any time. Raymond
  7. Hi Zoli, ???ValidNumStr() has been around since the dawn of time, or at least as long as MiniCad has been around. ???See: http://scs-inc.us/Other/VSFR/PHP/main.php?name=ValidNumStr for a description. ???A copy of the VS Function Reference should be in your application folder as well. Copy the following path to your browser: file:///Applications/VectorWorks%202008/VWHelp/VectorScript%20Reference/VSFunctionReference.html and then search for "ValidNumStr". ???I keep an alias of the VSFuncRef on my Dock for fast reference. Raymond
  8. Have you tried Str2Num() or ValidNumStr()? After that you can use the Num2StrF() function to display it in the current drawing units format. Raymond
  9. Honestly, I wasn't being negative, but rather adding to the tally that if the default settings were remembered by all tools and preferences then one could also save on the time writing to the techboard to complain ... I mean suggest better alternatives. There's another minute of my life I'll never get back, but hey, I like the techboard, too. Thanks, AndiACD. I'm very glad you like Reshaper. Raymond
  10. Hi Charles, ???Long time, no chat. As someone recently inquired of me, I hope you are in fine fettle. Yeah, I've gotten frugal with code in my old age. For simple expressions I often put them inline with the calling function. As long as the function doesn't return a value in that location you can do it this way. This code snippet: Boo := MenuChoice = 1;???{ Boo is TRUE if MenuChoice equals 1, FALSE otherwise } SetItemEnable(ChkBx2, Boo); is the same as: SetItemEnable(ChkBx2, MenuChoice=1); You'll also see some people write: if (MenuChoice=1) then Boo := True else Boo := False; SetItemEnable(ChkBx2, Boo); which also works and is very readable, but I tend to go for minimalism so I can see more code on one page. My scripts tend to be getting bigger so I'm trying to make them smaller every chance I get. The VS compiler is extremely robust and will handle a very complex expression without flinching. Here's another favorite of mine that I've been using the last few years that replaces a simple IF/Then/Else statement with an inline expression. function iif (A :Boolean; B, C :Integer) : Integer;???{ I got the function name from FoxBASE many years ago } { if A is true, return the value in B else return the value in C. } Begin ???if A then iif := B else iif := C; End;???{ iif } With it you can say things like: HorOffset := Xoriginal + iif(LeftView, X1, X2); if LeftView is true, then HorOffset equals Xoriginal + X1 else HorOffset equals Xoriginal + X2 I also have iifr, iifs & iifv functions for Real, String and Vector expressions respectively. Enjoy, Raymond
  11. Tried to post this earlier, but the TechBoard was non-responsive. Max, ???You can read your menu with: GetSelChoice(MenuID, 0, Mode, S); and set (or clear) your check box with: SetItemEnable(CkBoxID, SomeBooleanValue); ???Are you using Modern Dialogs or Classic? The following was written assuming Modern Dialogs, but these two commands work in both. Example: { In your dialog handler routine } CONST ???MenuID = 20; ???ChkBx1 = 31; ???ChkBx2 = 32; VAR ???MenuChoice :Integer; ???MenuString :String; case item of ???SetupDialogC: begin ??????SetItemEnable(ChkBx1, True); { Starting value always checked } ??????GetSelChoice(MenuID, 0, MenuChoice, MenuString); ??????SetItemEnable(ChkBx2, (MenuChoice=1)); { Checked if Menu item is second in list (Modern Dialog), unchecked otherwise } ???end; ???{ Setup } ???{ item specific code goes below } ???MenuID: begin end; ???ChkBx1: begin end; ???ChkBx2: begin end; end; { case } Add similar code to your menu dialog item (20 in this example) to modify check boxes accordingly as things change. Raymond Mullin Vectorworks 2009 D/RW (User since MC+2.0) Intel macMINI / OS 10.4.11
  12. With the 2D Symbol Insertion tool selected, tap the U key once. I'll bet you are in the Symbol Pick Up Mode. The U key cycles through all the modes available to the selected tool. Raymond
  13. portamigra, ???You need to end your extrude before you start moving it about. As follows: BeginXtrd(0,a1);???????????{ RUNGS } ???Oval(0,0,1,1); EndXtrd; Rotate3D(90,0,0);????????{ Rotate about x-axis } Move3D(d1,a1/2,0.5);??{ Move for spacing } Duplicate(d1,0);???????????{ 2nd rung } The same applies to your third extrude: BeginXtrd(0,b1);??????????{ RAIL 2 } ???Rect(0,0,c1,1); EndXtrd; Move3D(0,a1-1,0); HTH, Raymond
  14. I'm not sure how you want your script to run, interactively or not, but it's not hard to cobble one together. The VS procedure Layer() will create a new design layer. Layer('New Layer Name'); The VS function CreateLayer() will create a new layer and returns a handle to the new layer, which can be ignored if you only want to create them. LayerHandle := Layer('Another Layer Name', 1);?????????{ 1 = Design Layer / 2 = Sheet Layer } Each new layer you create will be on top of all other layers visually, so you may want to create new layers in the reverse order you want them displayed in the layer pop-up menu. Raymond
  15. AndiCAD, yes, it's a menu plugin for VW. Bruce, it does work with VW 2009, and I'm working on a preliminary release that should be ready after this weekend. I'm also working on some updates that will take a bit longer. For those that update or purchase Reshaper for VW 2009 the next upgrade will be free. Anyone who's interested can contact me at info@siriussolutions.net Raymond
  16. AndiACD, Have you tried Reshaper? It will give you access to this and MUCH more. If you'd like to try a full demo FREE for 30 days, email me at info@siriussolutions.net Raymond
  17. Has anyone else noticed that SP3 is on the NNA site? Where's the fanfare? It's listed as having been posted on the 27th (2 days ago). Surely I can't be the only one who's found it. Raymond (T -1) macMINI 1.83 GHz / 2GB RAM / OSX 10.4.11 VW 2008 D/RW SP3 (88670)
  18. On the newer Mac OS's, I have not gotten the good olde fashioned PostScript fonts to be seen by the software. I have had to translate all my favorites to TrueType format. It's a PITA, but it works. Raymond-2
  19. My pleasure, Peter. Glad I could help. Raymond-3
  20. Hi Peter, ???You are calling Draw3DGlass twice when OpaqueGlass is TRUE, and once when it is FALSE. This is because your ELSE clause did not have a BEGIN and END encompassing the following 2 statements and only the next statement was included in your ELSE clause. The second Draw3DGlass was getting executed every time, even when OpaqueGlass was TRUE. Try this for your main body: BEGIN {Main} Width := PWIDTH_OF_WINDOW; Height := PHEIGHT_OF_WINDOW; HeadHeight := PHEAD_HEIGHT; OpaqueGlass := POPAQUE_GLASS; {Set attributes} PushAttrs; FillFore(0,0,0); FillBack(65535, 65535, 65535); PenFore(0,0,0); PenBack(65535, 65535, 65535); PenPat(2); PenSize(1); IF OpaqueGlass THEN { is the same as: IF (OpaqueGlass=True) THEN } FillPat(1) ELSE FillPat(0); Draw3DGlass; { Only call this once } PopAttrs; END; RUN(Glass); HTH, Raymond
  21. No, not a bad idea and no offense taken. Silly me, I was being overly paranoid. Web crawlers are not avoidable so no harm has been done. I already get daily updates on ways to increase my manhood and places to buy name brand software for pennies on the dollar, and this month's special seems to be a run on luxury watches. At the moment I'm only getting a few a day, but last year it was dozens a day. While you're here, wanna try some free software? Raymond
  22. Not exactly. You can have the record with the field, but something has to stuff the data for you. The fields do not hold formulae, they are just containers to hold data. Actually, it's all STRING data, but the strings are formatted according to the defined type of the field. You will need to run a procedure in some way to identify the object(s) with the attached record and fill your field(s) accordingly - VectorScript, Menu Command, PIO. Now, if you design a custom tool to change the Line, it can stuff the data for you. HTH, Raymond
  23. FWIW, you can achieve positive numbers with the absolute value function ABS(), too. Cell A1 =ABS(A2-B2) (=700) Cell A4 =ABS(A5-B5) (=600) Raymond
  24. Well, so much for keeping the address away from the spam bots. I guess it doesn't really matter, but I'll know in a little while.
×
×
  • Create New...