绘图环境
未完成:
二维图纸的图层管理
尺寸标注样式
import Rhino
import System.Drawing.Color as Color
def RGB(hex_color,alpha=255):
# 将16进制颜色字符串转换为RGB值
hex_color = hex_color.lstrip('#') # 去除可能的前缀“#”
r = int(hex_color[0:2], 16)
g = int(hex_color[2:4], 16)
b = int(hex_color[4:6], 16)
return Color.FromArgb(alpha,r,g,b)
class Cr:
DW_ZX = RGB('#FF0000') # 定位轴线
DW_TL_SELF = RGB('#00FFFF',100) # 体量【施工范围】
DW_TL_OTHER = RGB('#AAAAAA',100) # 体量【别途工程】
ZT_Z = RGB('#008888') # 主体结构-柱
ZT_L = RGB('#008800') # 主体结构-梁
ZT_B = RGB('#8888FF') # 主体结构-板
ZT_G = RGB('#FF8888') # 主体结构-钢结构
XC_L = RGB('#FFFFAA') # 线材-铝材
XC_G = RGB('#FFFFFF') # 线材-钢材
MB_B = RGB('#00AAAA',150) # 面板-玻璃
MB_L = RGB('#AAAAAA') # 面板-铝板
MB_S = RGB('#AAAA00') # 面板-石材
MB_BXG = RGB('#00AA00') # 面板-不锈钢
JG_MJ = RGB('#FFFF00') # 加工件-埋件
JG_LJ = RGB('#FFFFFF') # 加工件-连接件
# RhinoCommon模块
doc = Rhino.RhinoDoc.ActiveDoc
# 线型
LTS = doc.Linetypes
# 图层
LS = doc.Layers
class LineType:
# 线型管理
Center = LTS.FindName('Center').Index
Hidden = LTS.FindName('Hidden').Index
Normal = -1
def CreateLayer(_name , _color = Color.Black , _linetype = -1):
layer = LS.FindName(_name)
if layer is None:
layer = LS[LS.Add()]
layer.Name = _name
layer.Color = _color
layer.LinetypeIndex = _linetype
else:
layer.Color = _color
layer.LinetypeIndex = _linetype
return layer
def SetLayers():
# 定位图层
DW = CreateLayer('定位')
## =============================
DW_ZX = CreateLayer('定位轴线',Cr.DW_ZX,LineType.Center)
DW_ZX.ParentLayerId = DW.Id
DW_TL_SELF = CreateLayer('体量【施工范围】',Cr.DW_TL_SELF)
DW_TL_SELF.ParentLayerId = DW.Id
DW_TL_OTHER = CreateLayer('体量【别途工程】',Cr.DW_TL_OTHER)
DW_TL_OTHER.ParentLayerId = DW.Id
# 实体图层
ST = CreateLayer('实体')
# 1.主体结构
ZT = CreateLayer('主体结构',Color.Black)
ZT.ParentLayerId = ST.Id
## =============================
ZT_Z = CreateLayer('柱',Cr.ZT_Z)
ZT_Z.ParentLayerId = ZT.Id
ZT_L = CreateLayer('梁',Cr.ZT_L)
ZT_L.ParentLayerId = ZT.Id
ZT_B = CreateLayer('板',Cr.ZT_B)
ZT_B.ParentLayerId = ZT.Id
ZT_G = CreateLayer('钢结构',Cr.ZT_G)
ZT_G.ParentLayerId = ZT.Id
## =============================
# 2.线材
XC = CreateLayer('线材')
XC.ParentLayerId = ST.Id
## =============================
XC_L = CreateLayer('铝材',Cr.XC_L)
XC_L.ParentLayerId = XC.Id
XC_G = CreateLayer('钢材',Cr.XC_G)
XC_G.ParentLayerId = XC.Id
# 3.面板
MB = CreateLayer('面板')
MB.ParentLayerId = ST.Id
## =============================
MB_B = CreateLayer('玻璃',Cr.MB_B)
MB_B.ParentLayerId = MB.Id
MB_L = CreateLayer('铝板',Cr.MB_L)
MB_L.ParentLayerId = MB.Id
MB_S = CreateLayer('石材',Cr.MB_S)
MB_S.ParentLayerId = MB.Id
MB_BXG = CreateLayer('不锈钢',Cr.MB_BXG)
MB_BXG.ParentLayerId = MB.Id
# 4.加工件
JG = CreateLayer('加工件')
JG.ParentLayerId = ST.Id
## =============================
JG_MJ = CreateLayer('埋件',Cr.JG_MJ)
JG_MJ.ParentLayerId = JG.Id
JG_LJ = CreateLayer('连接件',Cr.JG_LJ)
JG_LJ.ParentLayerId = JG.Id
# Rhino 基础设置
def main():
SetLayers() # 图层管理
Rhino.RhinoApp.WriteLine('[DONE] 图层设置')
# 运行
main()
网友评论