Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'precision_drawing_tools')
-rw-r--r--precision_drawing_tools/__init__.py28
-rw-r--r--precision_drawing_tools/pdt_menus.py39
-rw-r--r--precision_drawing_tools/pdt_msg_strings.py6
3 files changed, 73 insertions, 0 deletions
diff --git a/precision_drawing_tools/__init__.py b/precision_drawing_tools/__init__.py
index b64a164c..298b2d9c 100644
--- a/precision_drawing_tools/__init__.py
+++ b/precision_drawing_tools/__init__.py
@@ -53,6 +53,7 @@ if "bpy" in locals():
importlib.reload(pdt_xall)
importlib.reload(pdt_bix)
importlib.reload(pdt_etof)
+ importlib.reload(pdt_tangent)
else:
from . import pdt_design
from . import pdt_pivot_point
@@ -62,6 +63,7 @@ else:
from . import pdt_xall
from . import pdt_bix
from . import pdt_etof
+ from . import pdt_tangent
import bpy
import os
@@ -108,6 +110,12 @@ from .pdt_msg_strings import (
PDT_DES_TRIM,
PDT_DES_VALIDLET,
PDT_DES_WORPLANE,
+ PDT_DES_TANCEN1,
+ PDT_DES_TANCEN2,
+ PDT_DES_TANCEN3,
+ PDT_DES_RADIUS1,
+ PDT_DES_RADIUS2,
+ PDT_DES_TPOINT,
)
from .pdt_command import command_run
from .pdt_functions import scale_set
@@ -389,6 +397,22 @@ class PDTSceneProperties(PropertyGroup):
fillet_intersect: BoolProperty(
name="Intersect", default=False, description=PDT_DES_FILLINT,
)
+ tangent_point0: FloatVectorProperty(
+ name="Coordst1", default=(0.0, 0.0, 0.0), subtype="XYZ", description=PDT_DES_TANCEN1
+ )
+ tangent_point1: FloatVectorProperty(
+ name="Coordst2", default=(0.0, 0.0, 0.0), subtype="XYZ", description=PDT_DES_TANCEN2
+ )
+ tangent_radius0: FloatProperty(
+ name="Arc Radius 1", min=0.00001, default=1, description=PDT_DES_RADIUS1
+ )
+ tangent_radius1: FloatProperty(
+ name="Arc Radius 2", min=0.00001, default=1, description=PDT_DES_RADIUS2
+ )
+ tangent_point2: FloatVectorProperty(
+ name="Coordst3", default=(0.0, 0.0, 0.0), subtype="XYZ", description=PDT_DES_TANCEN3
+ )
+ tangent_from_point: BoolProperty(name="From Point", default=False, description=PDT_DES_TPOINT)
class PDTPreferences(AddonPreferences):
@@ -463,6 +487,7 @@ classes = (
pdt_library.PDT_OT_LibShow,
pdt_menus.PDT_PT_PanelDesign,
pdt_menus.PDT_PT_PanelTools,
+ pdt_menus.PDT_PT_PanelTangent,
pdt_menus.PDT_PT_PanelCommandLine,
pdt_menus.PDT_PT_PanelViewControl,
pdt_menus.PDT_PT_PanelPivotPoint,
@@ -476,6 +501,9 @@ classes = (
pdt_pivot_point.PDT_OT_PivotOrigin,
pdt_pivot_point.PDT_OT_PivotWrite,
pdt_pivot_point.PDT_OT_PivotRead,
+ pdt_tangent.PDT_OT_TangentOperate,
+ pdt_tangent.PDT_OT_TangentSet1,
+ pdt_tangent.PDT_OT_TangentSet2,
pdt_view.PDT_OT_ViewRot,
pdt_view.PDT_OT_ViewRotL,
pdt_view.PDT_OT_ViewRotR,
diff --git a/precision_drawing_tools/pdt_menus.py b/precision_drawing_tools/pdt_menus.py
index 61444d60..1632730c 100644
--- a/precision_drawing_tools/pdt_menus.py
+++ b/precision_drawing_tools/pdt_menus.py
@@ -414,3 +414,42 @@ class PDT_PT_PanelCommandLine(Panel):
row.operator("pdt.command_rerun", text="", icon="LOOP_BACK")
row = layout.row()
row.prop(pdt_pg, "maths_output", text="Maths Output")
+
+class PDT_PT_PanelTangent(Panel):
+ bl_idname = "PDT_PT_PanelTangent"
+ bl_label = "PDT Tangents"
+ bl_space_type = "VIEW_3D"
+ bl_region_type = "UI"
+ bl_category = "PDT"
+ bl_options = {'DEFAULT_CLOSED'}
+
+ def draw(self,context):
+ layout = self.layout
+ pdt_pg = context.scene.pdt_pg
+ # First Centre & Radius
+ row = layout.row()
+ split = row.split(factor=0.35, align=True)
+ split.label(text="Centre 1")
+ split.prop(pdt_pg, "tangent_point0", text="")
+ row = layout.row()
+ split = row.split(factor=0.45, align=False)
+ split.operator("pdt.tangentset1", text="Set From Arc")
+ split.prop(pdt_pg, "tangent_radius0", text="")
+
+ # Second Centre & Radius
+ row = layout.row()
+ split = row.split(factor=0.35, align=True)
+ split.label(text="Centre 2")
+ split.prop(pdt_pg, "tangent_point1", text="")
+ row = layout.row()
+ split = row.split(factor=0.45, align=False)
+ split.operator("pdt.tangentset2", text="Set From Arc")
+ split.prop(pdt_pg, "tangent_radius1", text="")
+
+ row = layout.row()
+ row.operator("pdt.tangentoperate", text="Execute", icon="NONE")
+ row.prop(pdt_pg, "tangent_from_point", text="From Point")
+ row = layout.row()
+ split = row.split(factor=0.35, align=True)
+ split.label(text="Tan Point")
+ split.prop(pdt_pg, "tangent_point2", text="")
diff --git a/precision_drawing_tools/pdt_msg_strings.py b/precision_drawing_tools/pdt_msg_strings.py
index 8c7b9db2..9eeb08f1 100644
--- a/precision_drawing_tools/pdt_msg_strings.py
+++ b/precision_drawing_tools/pdt_msg_strings.py
@@ -192,3 +192,9 @@ PDT_DES_FILLETSEG = "Number of Fillet Segments"
PDT_DES_FILLETPROF = "Fillet Profile"
PDT_DES_FILLETVERTS = "Use Vertices, or Edges, Set to False for Extruded Geometry"
PDT_DES_FILLINT = "Intersect & Fillet Two Selected Edges"
+PDT_DES_TANCEN1 = "Centre of First Tangent Arc"
+PDT_DES_TANCEN2 = "Centre of Second Tangent Arc"
+PDT_DES_TANCEN3 = "Tangents From a Point"
+PDT_DES_RADIUS1 = "Radius of First Tangent Arc"
+PDT_DES_RADIUS2 = "Radius of Second Tangent Arc"
+PDT_DES_TPOINT = "Calculate Tangents From Point"