Jump to content

Sam Jones

  • Content Count

  • Joined

  • Last visited

Community Reputation

82 Excellent

About Sam Jones

  • Rank

Personal Information

  • Occupation
    Technical Director
  • Homepage
  • Location
    Los Angeles

Contact Info

  • Skype

Recent Profile Visitors

3,598 profile views
  1. Is there a way to get the bounding box (x1,y1,x2,y2) of a group. I want to create a group and then get its bounding box. Selecting the objects and then grouping them does not yield a handle to the group SelectObj(((Criteria))); Group; GrpObj := LNewObj: {GrpObj returns nil here} I would like to get a handle to the group and then get its bounding box, but that doesn't seem to work.
  2. It is not clear which of the many issues in this thread you are concerned with.
  3. { CHANGE EventMessage TO MsgData (x2) in following line } seems to be the key to the problem, and I have things working now. What is "MsgData := vsoStateAddCurrent(PIOHan, MsgData);" reporting? It would seem that the only statement needed on a "kObjOnAddState" is "MsgData := vsoStateAddCurrent(PIOHan, MsgData);"
  4. Raymond, Thank you. The kObjOnAddState event was indeed missing from the event case test; however putting it in did not solve my problem. Nothing I can do it seems will yield ParamChangeFlag = True Here is the guts of my main with the case event test. GetVersion(Major,Minor,Maintenance,Platform); GetUnits(Fraction,Display,Format,UPI,UnitName,SquareName); Result := GetCustomObjectInfo(PIOName,PIOHan,PIORec,WallHdl); vsoGetEventInfo(EventMessage, MsgData); OK := GetLocalizedPlugInName(PIOName,LocalPIOName); IsNew := IsNewCustomObject(PIOName); BoxBottom := 3 * UPI; CASE EventMessage OF kResetEventID: {3} BEGIN GetSymLoc3D(PIOHan, PIOX, PIOY, PIOZ); ParamChangeFlag := vsoStateGetParamChng(PIOHan,ParamChangeWidget,ParamChangeIndex,OldParam); AlrtDialog(concat('Event 3, kResetEventID triggered', kcr, 'ParamChangeFlag = ', ParamChangeFlag, kcr, 'EventMessage = ', EventMessage)); IF (ParamChangeFlag=True) THEN BEGIN {Do Stuff} END; {IF (ParamChangeFlag=True) } ParamChangeTrig := FALSE; PIOChangeTrig := FALSE; SetUp; MainConstruct; vsoStateClear(PIOHan ); END; kObjOnAddState: {44} BEGIN {This event is needed to track state changes} EventMessage := vsoStateAddCurrent(PIOHan, EventMessage); ParamChangeFlag := vsoStateGetParamChng(PIOHan,ParamChangeWidget,ParamChangeIndex,OldParam); AlrtDialog(concat('Event 44, kObjOnAddState triggered', kcr, 'ParamChangeFlag = ', ParamChangeFlag, kcr, 'EventMessage = ', EventMessage)); END; kObjOnInitXProperties: {5} BEGIN Result := SetObjPropVS (kObjXPropHasUIOverride,True); Result := SetObjPropVS(12, TRUE); {kObjXHasCustomWidgetVisibilities} SetPrefInt(590, 1 ); {kParametricEnableStateEventing} Result := SetObjPropVS (18,TRUE); {kObjXPropAcceptStates} Result := vsoInsertAllParams; Result := SetObjPropVS(kObjXPropDataNameDisabled, TRUE);{kObjXPropDataNameDisabled} SetPrefInt (590,1); {varParametricEnableStateEventing,ResetStatesEvent} END; kObjOnWidgetPrep: {41} BEGIN WidgetPrep; END; {kObjOnWidgetPrep} END; {case}
  5. I am under the impression that when a parameter is changed the result of ParamChangeFlag := vsoStateGetParamChng(PIOHan,ParamChangeWidget,ParamChangeIndex,OldParam); should be true. I have a PIO that fails to change the ParamChangeFlag to true when a parameter changes. My init event has the following code. kObjOnInitXProperties: {5} BEGIN Result := SetObjPropVS (kObjXPropHasUIOverride,True); Result := SetObjPropVS(12, TRUE); {kObjXHasCustomWidgetVisibilities} SetPrefInt(590, 1 ); {kParametricEnableStateEventing} Result := SetObjPropVS (18,TRUE); {kObjXPropAcceptStates} Result := vsoInsertAllParams; Result := SetObjPropVS(kObjXPropDataNameDisabled, TRUE);{kObjXPropDataNameDisabled} SetPrefInt (590,1); {varParametricEnableStateEventing,ResetStatesEvent} END; Which should enable state eventing. Does anyone have a clue as to what I missed or where I should look, because now vsoStateGetParamChng(PIOHan,ParamChangeWidget,ParamChangeIndex,OldParam); always yields False whenever a parameter is changed in the OIP.,
  6. I found this on the Lightwright website. "The way Vectorworks 2020 handles DMX Addresses is new, there are now separate fields for Absolute Address, Universe, and DMX Address. Like the corresponding Lightwright address fields, they are linked to each other so changing any one of them automatically changes the others. Unfortunately, Lightwright won't be able to take advantage of these new fields until its 64-bit release, and even then there is a bug in Vectorworks 2020 that prevents it from accurately sending any of these address fields to Lightwright except when you do a "Complete Export on Exit". That bug will be fixed in VW2020 SP2, scheduled for release in November."
  7. Glad you found a quick and easy answer. AutoPlot Tools for Spotlight does have a "Copy Field to Field" command. However, I haven't been in your shoes, but as I understand it if you Refresh Instruments, Spotlight should update all of the Address fields from the Universal Address Field. Also, as I understand it from John, all you need to send to LW is the absolute address and LW will update all the Address fields. John McKernon and Kevin Linzey should weigh in here.
  8. Sebastian, I'm finding it strange that entering and exiting the the HP refreshes the the Truss tag. I don't have access to the code for HPs. There is a "Refresh All Truss Tags" that should accomplish the refresh.
  9. I isolated it to a bad file. Unfortunately this is the only symptom of it being bad, but I am transferring layers to another file. Not done yet but the Light Plot layer and Focus Pt Layer have been moved and the problem went away. Thanks.
  10. Both Field Angles are 14° and both Beam Angles are 11°.
  11. My beams are drawing as straight 3D lines instead of cones with an oval on the floor. How can I fix this?
  12. Well. ... Reloading the workspace solved the problem. ?? ! Prior to that quitting and restarting VW did nothing. Another example of how much I don't understand about what is going on under the hood, but a mysterious solution is way better than none.
  13. I tried moving it. No joy. I upgraded to build 513812. No joy. I haven't a clue as to how to track this one down. I can't imagine that he "If" test makes a difference, but good error handling for PIO templates If anybody hears of anything I can look for or test, please let me know.
  14. Interesting. I have always put the code in kObjOnWidgetPrep, and it has always worked. I use it with vsoWidgetSetVisible which has to be in the kObjOnWidgetPrep event, because I turn visibilities off based on other OIP actions. I will move it and see what happens.


7150 Riverwood Drive, Columbia, Maryland 21046, USA   |   Contact Us:   410-290-5114


© 2018 Vectorworks, Inc. All Rights Reserved. Vectorworks, Inc. is part of the Nemetschek Group.

  • Create New...