refined Arch Axis bubble numbering
This commit is contained in:
parent
1c5f92bebe
commit
c13044b4f4
|
@ -66,10 +66,10 @@ class _Axis(ArchComponent.Component):
|
||||||
def __init__(self,obj):
|
def __init__(self,obj):
|
||||||
obj.addProperty("App::PropertyFloatList","Distances","Base", "The intervals between axes")
|
obj.addProperty("App::PropertyFloatList","Distances","Base", "The intervals between axes")
|
||||||
obj.addProperty("App::PropertyFloatList","Angles","Base", "The angles of each axis")
|
obj.addProperty("App::PropertyFloatList","Angles","Base", "The angles of each axis")
|
||||||
obj.addProperty("App::PropertyFloatList","Limits","Base", "The inferior and superior drawing limits")
|
obj.addProperty("App::PropertyFloat","Length","Base", "The length of the axes")
|
||||||
self.Type = "Axis"
|
self.Type = "Axis"
|
||||||
|
|
||||||
obj.Limits=[0.0,1.0]
|
obj.Length=1.0
|
||||||
obj.Proxy = self
|
obj.Proxy = self
|
||||||
self.Object = obj
|
self.Object = obj
|
||||||
|
|
||||||
|
@ -90,8 +90,8 @@ class _Axis(ArchComponent.Component):
|
||||||
for i in range(len(obj.Distances)):
|
for i in range(len(obj.Distances)):
|
||||||
dist += obj.Distances[i]
|
dist += obj.Distances[i]
|
||||||
ang = math.radians(obj.Angles[i])
|
ang = math.radians(obj.Angles[i])
|
||||||
p1 = Vector(dist,obj.Limits[0],0)
|
p1 = Vector(dist,0,0)
|
||||||
p2 = Vector(dist+(obj.Limits[1]/math.cos(ang))*math.sin(ang),obj.Limits[1],0)
|
p2 = Vector(dist+(obj.Length/math.cos(ang))*math.sin(ang),obj.Length,0)
|
||||||
geoms.append(Part.Line(p1,p2).toShape())
|
geoms.append(Part.Line(p1,p2).toShape())
|
||||||
if geoms:
|
if geoms:
|
||||||
obj.Shape = Part.Compound(geoms)
|
obj.Shape = Part.Compound(geoms)
|
||||||
|
@ -103,7 +103,7 @@ class _ViewProviderAxis(ArchComponent.ViewProviderComponent):
|
||||||
def __init__(self,vobj):
|
def __init__(self,vobj):
|
||||||
vobj.addProperty("App::PropertyLength","BubbleSize","Base", "The size of the axis bubbles")
|
vobj.addProperty("App::PropertyLength","BubbleSize","Base", "The size of the axis bubbles")
|
||||||
vobj.addProperty("App::PropertyEnumeration","NumerationStyle","Base", "The numeration style")
|
vobj.addProperty("App::PropertyEnumeration","NumerationStyle","Base", "The numeration style")
|
||||||
vobj.NumerationStyle = ["1,2,3","01,02,03","A,B,C","a,b,c","I,II,III"]
|
vobj.NumerationStyle = ["1,2,3","01,02,03","001,002,003","A,B,C","a,b,c","I,II,III"]
|
||||||
vobj.Proxy = self
|
vobj.Proxy = self
|
||||||
self.Object = vobj.Object
|
self.Object = vobj.Object
|
||||||
self.ViewObject = vobj
|
self.ViewObject = vobj
|
||||||
|
@ -121,6 +121,43 @@ class _ViewProviderAxis(ArchComponent.ViewProviderComponent):
|
||||||
self.ViewObject = vobj
|
self.ViewObject = vobj
|
||||||
self.bubbles = None
|
self.bubbles = None
|
||||||
|
|
||||||
|
def getNumber(self,num):
|
||||||
|
chars = "abcdefghijklmnopqrstuvwxyz"
|
||||||
|
roman=(('M',1000),('CM',900),('D',500),('CD',400),
|
||||||
|
('C',100),('XC',90),('L',50),('XL',40),
|
||||||
|
('X',10),('IX',9),('V',5),('IV',4),('I',1))
|
||||||
|
if self.ViewObject.NumerationStyle == "1,2,3":
|
||||||
|
return str(num+1)
|
||||||
|
elif self.ViewObject.NumerationStyle == "01,02,03":
|
||||||
|
return str(num+1).zfill(2)
|
||||||
|
elif self.ViewObject.NumerationStyle == "001,002,003":
|
||||||
|
return str(num+1).zfill(3)
|
||||||
|
elif self.ViewObject.NumerationStyle == "A,B,C":
|
||||||
|
result = ""
|
||||||
|
base = num/26
|
||||||
|
if base:
|
||||||
|
result += chars[base].upper()
|
||||||
|
remainder = num % 26
|
||||||
|
result += chars[remainder].upper()
|
||||||
|
return result
|
||||||
|
elif self.ViewObject.NumerationStyle == "a,b,c":
|
||||||
|
result = ""
|
||||||
|
base = num/26
|
||||||
|
if base:
|
||||||
|
result += chars[base]
|
||||||
|
remainder = num % 26
|
||||||
|
result += chars[remainder]
|
||||||
|
return result
|
||||||
|
elif self.ViewObject.NumerationStyle == "I,II,III":
|
||||||
|
result = ""
|
||||||
|
num += 1
|
||||||
|
for numeral, integer in roman:
|
||||||
|
while num >= integer:
|
||||||
|
result += numeral
|
||||||
|
num -= integer
|
||||||
|
return result
|
||||||
|
return ''
|
||||||
|
|
||||||
def makeBubbles(self):
|
def makeBubbles(self):
|
||||||
import Part
|
import Part
|
||||||
rn = self.ViewObject.RootNode.getChild(2).getChild(0).getChild(0)
|
rn = self.ViewObject.RootNode.getChild(2).getChild(0).getChild(0)
|
||||||
|
@ -153,7 +190,7 @@ class _ViewProviderAxis(ArchComponent.ViewProviderComponent):
|
||||||
fo.size = rad*100
|
fo.size = rad*100
|
||||||
tx = coin.SoText2()
|
tx = coin.SoText2()
|
||||||
tx.justification = coin.SoText2.CENTER
|
tx.justification = coin.SoText2.CENTER
|
||||||
tx.string = str(i)
|
tx.string = self.getNumber(i)
|
||||||
st.addChild(tr)
|
st.addChild(tr)
|
||||||
st.addChild(fo)
|
st.addChild(fo)
|
||||||
st.addChild(tx)
|
st.addChild(tx)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user