美文网首页
rhino 从入门到放弃 - 绘图环境 - 图层管理

rhino 从入门到放弃 - 绘图环境 - 图层管理

作者: 游戏终 | 来源:发表于2023-12-20 10:22 被阅读0次

绘图环境

未完成:
二维图纸的图层管理
尺寸标注样式
  • 图层管理
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()

相关文章

网友评论

      本文标题:rhino 从入门到放弃 - 绘图环境 - 图层管理

      本文链接:https://www.haomeiwen.com/subject/ywmtndtx.html