Jump to content

Sam Jones

Member
  • Posts

    1,191
  • Joined

  • Last visited

Everything posted by Sam Jones

  1. You can put each version of the light plot on a different layer and use "Limits" in Lightwright to only show and count the layer(s) that you want. This will mean that all your counts will have to be done in LW because counts in VW will reference all the layers, but it is a work flow that works pretty well.
  2. Sorry to be late to the party. I was on vacation in Canada. What I developed is part of AutoPlot Tools for Spotlight, the VW 2017 version only, which you can download at www.autoplotvw.com. Go to the downloads section. There is a fully functional trial period, so you don't have to purchase anything ahead of trying them out. There is no documentation, so feel free to write or call if you have questions. If you want, feel free to ask questions before you download anything. I agree about working in 2D. The tools allow you to work in 2D only if you want.
  3. This is not possible with a symbol. The hoists are plug-in objects, PIOs. A symbol does not know where it is. When it is moved, it does not know that it has moved. PIOs are smart and they run a little program every time something happens to them. It is possible to build a PIO using vectorscript, but it would be a unique kind of object, and you would not be able to build other symbols that automatically incorporate the little program. You could build other objects that use the same vectorscript code to display their own location. You need to be deep into vectorscript or marionette to build PIOs. Not rocket science, but also not a set of 3 or 4 rules you can throw at any symbol you create. HTH, Sam
  4. I have created a tool to help, and emphasize the word "help", with truck pack planning. I will describe what I've done, but first some questions. "1. Case Creation - Quick and efficient way to create a inventory of various size of cases in different qtys. Ideally i could make a spreadsheet with all my cases with their Dims/Qty and then Generate those cases within VW" Could each case or other object be represented with a 3D Box? You provide length, width, and height, and VW creates a box with those dimensions. "2. Case Labeling - I need to be able to Label every case with whats in. Once again in my head i think it would be great if i could import a spreadsheet and in the process of creating the various cases at their correct size it also updates the record attached to that specific symbol so that it generates a label that shows on all four sides and the top of the case." Could the printing of labels be handled by another program like Excel or Filemaker, and then have VW import the data to label the boxes it creates? "3. Easy way to Handle Stacking. This one is probably a pipe dream....but some way to extremely quickly say hey don't let these two symbols occupy the same 3d space but put this one on top of the other taking into account the other cases size of course." This, for me, is indeed a pipe dream. While VW can determine if objects occupy the same space, it is very difficult for it to decide which box should go next and where. Just trying to decide which box is next let alone deciding if it should go on top of, or next to, a box, and which box should be the one it is next to or on top of. Maybe there are some mathematicians out there that could do it, but its going to be tough. Then you have to figure in weight. The best tetris solution might not load the truck properly when considering weight distribution. Even then you haven't yet considered the stage set up and stage strike order issues. Here's the challenge to get something done by a computer. Make a list of steps to be followed to complete the task, and a computer can probably implement the steps. When I have been presented with a problem by a colleague, and told them to make a list of steps. I get back a list of 10 steps. Unfortunately, each one of those steps has 20 steps hidden inside that are necessary to execute the one listed step. It is unwise to predict the future; computers can do amazing things, but I think it is going to be quite a while before the CAD program packs the truck. Here is what I have done/made. I have created a set of VS objects and commands. 1. A truck box object This object is hybrid, both 2D and 3D, and has the following fields in the Object Info Palette (OIP) Length Width Height Weight Weight units, pounds or kilograms Group Case Name Row Truck Side Stack Level Truck Note 1 Note 2 Note 3 Text Rotation Text Size Tip on Side (check box) Tip on End (check box) The box will be displayed different if the either or both of the last 2 boxes are checked Most of the fields can be included in the text displayed on the box object. 2. A truck trailer outline object This object is hybrid, both 2D and 3D, and has the following fields in the OIP Truck ID Length Width Height Has dance floor (platform at the front end of the trailer) Platform Height Platform Length Has Over Cab Space Length over cab Height Above Floor Note Both the 2D and 3D displays have rulers along the side and front of the trailer image There are the following commands: 1. Create Boxes from File 2. Create Boxes from Worksheet The commands above allow you to create either a tab delimited file (from Excel or Filemaker) or a VW worksheet which lists the boxes you desire to pack; each row describes a box. As long as the length, width, and height columns have value, the box can be created by the command. All the boxes are placed centered on the same point. You drag them away to pack the truck trailer outline, or use the commands below to help organize the boxes/ 3. Select Boxes by Field Value 4. Select Boxes by Len 5. Select Boxes By Width 6. Select Boxes By Height 7. Sort by Group, Case, or Name The above commands sort all the boxes and redisplay them based on the criteria chosen. 8. Show weight of selected. This command will total the weight field values of the selected boxes and tell you what it is. These are all part of AutoPlot Tools which has a fully functional trial period. I would like to be of more help, especially if you have questions about the above, but, unfortunately, I am heading to Montana and Glacier Nat. Park in 2 days, and I will have spotty internet service. Feel free to ask any questions, but don't expect timely answers until after the 18th. Best, Sam Samuel L. Jones Developer of AutoPlot Tools for SpotLight E-mail: sjones@autoplotvw.com Skype: AutoPlotVW
  5. That code is buried in a long complex command managing 4 different cable inventories. I'll try to cobble together a dialog with a list box, to post, but I'm running off to Montana in 2 days, and I won't have consistent internet access, so I'm not sure when it will go up. Thanks, Sam PS: a List Browser is probably what I need to do, but those are way more complex to setup and maintain. I would do it anyway if I could find some documentation, but all I can find are some examples.
  6. Question. Why would you want to mirror the same object more than once? As for automatically using the centerline, such a tool could be made. It would be fairly easy if the tool could assume that all that is required is reversing the sign on the X coordinate and duplicating the Y coordinate. For centerlines that are not on X=0, the math is trivial. Current procedure: a) Select object(s) to be duplicated b) Select mirror tool c) Draw line Desired procedure: a) Select object(s) to be duplicated b) Select command to mirror across centerline. Although the savings are recognizable, they are small. Using snap points, should make drawing a short line over the CL trivial, it does for me. Not an unreasonable request, but it is difficult to get to the top of the list of things to do. BTW, there is an AutoPlot command that can cleanup fixture coordinates. Sam Samuel L. Jones Developer of AutoPlot Tools for SpotLight E-mail: sjones@autoplotvw.com Skype: AutoPlotVW =============================================================
  7. I have a list box with 15 items. If I select an item, the dialog handling routine will tell me that the list box had a new item selected. If I have 3 items selected and I select a different item, the dialog handling routine will tell me that the list box had a new item selected. BUT, if I select one of the 3 already selected items, the dialog handling routine will not indicate that anything happened; even though the resulting display shows only 1 of the 3 currently selected. I need to be able to determine when only one item, of multiple already selected items, is selected. Can I do that? How?
  8. What did you name the symbols you created? I think the rules below need to be followed: The name must start with word "Hoist", followed by the weight capacity, followed by the manufacturer or function, followed by "Up" or "Down". The weight capacity must end in the word "Ton". The manufacturer may be anything, but must match the value in the attached record. The function may be anything, but must match the value in the attached record. Feel free to send me an example of your hoist symbols, and I'll see if I can get them to work. Sam sjones@autoplotvw.com
  9. Why wouldn't this be just 4 rectangles 2m x 1m?
  10. I used to think it was a bug that I had to work around, but it turns out that it is left over from the standard definition of Pascal. Once the data handling routine is written, it is pretty easy to incorporate it in all the file handling that needs it, but it is not a great way to pass stuff back and forth; good for collecting data. As I understand it Python has a lot of very cool file handling and processing techniques, but I'm an old dog and used to Pascal, in fact enjoy it. Josh has been very politely beating me over the head to make Python call for a while now, I just don't have the energy. The problem with comma delimited files is that a lot of data has commas in it; european numbers being one of the first to come to mind.
  11. I ended up having to use StdReadLn(); and then parsing the returned string. It would be nice if someone can come up with a cleaner way. Below has been cut out of a larger command. Hopefully we'll see a nicer implementation. Sam PROCEDURE GetFieldValues BEGIN Open(ImportFile); NumCols := 0; Allocate StrHolder[1..1000]; Allocate StrEraser[1..1000]; StrEraser := ''; {==============================================================} PROCEDURE ParseStr(delimitedStr : DYNARRAY[] of CHAR; VAR resultStr : String); {Returns the first tab delimited item and strips it off the delimited string} VAR tabPosition : Integer; itemName : String; dyStrHolder : DYNARRAY[] of CHAR; dyStrHolderResult : DYNARRAY[] of CHAR; dyStrResult : DYNARRAY[] of CHAR; dysStrSize : INTEGER; BEGIN Allocate dyStrHolder[1..1000]; Allocate dyStrHolderResult[1..1000]; dyStrHolderResult := StrEraser; dyStrHolder := delimitedStr; itemName := ''; tabPosition := POS(chr(9),dyStrHolder); IF (tabPosition > 0) THEN dyStrHolderResult := COPY(dyStrHolder,tabPosition+1,Len(delimitedStr)) ELSE dyStrHolderResult := delimitedStr; IF tabPosition > 0 THEN BEGIN IF tabPosition = 1 THEN itemName := '' ELSE itemName := COPY(dyStrHolder,1,tabPosition - 1); Delete(dyStrHolder, 1, tabPosition); StrHolder := dyStrHolderResult; END ELSE BEGIN itemName := delimitedStr; delimitedStr := ''; StrHolder := ''; END; resultStr := itemName; END; {PROCEDURE ParseStr} {==============================================================} BEGIN StdReadLn(StrHolder); {Read first line for field names} WHILE (LEN(StrHolder) > 0) DO BEGIN NumCols := NumCols + 1; {Count the Number of fields} ParseStr(StrHolder,FieldVal); ColNameArray[NumCols] := FieldVal; END; {WHILE (LEN(StrHolder) > 0)} WHILE (NOT EOF(ImportFile)) DO BEGIN StdReadLn(StrHolder); FOR Index := 1 TO NumCols DO ParseStr(StrHolder,FieldValArray[Index]); {other stuff was done here} END; {WHILE (NOT EOF) } Close(ImportFile); END;
  12. "As far as I know, the only set of 3 points that do not form an arc are 3 collinear points" ! I thought that would be the case, but I drew some weird configurations that I thought would not work. I just tested your manual solution. Wow. Who knew? Well I guess everyone who did better in high school math knew. I wish my trig and geometry instructors had been a little more creative in their assignments. When I started drafting 20, no 30, no 40 years ago, I had to start re-teaching myself trig and then even geometry. I was fairly successful, but some of the holes are pretty gaping. Thanks again. S
  13. 2D. This is for plan view light plots. A 3D solution would be interesting, but I do not foresee a need. Interesting in that they would form a working plane and the solution would be on that plane. That would confuse my current need, but interesting.
  14. Raymond, your the man! Yep, answer in script form. I wasn't sure what would be possible, since not all 3 point collections form an arc. An approximation will work just fine.
  15. For you trig and/or vector experts, how can I compute the radius of an arc formed from 3 points? Anyone?Many TIA,Sam Jones
  16. Josh answered you question, but there are 3rd party plug-ins that will allow you to dimension all selected lights from a user selected point and put the dimension for each light in a user field. This keeps you from having to move the user origin for every position that you want to dimension. AutoPlotTools for Spotlight www.autoplotvw.com
  17. How do I use GetFileN? It is defined in the custom reference as: FUNCTION GetFileN(title:STRING, defaultFolder:STRING, mask:STRING, VAR filename:STRING) 1. What is "title" 2. What is the “mask” I want to specify the folder that is displayed when GetFile() is used. I had hoped to do it with GetFileN() TIA (yet again). Sam
  18. Is there a way to create a finder folder in which to put the text files that one is writing. I need to save a file in the user plug-ins folder. I would normally do this by: PlugInPath := GetFolderPath(-2); FeederFile := CONCAT(PlugInPath,'FEEDER INVENTORY.xml’); {… stuff …} result := WriteXMLFile(hXML, -1, FeederFile); But there will several files, so I tried: PlugInPath := GetFolderPath(-2); FeederFile := CONCAT(PlugInPath,’Inventory Folder:FEEDER INVENTORY.xml’); {<——Change is here} {… stuff …} result := WriteXMLFile(hXML, -1, FeederFile); That did not seem to work. Any suggestions? TIA Sam
  19. Conceptually easy, but a pain to implement, and clutters things up a bit; although I imagine that I will end up hiding the records. Also, when editing extra steps need to be determine which record to search based on limits to the criteria, e.g. I cannot look in the "Feeder Cable" record based on a value in the "Connector" field; I have to determine if the value of the Connector exceeds the value for the first record and look in the second record. Not rocket science... While not possible, it would be nice to just have one humungous string that could be accessed with the substring function.
  20. I have a record with 8 fields. 3 of those fields I want to store strings of 23625 characters 23625 characters 31500 characters I don't seem to be able to do that. all fields after the 2nd of those 3 are emptied, and I think (not sure) that the 2nd field is short. Are records limited to a total capacity 32767 characters?
  21. Is there a limit to the number of characters a Dynarray of char[] can hold. I don't seem to be able to hold more than the Integer limit 32767.
  22. You can change the font the hoists use by selecting the font you want from the Vectorworks "Text" menu. Hoists will use the text that is selected at the time of placement. If you want to change the text a hoist or hoists, select them and then select a text from the Vectorworks "Text" menu. As for the rounding of the load display, I'm sure some day that will be user touchable; however when is up in the air. It isn't just recoding the rounding routine. I'm sure that Vectorworks is seriously looking at weight as a unit. Right now weigh is not a unit; it is just text. Distance is a unit and how that unit is displayed is given a lot of different ways all of which relate back to the unit. VW needs to do the same thing with weight. How hoists display the weight fields may not be addressed until the weight unit problem is addressed or abandoned. I am not a VW employee, so I cannot give you any insight as to when and if this might happen. Sam
  23. The quick answer is yes. The long answer is a bunch of questions You will have to draw the paths yourself, but you can get a lot of information from them. Given that you have to draw the paths yourself, what information would you want? Typically, stage electricians doing lighting want: How long is the cable path? What cable inventory is needed? How much of what needs to pulled from the shop or rented? What is the voltage drop? As for drawing the paths, Vectorworks has a lot of good tools to make this easy and accurate. Let me know if you have any other questions. HTH, Sam Samuel L. Jones Developer of AutoPlot Tools for SpotLight E-mail: sjones@autoplotvw.com
  24. I'm a lighting designer, so I am unfamiliar with Speaker cable flow charts and lampies. Can you send me file and/or a description of what you want to do? I am quite familiar with the cable tools. Sam Samuel L. Jones Developer of AutoPlot Tools for SpotLight E-mail: sjones@autoplotvw.com
  25. I'm afraid not. I'm planning it in a future version. Currently, only the fixture gets the multi break out number, sorry. However, should the Jumper be associated with the Fixture or the the Multi? Ideally, both. Essentially, what the cable objects need is to store their source and their destination. The "source" being defined as the power or signal source. This would not be the origin of power or signal (dimmer rack, console, amp rack, etc), but the immediate source like the multi, or distort, or snake; essentially, what does it plug into. The destination would be what plugs into it. Remember, that the "start" of a cable run object is where power or signal come from and the end is "end" is where or what it delivers power or signal to. Realistically, this will be handled by unique IDs stored in the destination and source objects that straddle the cable run. It will be a minor bookkeeping nightmare, but that is what computers are for. This will have to be coordinated with a possible implementation of an export to LW 6. I'm not sure that the Jumper's cable ID is what should hold the multi break out number. It probably should, but I need to work this out with John, even if an export to LW is problematic, Jumper naming should try to stay consistent with how LW 6 thinks about things. Before all of that I need to implement a more comprehensive inventory system, so that there can be a different inventory of cable lengths for different jumper type, e.g. different lengths of SPG and Powercon. Currently, the part lengths can be overridden, but a more sophisticated system is needed, including different whole libraries, e.g. a Christie library, a PRG library and a venue library. Unfortunately (fortunately, really), it has been a unusually heavy NUT season, and I am just getting back to computer this week, and I will be interrupted again next week. All of what I have mentioned above will be implemented in my AutoPlot version of the cable tools. Whether or not that implementation is picked up by VW is to be determined. Do not worry too much, VW has been very helpful to me, and has tried to provide answers to all my scripting problems. Right now, they are working very hard on the Vision side of things. This has been a lengthy response that really is nothing more than a "Your out of luck, ...for now." I hope to make great strides in January, and I will working over the Holidays. Sam
×
×
  • Create New...