-
Posts
2,031 -
Joined
-
Last visited
Content Type
Profiles
Forums
Events
Articles
Marionette
Store
Posts posted by JBenghiat
-
-
You can also just use SetTextSize() after you create the text block, and not worry about the document settings.
-
EditObjectSpecial() appears in both ISDK and VS.
I was hoping it would let me edit an object in a profile group, but unfortunately, it always shows the parent object of the passed handle.
-
Does anyone know of an SDK equivalent for the vs EditProperties() or ObjPropsEditDlg()?
-
@klinzey @mjm @scottparker An inherent issue with cell numbers is that they traditionally follow unit number rules, which are respect to SL
and plaster, while VW cell order remains constant with respect to the fixture’s origin, with no regard to orientation.
There needs to be some discussion on cell order standards. There likely need to be an OIP toggle to reverse the cell order, as well as selection highlight of the active cell. -
Savvy Sequencer and the similar numbering tool in Select Similar uses the same cell-order rules, so that’s not the case here (though the cells do need to flip left to right).
I suspect the numbering button that is in the Hanging Position OIP has not been updated to support multi-cells
-
6 minutes ago, mjm said:
@JBenghiatSuper. Thanks ever so. Assuming I can do that to the symbol in current use
Yes — and if you've numbers with Savvy, you should immediately see the numbers in the correct order.
I'm also going be memory here — I believe cells order is front to back, but there's always a chance I have that backwards.
-
11 minutes ago, mjm said:
Numbering issues there as well. Is it possible for me to somehow re-build the multicell fixtures myself so they number correctly?
Yes — just edit the symbol and use Send Forward/Send back until the cells are in the right order. Usually, I select cells in order (starting with 1) and Send to Back.
-
4 hours ago, mjm said:
Also gonna throw a shoutout to the poor results from the Spotlight auto-numbering tool. I have attached two Screenshots, one shows the SL autonumbering of two multicell positions, the other show numbering through @JBenghiat's Savvy Sequencer. Couple things of note:
- Let's note how much actual paid work is getting done here
- the SL fixtures are all fresh from the VW RM. No editing by me.
- the Hanging Positions show in OIP as HPs.
@mjm FYI, Savvy Sequencer and Select Similar use the cell numbers for multi-circuit numbering. The cell order is determined by the stacking order in the MC symbol. You should see A1 align with the channel and color for cell one, for example.
If these directly from the content library, then there is a bug that the cells are not in the correct stacking order.
- 1
-
It IS possible with Python: if you look at the dict for vs.Handle, .aux give you a handle to the aux list, at which point you can traverse just like any other container.
I’m not aware of a way to access the aux list with VS.
-
VW will recognize aliases/shortcuts for both plug-in files and resource libraries. Keep the originals in your development folder and link into your user folder.
Also, include files can reside anywhere on your system, which is where git really becomes useful. -
The Spotlight Numbering tool will do what you describe.
Savvy Sequencer and Savvy Select Similar Instrument have some additional numbering features, but can only target one field at a time:
https://benghiatlighting.com/software/product/savvy-sequencer-2/
https://benghiatlighting.com/software/product/savvy-select-similar-instrument-3/
The first version of Savvy Sequencer was in VS, and there's quite a bit to take into account to do this properly, both in terms of resetting Lighting Devices, dealing with cells and accessories, and providing for multi-dimensional sorting.
-
If you have access to Service Select, there is an Applied Winch Tower in Objects - Ent Stage.
Also, visit the Marionette forum. I have a recollection of someone posting a winch tower marionette object.
- 1
-
In theory, you can place a hanging position PIO inside another PIO, though that would be a little complicated. And even then, you can’t easily attach objects to the hanging position.
You can probably do what you describe with the SDK.
-
1 hour ago, JHangstoerfer said:
VWViewObj only is for temporary saved views like when you want to change camera, layers and then restore to how it was previously afterwards. For creating a saved view that shows up in the navigation palette there is ISDK::CreateSavedViewWithUI or the python/vss SaveSheet. To modify a saved view you also need to use the ISDK calls directly as VWViewObj operates on a duplicate.
It looks like the saved view is actually a script with a view object attached. Untested, but in theory:
- Use ISDK::CreateScriptResource to create a new script in the "Saved Views" palette. The name of the script is the name of the view.
- Use VWViewObj to create the view
- Set the parent of the view object to the aux list of the script object
-
Take a look at VWFC::VWObjects::VWViewObj.
As for ExecuteScript, concatenating the string is not too hard — just use +. You can also use single quotes as your string qualified to avoid having to escape them.
I believe CallUserProcedure only works for procedures you have registered and can therefore get the callback pointer.
-
If that didn't work, then there isn't a way to suppress the NURBS vertex info. Are you copying the path from the path group? If so, then as an alternative you can iterate over the path and use the vertex locations to draw a new NURBS curve in your object code. That way it really doesn't matter if someone changes the degree.
I think the only other option would be to make the object a point object and use a custom tool to define the path (point objects can still have a path and profile group). In this solution you loose an easy way to edit the path, though.
-
All the elements have to be connected like a tree. So the first label would have a horizontal connection to the edit box and a vertical connection to the next label.
You can also preview the dialog from within DB, via a mode bar button when you have the edit tool selected. The code generated for the preview should be very close to what gets exported, with the exception that the preview includes a handler and the ability to show sample data.
You should be able to do 100% of your interface coding via DB, so that no hand coding is involved. The only thing it will not code is the handler.
-
It gets updated with every version, but it is definitely more of a utilitarian developer tool than something polished for mass consumption.
-
Otherwise, you probably have to use ISDK::ForEachObjectN to iterate over visible or selected objects, unite their bounding boxes, and then set the view the the bounding box plus a percentage.
-
On 6/6/2022 at 12:05 PM, Mark Aceto said:
is there a way to control visibility of the slide template thingy with classing or in Viewport settings or would that be a feature request?
It's necessary for rendering, so it shows any time you're projecting the image. In order to get a projection in Vectorworks you have to simulate a slide that the light shines through. If you make the image too small, you start to lose resolution. I realize that the image appearing in the line renders is less that ideal, but I'm not aware of a way for objects to hide for one render style only. I fear that if I allowed it to be classed, to many people would have issues with the image not projecting properly.
You can link ProjectinViz to a Video Screen object for your object visualization, though I'm not sure if VS handles rotating the 3D component of the projector in the same way.
- 1
-
That's pretty much it. You change the type of the dialog item in the OIP.
- 1
-
Without digging too much into this, you may need to call a reset on the outer symbol.
-
13 hours ago, Mark Aceto said:
In this analogy, I want to click on the center of the rectangle, and drag it. Or rotate it.
I've been locking Plan Distance but that isn't always the best option.
I've been locking Throw as a substitute for Plan Distance but that's not always the best option either.
If you want to maintain the relationship between the image and projector, either of those locks will work. The best one depends on how you want the object to reshape when you enter other parameters (throw, tilt, focus height, etc). If you're not changing other parameters, there's not any benefit of one over the other.
You'll need to update to the version released today for rotation on groups, multiple projectors, or the rotation tool to work as expected.
- 1
-
Here's an analogy relating to how locks work, which will hopefully clarify why "unlock all" isn't an option.
The locks are like anchors in the standard 2D geometric shapes. For example, when you select a Rectangle, Obj Info shows a little widget with nine possible anchor points. You must have one of these selected, otherwise if you change the Width or Height fields, the location of the new geometry would be unpredictable. These anchor points do not come into play if you drag one of the rectangle's reshape control points, as you are explicitly indicating how you want the object to reshape.
Now let's say that Area was not a read-only field. In order for Area to work in a predictable way, we would need a way to choose how the object reshapes to the new area: maintain the Width, maintain the Height, or maintain the Ratio.
The locks in ProjectionViz and BeamViz accomplish the same thing: they allow you to accurately predict how changing a parameter will change the object's geometry. You just have a more complex set of parameters that design the shape of the object, as well as features that help you work through real-world scenarios (e.g. you know where your image plane will be, and you need to move the projector around to find the ideal location).
- 2
Edit properties dialog?
in SDK
Posted
That would get me into the profile group, but I want to get the properties of a render light in the profile group without the user seeing the other stuff I store there. Basically the equivalent of right-clicking on the light in Visualization and choosing edit. So far, I get the entire plug-in in the properties dialog, not the object passed to EditObjectSpecial.