主要是基于达索软件Composer Player、的基础上做些二次开发。

 public class ComposerToolBarSetting
{
public bool AntiAliasingOnIdle { get; set; }//抗锯齿化
public bool AssySelectionMode { get; set; }//使能选择装配树
public bool AssySelectionModeViewportIndicator { get; set; }//装配树选择模式
public bool AutoKeyMode { get; set; }//使能自动键
public bool AutoPlay { get; set; } //自动播放
public bool BorderMask { get; set; }//在控件窗体应用border
public bool CameraInertia { get; set; }//照相机惯性模式
public bool CameraPlayMode { get; set; }//照相机播放模式
public bool GroundGrid { get; set; }//地面
public bool LoopPlay { get; set; }//循环播放
public bool NoHighlight { get; set; }//高亮显示
public bool RemoveMeasurementCommands { get; set; }//移除测量工具条
public bool RenderGroundShadow { get; set; }//渲染地面阴影
public bool ShowAnnotationToolBar { get; set; }//注释工具条
public bool ShowAssemblyTreeBar { get; set; }//装配树
public bool ShowBomTreeBar { get; set; }//BOM树
public bool ShowCameraToolBar { get; set; }//照相机工具条
public bool ShowCameraViewToolBar { get; set; }//照相机视图工具条
public bool ShowCollabToolBar { get; set; }//协同工具条
public bool ShowCollabTreeBar { get; set; }//协同树
public bool ShowCuttingPlaneToolBar { get; set; }//剖切工具条
public bool ShowGeometryToolBar { get; set; }//几何图形工具条
public bool ShowMain3DToolBar { get; set; }//主要3D工具条
public bool ShowMarkerBar { get; set; }//标记工具条
public bool ShowMeasurementToolBar { get; set; }//测量工具条
public bool ShowPaper { get; set; }//显示白纸页面
public bool ShowPropertyBar { get; set; }//属性
public bool ShowRedlineToolBar { get; set; }//红线工具条
public bool ShowRenderToolBar { get; set; }//渲染工具条
public bool ShowStandardToolBar { get; set; }//标准工具条
public bool ShowStatusBar { get; set; }//状态条
public bool ShowTimelineBar { get; set; }//时间线
public bool ShowTreesBar { get; set; }//树
public bool ShowViewBar { get; set; }//视图条
public bool ShowVisibilityToolBar { get; set; }//可见性工具条
public bool UseGUID { get; set; }//是否返回GUID }

Composer 工具栏

