首页 > 其他分享 >Civil 3d 创建装配并添加、镜像部件

Civil 3d 创建装配并添加、镜像部件

时间:2023-10-27 09:36:35浏览次数:52  
标签:ass Civil 部件 subAssId1 descending var 镜像 Subassembly 3d

英文论坛中有人提的问题

问题我也看不懂,

就截图回复了一下,

后来他进一步描述了问题,

我大致清楚了,

虽然我之前使用代码创建装配并添加过部件,

但之前的操作仅添加一个部件,

如何添加更多的部件并镜像部件,

确实没有尝试过,

于是试着写了以下测试代码,

分享给大家。

public void C_AssTest()
{

    Document doc = Application.DocumentManager.MdiActiveDocument;

    var assId = CivilApplication.ActiveDocument.AssemblyCollection.Add("Test", AssemblyType.UndividedCrownedRoad, Point3d.Origin);
    var subAssId1 = CivilApplication.ActiveDocument.SubassemblyCollection.ImportStockSubassembly("BaseLane", "Subassembly.BasicLane", Point3d.Origin);
    var subAssId2 = CivilApplication.ActiveDocument.SubassemblyCollection.ImportStockSubassembly("ShapeTrapezoidal", "Subassembly.ShapeTrapezoidal", Point3d.Origin);

    using (Transaction tr = doc.TransactionManager.StartTransaction())
    {
        var ass = assId.GetObject(OpenMode.ForWrite) as Assembly;
        var assGroup1 = ass.AddSubassembly(subAssId1);
        assGroup1.Name = "Right";

        var assgroup2 = ass.MirrorSubassembly(subAssId1);
        assgroup2.Name = "Left";

        var subAss1 = subAssId1.GetObject(OpenMode.ForRead) as Subassembly;
        var subAss2 = assgroup2.GetSubassemblyIds()[0].GetObject(OpenMode.ForRead) as Subassembly;

        // Find Right Top Point
        var pt1 = (from x in subAss1.Points
                   orderby x.Offset descending, x.Elevation descending
                   select x).First();
        // add Second Subassembly to Right Group
        if (pt1 != null)
        {
            ass.AddSubassembly(subAssId2, pt1);
        }
        var pt2 = (from x in subAss2.Points
                   orderby x.Offset descending, x.Elevation descending
                   select x).First();
        if (pt2 != null)
        {
            ass.MirrorSubassembly(subAssId2, pt2);
        }
        tr.Commit();
    }
}

 

运行结果如下:

 

标签:ass,Civil,部件,subAssId1,descending,var,镜像,Subassembly,3d
From: https://www.cnblogs.com/myzw/p/17791029.html

相关文章

  • 3DCAT+东风日产:共建线上个性化订车实时云渲染方案
    近年来,随着5G网络和云计算技术的不断发展,交互式3D实时云看车正在成为一种新的看车方式。与传统的到4S店实地考察不同,消费者可以足不出户,通过网络与终端设备即可实现全方位展示、自选汽车配色、模拟效果、快捷选车并进行个性化定制。3DCAT实时渲染云作为一家专注于为汽车行业提供......
  • Python 43days
    Python操作Mysql***SQL注入问题  安全相关视图 触发器  事务 ***存储过程   类似于自定义函数内置函数   流程控制索引***—————————————————————————————————————————————————————————......
  • macOS Sonoma 14.1正式版(23B74)发布(可下载黑白苹果镜像)
    系统介绍黑果魏叔苹果今天为macOSSonoma推出了14.1版本更新,魏叔发现,本更新主要改善了AppleMusic 界面,设置中新增保修状态,并修复了多项错误内容。根据苹果的新说明,这次的Mac更新不仅提供了一系列的改善,也解决了多项问题,并强化了系统安全性。以下是一些主要的更新内容:「音......
  • cesium 加载3dtiles
    注意cesium版本问题,还有这个是异步加载,定位到该模型时要加个延时settimeout效果 代码如下//3dtiles  functionaddThreeDTiles(url,option){    //开启地形深度检测:    //控制在渲染场景时,相机是否进行深度测试以避免将被遮挡的物体绘制在前......
  • macOS Sonoma 14.1 (23B74) 正式版 Boot ISO 原版可引导镜像下载
    macOSSonoma14.1(23B74)正式版BootISO原版可引导镜像下载本站下载的macOS软件包,既可以拖拽到Applications(应用程序)下直接安装,也可以制作启动U盘安装,或者在虚拟机中启动安装。另外也支持在Windows和Linux中创建可引导介质。请访问原文链接:https://sysin.org/blog......
  • Unity 3D定点数物理引擎实战系列
    1.1 BEPUphysicsint3D定点数物理引擎介绍 帧同步的游戏中如果用物理引擎,为了保证不同设备上的结果一致,需要采用定点数来计算迭代游戏过程中的物理运算。也就是我们通常说的定点数物理引擎(确定性物理引擎)。本系列教程给大家详细的讲解如何在你的项目中内置一个确定性物理引......
  • Unity 3D定点数物理引擎实战系列2
    1.2 BEPUphysicsint定点数3D物理引擎使用上一节給大家介绍了BEPUphysicsint的一些基本的情况,这节课我们来介绍它的基本使用,本节主要从以下5个方面来介绍:(1) 创建一个物理世界Space,并开启模拟迭代;(2) 添加一个物理物体Entity到世界;(3) 物理引擎的基本处理与操作使用;(......
  • 从DETR到DETR3D(1)
    最近参加了手写ai的车道线检测项目,后续会更新一些文章展现对相关项目邻域的总结和理解。一 DETR的原理DETR输出是定长的:100个检测框和类别。这种操作可能跟COCO评测的时候取top100的框有关,从这种角度看,DETR可以被认为具有100个adaptiveanchor,其中Encoder和ObjectQuery分别对......
  • 【记录10】华为云耀云服务器L实例-使用Docker拉取nginx镜像的部署示例
     Docker 是一个开源平台,用于开发、运输和运行应用程序。它使用容器化技术来包装应用程序及其依赖项,以便在任何环境中都能一致地运行。简单来说,Docker 可以将应用程序及其所有依赖项打包成一个容器,这样就可以确保它无论在哪里运行都表现一致。 ### Docker 的主要组件:1.......
  • 华为镜像jdk,阿里maven地址
    https://repo.huaweicloud.com/java/jdk/maven仓库https://developer.aliyun.com/mirror/maven安装了maven,但在执行mvn-v或maven-versions时提示bash:maven:未找到命令...应该是环境变量出错,把MAVEN_HOME的路径换到PATH上就可以了,如下:exportJAVA_HOME=/usr/local/java......