Jump to content

MullinRJ

Member
  • Posts

    2,007
  • Joined

  • Last visited

Everything posted by MullinRJ

  1. You already have that key. It's the U key for the Selection Tool. Just switch mode to "disable resizing" and click on any handle and pull (with cross-hair cursor). The underlying object will drag from its buried position to its new position. Press U again if resizing is desired. It may not be as sexy as using one of the modifier keys, but it works.
  2. Got room for one more suggestion? There is another really quick way IF there are only two objects. Select both objects, then Shift-Click the top object which deselects it. What's left is the underlying, hard to select, object you desire. Your hands never leave the keyboard and mouse, nor do you have to mouse over to the OIP and back - unless that's where you were headed in the first place...
  3. John, Selecting objects can be tricky, but it is consistent and predictable, once you become familiar with it. Peter mentioned using the Option key while selecting and Nicholas mentioned using the Shift key. For what you are asking you need to use both together, if you haven't already. You can Shift-Select objects, starting from anywhere, and only grab objects that are fully encompassed. This works inside, outside and across circle/polygon/group/symbol/etc boundaries without selecting the larger encompassing object, even if the larger object has a fill. Shift-Selecting adds and subtracts objects to and from the current selection list. Shift-Selecting used to only add to the list, a behavior I miss. (Hint to NNA, I'd like to be able to set a preference, or mode button, to get back to this selection mode sometimes.) To empty the list, press the X key twice, and fast before selecting, which is the same as clicking in the white space of the drawing. You can Option-Shift-Select from within a polygon and not select the polygon, unless you cross one of its sides. The circle is different from other objects and will get selected if you try to Option-Shift-Select from inside it. Not sure why. Most simple objects don't behave this way. Selecting from inside an oval behaves like selecting from inside a polygon, or a rectangle. If you Option-Shift-Select inside the boundary of a symbol or group, the symbol or group will get selected. The circle acts this way. I don't find this convenient, but I have learned to live with it and can predict its behavior. Should NNA "improve" selection behavior from the way it is now, I certainly won't object. HTH, Raymond
  4. Paolo, Open the file with VW. Option-Double-Click on the "Rotate" script and VW will open the script in the VS Script editor. Copy and Paste all of the text to a word processor of your choosing. Sorry if I'm cryptic, it's almost 5AM and I'm up past my bed time. G'Night HTH, Raymond
  5. No 3D? Your job just got easier. What do you want to use to control the leg? Pedal position? It would be the easiest variable to base everything on. If knee and ankle are circles, then thigh, leg and foot can be polys (preferably all saved as symbols). Their positions and angles can be calculated to correspond to formulae based on pedal position. This is not too difficult, just tedious. Tom Urie's code for the Rotating Cam should provide a good example of what's needed. Find it in the VW application folder under "\Extras\Goodies\Rotating Cam.sta" Raymond
  6. Hi Paolo, Yes it can be done, but there is no easy 3D motion modeling platform in VW to work from. Depending on the level of accuracy you want to achieve will determine the amount of work you will need to do. It would be possible to describe the relation of thigh, knee, leg, ankle and foot to each other as a function of pedal rotation, but that would be the most difficult. If you go this route, the vector math in VS is up to the task. If you are not doing a physics demo, then I would consider having 3, 4 or 5 legs drawn in different positions and different classes and toggling the class visibility in sequence to simulate cyclic motion. I'm not sure what kind of rendering problems you may run into, but perhaps if you don't cast shadows it might work. Others will have to help you when you get that far. Have fun, Raymond
  7. Hi LiMei, Put an equal sign in front of the formula to make it calculate. =if((A1=7), A1, 0) Raymond
  8. Peter, You are welcome. I don't know why an unfilled Rect could be chosen as you describe it, nor how zoom affects selection either. Perhaps some other day. Returning to your script, you can still use your GetPickObjectInfo routine to search for text blocks if you don't find a named date object. If you find one, sans name, you can discard it and install a new one, named, of course. It might make your code more bullet proof. Raymond
  9. quote: What would be the reason to leave quartz imaging off?On my machine (G4/500MHz Dual/OS 10.3.9), panning with the mouse scroll wheel responds very slowly when Quartz Imaging is enabled - several second delay, even with only 3 objects in a file. It could be longer in a really large file, but I haven't timed that yet. I set up a toggle command to quickly enable/disable it. Raymond
  10. Peter, I haven't tested this, but perhaps if an object is completely off screen it becomes less selectable. Without trying to dig into that aspect yet, have you considered giving the date in your title block a 'Name'? You could use something like H:=GetObject('TBDate') to return a handle to that text object, then use SetText(H, Date(1,0)) to change the date without deleting it. If you have multiple title blocks in your drawing, you could give the dates sequential names, as 'TBDate-01', and search and update them all from a loop. This method may or may not be relevant, as determined by the rest of your program. If not, we can work through the GetPickObjectInfo options. HTH, Raymond
  11. quote: So I guess its trial and error whether Handle Procedures will work on locked objects or not. Is this right?I would say so. I always test code against the locked condition, and also against a shifted origin. When I forget, strange things happen. You also never know when it may change from version to version, so you need to check again after each upgrade. I use something like the following procedure in my Reshaper PlugIn before modifying any object, and now I don't wory about the locked state. code: procedure hMoveIt(H :Handle; X, Y :Real); { Move object in 2D, even if it is locked. } Var wasLocked :Boolean; Begin wasLocked := GetObjectVariableBoolean(H, 700); { save locked state } SetObjectVariableBoolean(H, 700, False); { force unlocked } hMove(H, X, Y); SetObjectVariableBoolean(H, 700, wasLocked); { reset locked state } End; { hMoveIt }[/code] Raymond PS - Just curious. Were you able to delete your WGR the way you wanted? (See your post from last week.) [ 12-08-2005, 11:41 AM: Message edited by: MullinRJ ]
  12. Peter, When you find an object at a point, move it (rather than delete it) and look again. Repeat until you find no object. Then put them all back. Save all handles and process the one(s) you want. Raymond
  13. I believe it's actually a "cocoa" application. Either way, it's true. There is a preference to use Quartz Imaging. When ON, VW loses the square pen altogether. Very nicely, too. When the preference is OFF, it displays with square pen as it always did. Raymond VW 12 Designer / Mac G4 / OS 10.3.9
  14. VW 12 will open in OS as early as 10.3.0, but not in 10.2.8 or before.
  15. Heath, You are welcome. Yes. If your drawing units are set to 2 decimals then you can put back the Num2StrF(X-Xorig) function, but you'll get the units mark appended to the numbers if it is also selected in the Units setup. You may want this. Num2Str(2, X-Xorig) will give you 2 decimals without unit marks appended. Raymond
  16. Heath, This is not the most elegant solution, but it will work in a PIO. Move your origin, create a locus and put it at (0, 0) which is your new origin. In the OIP, go to the DATA pane and give it the name ORIGIN. Any name will do. Lock it. Then in your script, use: GetLocPt(GetObject('Origin'), Xorig, Yorig); These values are then subtracted from X & Y in your Concat statement to adjust your displayed text. (Note, Num2Str is not needed inside Concat.) If you move your origin, you will have to move the named locus to the new origin before updating your PIO's. You can also write a small script to place and lock the reference locus. The named locus does not have to be on the layer you where are working, nor does it have to be visible. You can place it on a layer of its own and hide it if you like. Then it is out of the way and not likely to get moved accidently. (You can even hide it in a Symbol Definition, if you are careful not to purge unused objects.) code: PROCEDURE XYText; VAR objectHand, recordHand, wallHand : HANDLE; objectName : STRING; X, Y, Xorig, Yorig : REAL; BEGIN GetLocPt(GetObject('Origin'), Xorig, Yorig); IF GetCustomObjectInfo(objectName, objectHand, recordHand, wallHand) THEN BEGIN { Get Plug-In Object info } SetObjectVariableBoolean (objectHand, 800, TRUE); { Let the text style be changed by the user from outside } GetSymLoc(objectHand, X, Y); { Get Object Position } Locus(0, 0); { Something to see, won't print } TextOrigin (0, 0); { Set text position, note the object internal coordinate system) } FillPat(0); { Set Fill to None } BeginText; Concat('E ', X-Xorig, ' N ', Y-Yorig) { Note there is no ; at the end of this line } EndText; END; END; RUN (XYText); [/code] HTH, Raymond
  17. In a script that is used in a palette, you can use GetOrigin(), but the script you are copying appears to be headed for a PIO. GetCustomObjectInfo() is used in PIO's, but not in stand alone scripts. GetOrigin() doesn't work in PIO's. It looks like you are trying to make a tool that places a position marker where you click. I will be out for several hours, but if anyone else wants to have a go at this, please have at it. Raymond
  18. Use the following and subtract these values from your point. GetOrigin(Xorig, Yorig); Raymond
  19. Scale adjusts the display on screen and at print time. Other factors also contribute to what you see, like Zoom, but a layer's scale does not affect an object's dimensions. Draw your object with the right dimensions and place it anywhere you want. It will scale properly. Raymond
  20. Must be my machine. Thanks, Raymond
  21. Hi Peter, I tried DelObject(ActLayer), where the active layer is a WG referenced layer. As you said, it doesn't work. On a whim I tried the same thing, but I moved to another layer before deleting the WGR layer. It was deleted. You cannot delete the layer if it is Active. Move to another layer then delete to your heart's content. See following script for an example. HTH, Raymond code: Procedure DelWGR; { If the Active Layer is a WGR, delete it. } VAR LHnd, TmpLHnd :Handle; WGRPath :String; BEGIN WGRPath := ''; LHnd := ActLayer; if IsLayerReferenced(LHnd, WGRPath) then begin TmpLHnd := PrevLayer(LHnd); if (TmpLHnd = nil) then TmpLHnd := NextLayer(LHnd); if (TmpLHnd <> nil) then begin Layer(GetLName(TmpLHnd)); { move to another layer } DelObject(LHnd); message('WGR Layer - ', WGRPath, ' - has been deleted.'); Sysbeep; end else message('Cannot delete WGR if it is the only layer in the file.'); end; END; Run(DelWGR);[/code]
  22. Do you have the Quartz Imaging preference turned on?
  23. I am seeing a delay from 1-2 seconds when I use the scroll wheel to Pan the drawing. About 1 second when I roll the wheel 1 click, and at least 2 seconds if I roll it several clicks quickly. When I turn off Quartz Imaging (which I really like), the Pan response goes back to normal. Toggling the "Hardware Accelerated 2D Navigation" preference has no apparent effect. The drawing is very simple, four 2D polylines with fill and stroke. I know my computer is on the slow end of the technology curve, but I am curious if other users, especially those with faster machines, see this delay? Thanks, Raymond G4 Dual 500 / 1GB RAM / OSX 10.3.9 VW 12 Designer
  24. Is it possible to specify the point size of scripts in a Script Palette? Not in the VectorScript Editor window, but the script palette itself. If not, I'd like to make a wish. The tool set names in the Tool Sets palette display nicely, but my scripts are 1 or 2 points smaller and are not very clear. Thank you, Raymond VW 12 Designer G4 500 Dual (it used to be fast) OSX 10.3.9
  25. Hi Andrew, What happens if you use: H1 := FInGroup(H); where H is the handle to your supposed ARC? Does H1 point to an ARC? Raymond
×
×
  • Create New...