 public class ComposerManager
{
/// <summary>
/// 设置控件的属性
/// </summary>
/// <param name="player">控件的名字</param>
public static void SetComposerPlayerToolsBar(AxDS3DVIAPlayerActiveXLib.AxDS3DVIAPlayerActiveX player)
{
player.AntiAliasingOnIdle = GetCompserPlayerToolBar().AntiAliasingOnIdle;
player.AssySelectionMode = GetCompserPlayerToolBar().AssySelectionMode;
player.AssySelectionModeViewportIndicator = GetCompserPlayerToolBar().AssySelectionModeViewportIndicator;
player.AutoKeyMode = GetCompserPlayerToolBar().AutoKeyMode;
player.AutoPlay = GetCompserPlayerToolBar().AutoPlay;
player.BorderMask = GetCompserPlayerToolBar().BorderMask;
player.CameraInertia = GetCompserPlayerToolBar().CameraInertia;
player.CameraPlayMode = GetCompserPlayerToolBar().CameraPlayMode;
player.GroundGrid = GetCompserPlayerToolBar().GroundGrid;
player.LoopPlay = GetCompserPlayerToolBar().LoopPlay;
player.NoHighlight = GetCompserPlayerToolBar().NoHighlight;
player.RemoveMeasurementCommands = GetCompserPlayerToolBar().RemoveMeasurementCommands;
player.RenderGroundShadow = GetCompserPlayerToolBar().RenderGroundShadow;
player.ShowAnnotationToolBar = GetCompserPlayerToolBar().ShowAnnotationToolBar;
player.ShowAssemblyTreeBar = GetCompserPlayerToolBar().ShowAssemblyTreeBar;
player.ShowBOMTreeBar = GetCompserPlayerToolBar().ShowBomTreeBar;
player.ShowCameraToolBar = GetCompserPlayerToolBar().ShowCameraToolBar;
player.ShowCameraViewToolBar = GetCompserPlayerToolBar().ShowCameraViewToolBar;
player.ShowCollabToolBar = GetCompserPlayerToolBar().ShowCollabToolBar;
player.ShowCollabTreeBar = GetCompserPlayerToolBar().ShowCollabTreeBar;
player.ShowCuttingPlaneToolBar = GetCompserPlayerToolBar().ShowCuttingPlaneToolBar;
player.ShowGeometryToolBar = GetCompserPlayerToolBar().ShowGeometryToolBar;
player.ShowMain3DToolBar = GetCompserPlayerToolBar().ShowMain3DToolBar;
player.ShowMarkerBar = GetCompserPlayerToolBar().ShowMarkerBar;
player.ShowMeasurementToolBar = GetCompserPlayerToolBar().ShowMeasurementToolBar;
player.ShowPaper = GetCompserPlayerToolBar().ShowPaper;
player.ShowPropertyBar = GetCompserPlayerToolBar().ShowPropertyBar;
player.ShowRedlineToolBar = GetCompserPlayerToolBar().ShowRedlineToolBar;
player.ShowRenderToolBar = GetCompserPlayerToolBar().ShowRenderToolBar;
player.ShowStandardToolBar = GetCompserPlayerToolBar().ShowStandardToolBar;
player.ShowStatusBar = GetCompserPlayerToolBar().ShowStatusBar;
player.ShowTimelineBar = GetCompserPlayerToolBar().ShowTimelineBar;
player.ShowTreesBar = GetCompserPlayerToolBar().ShowTreesBar;
player.ShowViewBar = GetCompserPlayerToolBar().ShowViewBar;
player.ShowVisibilityToolBar = GetCompserPlayerToolBar().ShowVisibilityToolBar;
player.UseGUID = GetCompserPlayerToolBar().UseGUID;
} /// <summary>
/// 将字符类型转化为Boolen类型
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
static bool StringToBool(string str)
{
bool result = false;
if (str != null)
{
if (str == "false")
{
result = false;
}
else if (str == "true")
{
result = true;
}
}
return result;
} /// <summary>
/// 将Boolen类型转化为字符类型
/// </summary>
/// <param name="result"></param>
/// <returns></returns>
static string BoolToString(bool result)
{
string str = "";
if (result)
{
str = "true";
}
else
{
str = "false";
}
return str;
} /// <summary>
/// 读取app.config里的key对应的值,并赋值给ComposerToolBarSetting类
/// </summary>
/// <returns></returns>
public static ComposerToolBarSetting GetCompserPlayerToolBar()
{
ComposerToolBarSetting set = new ComposerToolBarSetting(); set.AntiAliasingOnIdle = StringToBool(AppConfigManager.GetValue("AntiAliasingOnIdle", ConfigFileType.AppConfig));
set.AssySelectionMode=StringToBool(AppConfigManager.GetValue("AssySelectionMode",ConfigFileType.AppConfig));
set.AssySelectionModeViewportIndicator = StringToBool(AppConfigManager.GetValue("AssySelectionModeViewportIndicator", ConfigFileType.AppConfig));
set.AutoKeyMode = StringToBool(AppConfigManager.GetValue("AutoKeyMode", ConfigFileType.AppConfig));
set.AutoPlay = StringToBool(AppConfigManager.GetValue("AutoPlay", ConfigFileType.AppConfig));
set.BorderMask = StringToBool(AppConfigManager.GetValue("BorderMask", ConfigFileType.AppConfig));
set.CameraInertia = StringToBool(AppConfigManager.GetValue("CameraInertia", ConfigFileType.AppConfig));
set.CameraPlayMode = StringToBool(AppConfigManager.GetValue("CameraPlayMode", ConfigFileType.AppConfig));
set.GroundGrid = StringToBool(AppConfigManager.GetValue("GroundGrid", ConfigFileType.AppConfig));
set.LoopPlay = StringToBool(AppConfigManager.GetValue("LoopPlay", ConfigFileType.AppConfig));
set.NoHighlight = StringToBool(AppConfigManager.GetValue("NoHighlight", ConfigFileType.AppConfig));
set.RemoveMeasurementCommands = StringToBool(AppConfigManager.GetValue("RemoveMeasurementCommands", ConfigFileType.AppConfig));
set.RenderGroundShadow = StringToBool(AppConfigManager.GetValue("RenderGroundShadow", ConfigFileType.AppConfig));
set.ShowAnnotationToolBar = StringToBool(AppConfigManager.GetValue("ShowAnnotationToolBar", ConfigFileType.AppConfig));
set.ShowAssemblyTreeBar = StringToBool(AppConfigManager.GetValue("ShowAssemblyTreeBar", ConfigFileType.AppConfig));
set.ShowBomTreeBar = StringToBool(AppConfigManager.GetValue("ShowBOMTreeBar", ConfigFileType.AppConfig));
set.ShowCameraToolBar = StringToBool(AppConfigManager.GetValue("ShowCameraToolBar", ConfigFileType.AppConfig));
set.ShowCameraViewToolBar = StringToBool(AppConfigManager.GetValue("ShowCameraViewToolBar", ConfigFileType.AppConfig));
set.ShowCollabToolBar = StringToBool(AppConfigManager.GetValue("ShowCollabToolBar", ConfigFileType.AppConfig));
set.ShowCollabTreeBar = StringToBool(AppConfigManager.GetValue("ShowCollabTreeBar", ConfigFileType.AppConfig));
set.ShowCuttingPlaneToolBar = StringToBool(AppConfigManager.GetValue("ShowCuttingPlaneToolBar", ConfigFileType.AppConfig));
set.ShowGeometryToolBar = StringToBool(AppConfigManager.GetValue("ShowGeometryToolBar", ConfigFileType.AppConfig));
set.ShowMain3DToolBar = StringToBool(AppConfigManager.GetValue("ShowMain3DToolBar", ConfigFileType.AppConfig));
set.ShowMarkerBar = StringToBool(AppConfigManager.GetValue("ShowMarkerBar", ConfigFileType.AppConfig));
set.ShowMeasurementToolBar = StringToBool(AppConfigManager.GetValue("ShowMeasurementToolBar", ConfigFileType.AppConfig));
set.ShowPaper = StringToBool(AppConfigManager.GetValue("ShowPaper", ConfigFileType.AppConfig));
set.ShowPropertyBar = StringToBool(AppConfigManager.GetValue("ShowPropertyBar", ConfigFileType.AppConfig));
set.ShowRedlineToolBar = StringToBool(AppConfigManager.GetValue("ShowRedlineToolBar", ConfigFileType.AppConfig));
set.ShowRenderToolBar = StringToBool(AppConfigManager.GetValue("ShowRenderToolBar", ConfigFileType.AppConfig));
set.ShowStandardToolBar = StringToBool(AppConfigManager.GetValue("ShowStandardToolBar", ConfigFileType.AppConfig));
set.ShowStatusBar = StringToBool(AppConfigManager.GetValue("ShowStatusBar", ConfigFileType.AppConfig));
set.ShowTimelineBar = StringToBool(AppConfigManager.GetValue("ShowTimelineBar", ConfigFileType.AppConfig));
set.ShowTreesBar = StringToBool(AppConfigManager.GetValue("ShowTreesBar", ConfigFileType.AppConfig));
set.ShowViewBar = StringToBool(AppConfigManager.GetValue("ShowViewBar", ConfigFileType.AppConfig));
set.ShowVisibilityToolBar = StringToBool(AppConfigManager.GetValue("ShowVisibilityToolBar", ConfigFileType.AppConfig));
set.UseGUID = StringToBool(AppConfigManager.GetValue("UseGUID", ConfigFileType.AppConfig)); return set;
}
}

Composer 工具栏配置

