Jump to content

Sam Jones

  • Posts

  • Joined

  • Last visited


223 Spectacular


Personal Information

  • Occupation
    Technical Director
  • Homepage
  • Location
    Los Angeles

Contact Info

  • Skype

Recent Profile Visitors

4,946 profile views
  1. Let us know if Lightning Tapes got back to you. Their website says they have suspended registrations.
  2. I have created and am good with event enabled point objects and path objects. Is anyone willing to share a tool template, or instruction on the difference between an event enabled PIO tool and an event enabled PIO object. It seems likely that tools are not event enabled, since they do not persist, but a simple example would be good. TIA, Sam
  3. What version of Vectorworks Spotlight are you using?
  4. I didn't understand any of that. Is there a kindergarten version explanation?
  5. You might try using "Inst Type" instead of "Instrument Type". "Inst Type" is the worksheet or universal name for that parameter. Just a thought; I haven't tried it.
  6. Happens to me too, Pat, but I've just been playing around with Truss, Hoists, and Hanging Positions. I will be curious if any source of the problem you find might not be dependent on the tagged object. I would send you an example, but I deleted them as they occurred and moved on; I thought I might be doing something wrong.
  7. Cool. I'm looking forward to checking them out.
  8. This also happens to me. I wish I could find out what is causing it. I have found that nudging the selected object up and down will restore the OIP.
  9. Matt, The new hoist is confusing in the extreme. None of the parameters can be viewed with the plug-In manager, but, as you have seen, they can be listed when you create a worksheet of the Hoist PIO. The universal name of the new Hoist PIO is BrxHoist. I have written a script that collects all of the parameters of a selected object and writes them to a worksheet. Below is an image of all the weight and weight related fields that I could find. I will be referencing the column A names. You will notice that "WeightWithChain" comes in formatted as a dimension. It does that both in the vectorscript and the worksheet database. As a result I have no idea what that number actually represents. I have written another script that collects the weights of all selected objects (of any kind) and lists them in a worksheet and totals them. For the BrxHoist, I use the "WeightWithChain_formated" field. I parse the units being used "lb" or "kg" and convert to kg and lb as needed. I haven't tested, but I suspect that metric drawings are formatted in "kg" and imperial drawings are formatted in "lb". But this needs to be tested. My script doesn't care since it will take whatever comes in (kg or lb) and convert to the other. Hopefully, VW will come back with an explanation of all weight relevant BrxHoist parameters, but until then good luck with your worksheets. If you are interested in the "Collect and Total Weight" command it is part of the latest AutoPlot Tools for Spotlight upload, 6/17/21. Which is fully functional for 2 months without registering.
  10. Thank you Josh! I've used waldo before, and I'm embarrassed that I did not think of it, but it is a different application from my previous ones. The use of "PrevSObj()" is fabulous, very scalable and applicable for the vast majority of my needs.
  11. I want to get a handle to a selected object that is inside a group. In particular, I want to get this handle while I am inside the group editing it. Actually it is inside a group that is inside a group. I know that the group is the parent to the selected object, but there does not seem to be a way to get a handle to a selected object while editing that object inside the group. FSActLayer returns the handle to the highest level group that contains the object being edited. Actually, I'm not so much editing it as collecting data about it which is why I need its handle. Anybody have a neat little trick to get a handle to selected object inside a group that is inside a group. I am, of course, in group edit mode.
  12. I looked at the above. After a bunch of trial and error, I was able to build an example below the "====" line, but I really don't understand what I'm doing. Here is what I am tripping over. These procedures/function have obvious functionality and are understood. PROCEDURE ProgressDlgClose; PROCEDURE ProgressDlgEnd; FUNCTION ProgressDlgHasCancel:BOOLEAN ; PROCEDURE ProgressDlgOpen( title :STRING; canCancel :BOOLEAN) ; PROCEDURE ProgressDlgOpenDelay( title:STRING;canCancel:BOOLEAN; delaySec:INTEGER) ; PROCEDURE ProgressDlgSetBotMsg( message:STRING ) ; PROCEDURE ProgressDlgSetTopMsg( message:STRING ) ; only sort of obvious. I expected it to be in the position of the SetMeter String Then there are these: PROCEDURE ProgressDlgSetMeter( message:STRING ) ; "Set progress meter message of a progress dialog." With minimal testing this became clear. It would have been nice if it had beem named "SetProgressDlgLabel" or "ProgressDlgSetLabel". "...SetMeter" is opaque until after one figures it out. PROCEDURE ProgressDlgStart( Percentage :REAL; LoopCount :LONGINT) ; "Start a progress context. This defines progress percentage and loop count for ProgressDlgYield calls. LoopCount is fit in the Percentage of the progress." "Percentage". Percentage of what going in what direction? "LoopCount". "LoopCount" ???? What Loop? What Count? PROCEDURE ProgressDlgYield( count:LONGINT ) ; " Increases the progress. This must be called between ProgressDlgStart and ProgressDlgEnd and defines the LoopCount index." "count"??? Counting what? All the examples have this set to "1" What does this do? Where in the loop or in the survey by criteria is this needed. What happens if the value is not "1", maybe "2" or maybe "0"? It is defined as a LONGINT, so it would seeem a bunch of values can be expected. I really don't understand this call, but I put it in each iteration of the repeating task. ============================================================== PROCEDURE ProgressDialogExample; VAR index :INTEGER; x1, y1, x2, y2 :REAL; progress :LONGINT; BEGIN x1 := 10; y1 := 10; x2 := x1 + x1; y2 := y1 - y1; ProgressDlgOpen('Draw Squares', TRUE); ProgressDlgSetMeter ('Drawing Squares First Half'); ProgressDlgSetTopMsg ('Top'); ProgressDlgSetBotMsg ('Bottom'); ProgressDlgYield (0); { start at 0% } ProgressDlgStart(100, 30); FOR index := 1 TO 30 DO BEGIN message('index = ', index); IF index = 15 THEN ProgressDlgSetMeter ('Drawing Squares Second Half'); RECT(x1, y1, x2, y2); x1 := x1 + 5; y1 := y1 + 5; x2 := x1 + x1; y2 := y2 - 5; ProgressDlgYield (1); { Increment the progress bar } IF ProgressDlgHasCancel THEN index := 60; wait(1); END; {FOR index := 1 TO 60} ProgressDlgStart(0, 0); ProgressDlgYield (0); ProgressDlgEnd; ProgressDlgClose; Redrawall; clrmessage; END; RUN(ProgressDialogExample);
  13. Does anybody have an example of, or know where I can find an example of, the implementation of a progress dialog?
  • Create New...