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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user