 public class ComposerTreeView
{
//建立xml的路径
string xmlpath = AppDomain.CurrentDomain.BaseDirectory + "21.Xml";
//判断字符是否为中文
static bool IsChinese(string CString)
{
return Regex.IsMatch(CString, @"^[\u4e00-\u9fa5]+$");
}
/// <summary>
/// 创建头结点和下一级节点
/// </summary>
/// <param name="player">控件的名称</param>
/// <param name="treeview">TreeView的名字</param>
public static void CreateFirstNode(AxDS3DVIAPlayerActiveXLib.AxDS3DVIAPlayerActiveX player,TreeView treeview)
{
var rnode = new TreeNode();
string rootstr = player.GetAssyRoot();
string[] RArray = rootstr.Split('"');
foreach (var item in RArray)
{
if ( item.Length == && IsChinese(item) )
{
TreeNode node = new TreeNode();
node.Text = item;
rnode.Nodes.Add(node);
}
}
treeview.Nodes.Add(rnode);
} /// <summary>
/// 建立xml信息
/// </summary>
/// <param name="xmlname">xml文件的名字</param>
private void FillXml(string xmlname)
{
if (File.Exists(xmlpath))
{
File.Delete(xmlpath);
}
XElement root = XElement.Parse(xmlname);
root.Save(xmlpath);
} /// <summary>
/// 将子节点添加到父节点
/// </summary>
/// <param name="tnode">子节点</param>
/// <param name="parentnode">父节点</param>
private void addTreeNode(TreeNode tnode, TreeNode parentnode)
{
parentnode.Nodes.Add(tnode);
} List<TreeNode> nodelist = new List<TreeNode>();
/// <summary>
///返回选中节点下的子节点名字集合
/// </summary>
/// <param name="player">控件的名字</param>
/// <param name="treeview">TreeView的名字</param>
/// <returns></returns>
private List<TreeNode> createTreeNode(AxDS3DVIAPlayerActiveXLib.AxDS3DVIAPlayerActiveX player, TreeView treeview)
{
List<string> childlist = new List<string>();
string childname = treeview.SelectedNode.Text;
if (childname != null)
{
string childrenstr = player.GetAssyChild(CLitSelectionName(childname));
FillXml(childrenstr);
XDocument doc = XDocument.Load(xmlpath);
var query = from fx in doc.Descendants("CLitModifiable")
select new
{
NodeName = fx.Attribute("Name").Value
};
foreach (var item in query)
{
TreeNode node1 = new TreeNode();
node1.Text = item.NodeName;
if (!nodelist.Contains(node1))
{
nodelist.Add(node1);
}
}
}
return nodelist;
} /// <summary>
/// 准备好选择对象的字符串
/// </summary>
/// <param name="name">指定对象的名字</param>
/// <returns></returns>
static string CLitSelectionName(string name)
{
return "<CLitSelection Name='' ><CLitModifiable Name='" + name + "'/></CLitSelection>";
} /// <summary>
/// 根据点击选择的节点,查询出其下面的子节点信息
/// </summary>
/// <param name="player"></param>
/// <param name="treeview"></param>
public void TreeViewAfterSelect(AxDS3DVIAPlayerActiveXLib.AxDS3DVIAPlayerActiveX player, TreeView treeview)
{
nodelist.Clear();
nodelist = createTreeNode(player, treeview);
var parent = from fx in nodelist select fx;
treeview.SelectedNode.Nodes.Clear();
foreach (var item in parent)
{
TreeNode node = new TreeNode();
node.Text = item.Text;
if (!treeview.SelectedNode.Nodes.Contains(node))
{
treeview.SelectedNode.Nodes.Add(node);
}
}
treeview.ExpandAll();
}
}

自定义结构树设置

基于Composer Player 模型加载和相关属性设置的更多相关文章

