BIM+Draft: fix Placement task panel issue for Arch_SectionPlane and Draft_WorkingPlaneProxy (#27101)

* BIM+Draft: fix Placement Task Panel issue for Arch_SectionPlane and Draft_WorkingPlaneProxy

* BIM+Draft: fix Placement Task Panel issue for Arch_SectionPlane and Draft_WorkingPlaneProxy
This commit is contained in:
Roy-043
2026-02-12 13:39:46 +01:00
committed by GitHub
parent db5fff6ccc
commit 7912f84136
2 changed files with 56 additions and 51 deletions

View File

@@ -36,6 +36,7 @@ from PySide.QtCore import QT_TRANSLATE_NOOP
import FreeCAD as App
import FreeCADGui as Gui
from draftutils import gui_utils
from draftutils import params
@@ -129,6 +130,7 @@ class ViewProviderWorkingPlaneProxy:
def attach(self, vobj):
self.clip = None
self.main_transform = gui_utils.find_coin_node(vobj.RootNode, coin.SoTransform)
self.mat1 = coin.SoMaterial()
self.mat2 = coin.SoMaterial()
self.fcoords = coin.SoCoordinate3()
@@ -202,42 +204,47 @@ class ViewProviderWorkingPlaneProxy:
l = vobj.DisplaySize.Value / 2
else:
l = 1
verts = []
fverts = []
l1 = 0.1
if hasattr(vobj, "ArrowSize"):
l1 = vobj.ArrowSize.Value if vobj.ArrowSize.Value > 0 else 0.1
else:
l1 = 0.1
l2 = l1 / 3
pl = App.Placement(vobj.Object.Placement)
fverts.append(pl.multVec(App.Vector(-l, -l, 0)))
fverts.append(pl.multVec(App.Vector(l, -l, 0)))
fverts.append(pl.multVec(App.Vector(l, l, 0)))
fverts.append(pl.multVec(App.Vector(-l, l, 0)))
verts.append(pl.multVec(App.Vector(0, 0, 0)))
verts.append(pl.multVec(App.Vector(l - l1, 0, 0)))
verts.append(pl.multVec(App.Vector(l - l1, l2, 0)))
verts.append(pl.multVec(App.Vector(l, 0, 0)))
verts.append(pl.multVec(App.Vector(l - l1, -l2, 0)))
verts.append(pl.multVec(App.Vector(l - l1, l2, 0)))
pl = vobj.Object.Placement
self.main_transform.translation.setValue(pl.Base)
self.main_transform.rotation = coin.SbRotation(pl.Rotation.Q)
verts = []
fverts = []
verts.append(pl.multVec(App.Vector(0, 0, 0)))
verts.append(pl.multVec(App.Vector(0, l - l1, 0)))
verts.append(pl.multVec(App.Vector(-l2, l - l1, 0)))
verts.append(pl.multVec(App.Vector(0, l, 0)))
verts.append(pl.multVec(App.Vector(l2, l - l1, 0)))
verts.append(pl.multVec(App.Vector(-l2, l - l1, 0)))
fverts.append(App.Vector(-l, -l, 0))
fverts.append(App.Vector(l, -l, 0))
fverts.append(App.Vector(l, l, 0))
fverts.append(App.Vector(-l, l, 0))
verts.append(pl.multVec(App.Vector(0, 0, 0)))
verts.append(pl.multVec(App.Vector(0, 0, l - l1)))
verts.append(pl.multVec(App.Vector(-l2, 0, l - l1)))
verts.append(pl.multVec(App.Vector(0, 0, l)))
verts.append(pl.multVec(App.Vector(l2, 0, l - l1)))
verts.append(pl.multVec(App.Vector(-l2, 0, l - l1)))
verts.append(pl.multVec(App.Vector(0, -l2, l - l1)))
verts.append(pl.multVec(App.Vector(0, 0, l)))
verts.append(pl.multVec(App.Vector(0, l2, l - l1)))
verts.append(pl.multVec(App.Vector(0, -l2, l - l1)))
verts.append(App.Vector(0, 0, 0))
verts.append(App.Vector(l - l1, 0, 0))
verts.append(App.Vector(l - l1, l2, 0))
verts.append(App.Vector(l, 0, 0))
verts.append(App.Vector(l - l1, -l2, 0))
verts.append(App.Vector(l - l1, l2, 0))
verts.append(App.Vector(0, 0, 0))
verts.append(App.Vector(0, l - l1, 0))
verts.append(App.Vector(-l2, l - l1, 0))
verts.append(App.Vector(0, l, 0))
verts.append(App.Vector(l2, l - l1, 0))
verts.append(App.Vector(-l2, l - l1, 0))
verts.append(App.Vector(0, 0, 0))
verts.append(App.Vector(0, 0, l - l1))
verts.append(App.Vector(-l2, 0, l - l1))
verts.append(App.Vector(0, 0, l))
verts.append(App.Vector(l2, 0, l - l1))
verts.append(App.Vector(-l2, 0, l - l1))
verts.append(App.Vector(0, -l2, l - l1))
verts.append(App.Vector(0, 0, l))
verts.append(App.Vector(0, l2, l - l1))
verts.append(App.Vector(0, -l2, l - l1))
self.lcoords.point.setValues(verts)
self.fcoords.point.setValues(fverts)