Profiles can have arbitrary (nonemptySee the following videos to illuminate editing of the Selector profiles.
CreatingNewControl_FlatGrid3x3.mp4
Profiles can have an arbitrary (non zero) number of handles, with which can access any available transformations, including non-interactive (for example, coordinate axes). Filtering of the handles in the current profile can be done by using filters by type of transformation from the selector settings dialog.
Filtering Filtering handles of the current profile by type of transformation
User A user can create his own profiles or modify existing ones. There are, however, certain specific characteristics of profile loading that need to be observed. To save time on reading the TCW file, profiles are unloaded only when the application is closed. Otherwise they would have to be opened/closed upon each activation of the corresponding dragger (for example, selector)tool. This would have slowed down the work significantly. So if a profile is already uploaded to memory, reloading it (for instance, after editing) is possible only after restarting the application. New A new profile can be set up without an application restart. When we give user the ability to develop profiles, it is desirable to also provide a set of development tools. For example, 'Reload profile' button and the ability to create current profile report, which would show the number of handles, loading errors, etc. I hope this will be added in future.
...
Samples
The Samples folder contains several examples of different profiles. It makes sense to start all new templates from by using the template.tcw, which contains the minimum set of handles and also includes all required variables (graphic`s custom properties).
Template Template.TCW profile
Defined custom properties. Anchor
The MoveRotate2D.TCW sample demonstrates the possibility to create of creating a selector in a "protractor" style. It contains 12 handles for movement along axis, positioned at every 30 degrees, and a handle for rotating around the Z axis.
Anchor
The FlatGrid3x3.TCW example demonstrates the possibility to create a flat 5x5 grid from handles for accurate movement in the XY plane (reference point). Grid spacing is Anchor
...
Anchor
Layers
All profiles that are distributed with TurboCAD have a certain system of layers. Each handle has its own layer. This provides a way to hide unnecessary handles. Anchor
Layers whose names have the "handle_") prefix prefix are used for handles. For example, the "handle_MoveX"
Layers whose names have the "
Fragment of layer table from a profile.
It should be noted that this system of layers exists only as an added convenience for profile development. When a profile is uploaded into the application, layer 0 is assigned to all handles.
...
When a profile is uploaded into the application, the loader analyzes graphics and uses certain criteria to identify handles. A handle is a 'group' graphic that has a certain set of subgroups and a set of custom properties. Graphics that do not meet these criteria are ignored.
anchor
In addition to mandatory custom Anchor
Set of variables for
The current set of variables is not final as of this writing, it can may be changed and expanded.
A handle has to include a certain set of subgroups.
Each of the subgroups is responsible either for drawing of for the behavior of the handle. Type
The type of the subgroup is set by the Anchor
'handle_part variable'
This variable can have one of the following values: Anchor
- mouseout - visible geometry when the cursor is outside the handle
...
- mouseover - visible geometry when the cursor is over the handle
...
- active - visible geometry while
...
- dragging (optional)
- static-
...
- visible geometry (optional)
...
- coordsystem - invisible geometry, defining the coordinate system of the handle
- highlight_area - invisible geometry, turns on mouseover, when the cursor is over it. If this part is absent, mouseout (optional) is used instead.
- visibility_area - reserved (optional)
Parts Parts of MoveX handle