  1. 【spring bean】spring中bean的懒加载和depends-on属性设置

    项目结构如下: ResourceBean.java代码: package com.it.res; import java.io.File; import java.io.FileNotFoundExc ...

  2. 【Dojo 1.x】笔记7 配置对象dojoConfig的内容1:has属性、加载器的属性

    说完了出身,即出身自dojo/_base/目录下的config模块,那就要好好讲讲这对象有什么可以写的属性了. 1. has属性 官方说是用于更好的特征检测的,具体有什么用现在还不得知. 例如: &l ...

  3. composer 实现自动加载原理

    简介 一般在框架中都会用到composer工具,用它来管理依赖.其中composer有类的自动加载机制,可以加载composer下载的库中的所有的类文件.那么composer的自动加载机制是怎么实现的 ...

  4. DirectX11 With Windows SDK--19 模型加载:obj格式的读取及使用二进制文件提升读取效率

    前言 一个模型通常是由三个部分组成:网格.纹理.材质.在一开始的时候,我们是通过Geometry类来生成简单几何体的网格.但现在我们需要寻找合适的方式去表述一个复杂的网格,而且包含网格的文件类型多种多 ...

  5. 深入解析 composer 的自动加载原理 (转)

    深入解析 composer 的自动加载原理 转自:https://segmentfault.com/a/1190000014948542 前言 PHP 自5.3的版本之后,已经重焕新生,命名空间.性状 ...

