This enhancement allows users to move Empties, so they can be used as a parent
object for other objects. Allows movement by Delta, Direction and Absolute.
In certain circumstances, where the user has unwisely set inappropriate inputs,
modes of operation, or other settings, some errors were not trapped. This fixes those
making the system more "User Proof". A new exception was added if the user works
in an inappropriate feature setting, like Face mode when Vertex mode is required.
This fixes a small obscure error in Absolute mode whereby Bmesh was not
always found if Absolute mode was used.
This became apparent if no object was selected and an attempt was made
to add a new vertex, or extrude vertices.
Other checks did not trap for this error. These traps were originally
stored in the individual functions, now all traps are moved to the
command parse function.
Fixed a small error in New Vertex placed at Absolute Coordinates.
This error was very hard to detect and only occurs in very odd circumstances
It no longer occurs, a similar error might have also occurred with Extrude Vertices
to Absolute location, this fix also prevents that.
All Docstrings have been examined for typos and format, etc.
Small code change to set Selection Mode to "SEL" if operation is not
"C" or "P" to avoid possible errors when using other operations.
- Remove unused imports
- Add comments where appropriate
- Improve readability of variable names
- Re-implement a couple of functions using dictionaries instead of if-statements
- Results of Pylint & Black operations, plus some fixes to code.
Applies system rounding to inputs as defined in Add-on Preferences.
Default is 5 places of decimal, values taken from UI, or by calculation are
rounded before command is submitted.
- Check Object Mode is either EDIT or OBJECT as appropriate.
- Change If loop to check command values - error if D, E, For M commands.
- Remove surplus command check in command_maths function.
- Added import of exceptions file.
- Check for Mesh Objects in Object or Edit Mode first and exit with error
message if not.
- Some minor changes for obscure failures in unusual circumstances.
- Fixes and changes to code to correct minor errors and remove unnecessary
checks.
- Refactored Command File structure.
- Add more checks to Fillet Operation to check selection and make sure
current selected vertices/edges are always used. Previous version could
use wrong selection if Bmesh SelectHistory was in place for Faces, or Edges.
Most of the recommendations from pylint are now done, I have not changed variables
like v in expression [v for v in... as I consider these to be normal coding practice.
Rename pdt_com_functions.py to pdt_command_functions.py
Fix error in Intersect operation if selected vertices resulted in more than
2 edges being selected. Priority is given to two edges as a selection, then to
4 vertices, if the four vertices represent two edges, the intersection point is
at the intersection of the two edges, which might not be the four vertices, if
one of the vertices forms part of two edges that are also selected.
Priority is 2 edges, then 4 vertices selected individually with the mouse.
Moved all PDT Design Operations and Tools to Command Line file to de-dupe
code. All can now be called from the command line, e.g. a command of "otc" sets
the active objects Origin To Cursor, etc. Needs extensive further testing to see if all
Operations in all Modes still work exactly as before.
Tools menu split out from PDT Design so it can be minimised when not in use.
This enables two non-connected edges to be filleted. The Process starts with an
intersection of the two edges, then fillets the corner according to input values
in the UI. This option is selected by setting the Int/Fillet checkbox.
The command Line version now takes the `fi...` format to intersect first. e.g.
`fi1.1,6,0.05` performs an intersected fillet of 1.6 units radius, 6 segments,
concave profile.
Add "Re-Run" button to repeat last command line input.
Add "Maths Output" to take result of calculation when the `mo` command is used.
Allow commas in maths operation so calls like `hypot(3,4)` can be used.