  6. OpenGL OBJ模型加载.

    在我们前面绘制一个屋,我们可以看到,需要每个立方体一个一个的自己来推并且还要处理位置信息.代码量大并且要时间.现在我们通过加载模型文件的方法来生成模型文件,比较流行的3D模型文件有OBJ,FBX,da ...

  7. Composer 的自动加载机制

    Composer 的自动加载机制 Composer 提供了四种自动加载方式,分别是 PSR-0.PSR-4.生成 classmap 以及之间包含 files. PSR-0 方式 PSR-0 方式要求目 ...

  8. 详解composer的自动加载机制

    composer是一个用PHP开发的用来管理项目依赖的工具,当你在项目中声明了依赖关系后,composer可以自动帮你下载和安装这些依赖库,并实现自动加载代码. 安装composer composer ...

  9. CC模型加载太慢?一招破解!

    伴随无人机性能的提升,单个项目涉及到的倾斜摄影数据范围不断扩大,模型的数据量越来越大,在同配置机器上的显示速度也相应的越来越慢,那么如何在不升级配置的情况下提升模型的加载速度呢? 01 百GB倾斜摄影 ...

随机推荐

  1. 【.net 深呼吸】细说CodeDom(6):方法参数

    本文老周就给大伙伴们介绍一下方法参数代码的生成. 在开始之前,先补充一下上一篇烂文的内容.在上一篇文章中,老周检讨了 MemberAttributes 枚举的用法,老周此前误以为该枚举不能进行按位操作 ...

  2. 说说Makefile那些事儿

    说说Makefile那些事儿 |扬说|透过现象看本质 工作至今,一直对Makefile半知半解.突然某天幡然醒悟,觉得此举极为不妥,只得洗心革面从头学来,以前许多不明觉厉之处顿时茅塞顿开,想想好记性不 ...

  3. session实现购物车

    为实现简单的购物功能(购物车添加.账户查看.购物车商品删除.实时的购物商品数量及价格的计算显示.购物车商品数量可手动输入等),用session实现了一简单的以php语言为基础.连接MySQL数据库的购 ...

  4. ASP.NET Core 中间件之压缩、缓存

    前言 今天给大家介绍一下在 ASP.NET Core 日常开发中用的比较多的两个中间件,它们都是出自于微软的 ASP.NET 团队,他们分别是 Microsoft.AspNetCore.Respons ...

  5. 使用Visual Studio SDK制作GLSL词法着色插件

    使用Visual Studio SDK制作GLSL词法着色插件 我们在Visual Studio上开发OpenGL ES项目时,避免不了写Shader.这时在vs里直接编辑shader就会显得很方便. ...

  6. macOS 我的装机

    最近多次配置 Mac 的开发环境,稍微记录一下 1 创建无付费信息的Apple ID 2 Xcode ​ gem 源更改 3 Alfred 4 微信 5 SourceTree 6 Sublime Te ...

  7. xpath提取多个标签下的text

    title: xpath提取多个标签下的text author: 青南 date: 2015-01-17 16:01:07 categories: [Python] tags: [xpath,Pyth ...

  8. 多线程爬坑之路-Thread和Runable源码解析

    多线程:(百度百科借一波定义) 多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术.具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提 ...

  9. Unity3D框架插件uFrame实践记录(一)

    1.概览 uFrame是提供给Unity3D开发者使用的一个框架插件,它本身模仿了MVVM这种架构模式(事实上并不包含Model部分,且多出了Controller部分).因为用于Unity3D,所以它 ...

  10. CacheManager:–个通用缓存接口抽象类库

    CacheManager是–个缓存通用接口抽象类库,它支持各种高速缓存提供者,例如Memcache,Redis,并且有许多先进的功能特性.具体可以访问官方网站  http://cachemanager ...