分享E3参数化建模新手集合
练习01 随机彩色圆柱
总体生成思路
程序从 “E3 图龙 003” 模块开始,通过双重循环(For Loop)控制生成圆柱体的数量和布局。在循环内部,利用多个Random模块生成随机数,来确定圆柱体在平面上的位置(X、Y 坐标)、高度(Z 坐标)、半径以及颜色。接着,依据这些随机参数,通过Point3模块创建三维点,结合GET Vector3.ZAxis获取的 Z 轴向量,利用Plane模块创建平面,再使用CreatePolygon模块在平面上创建多边形(近似圆形底面),随后通过CreateExtrude模块将多边形拉伸成圆柱体。最后,利用RGBColor模块生成随机颜色,由Display模块将所有生成的圆柱体进行可视化展示。
模块用途
| 模块名称 | 用途 |
|---|---|
| E3 图龙 003 | 作为程序的起始模块,用于触发整个流程或者提供初始的全局参数等,是整个程序运行的起点。 |
| For Loop(第一个) | 设置外层循环,起始值为 0,步长为 2,循环到 30 结束。用于控制生成圆柱体在 x 维度上的布局数量和迭代次数。 |
| For Loop(第二个) | 设置内层循环,起始值为 0,步长为 2,循环到 30 结束。与第一个For Loop配合,在内层进一步细化布局,控制生成圆柱体在 y 维度上的数量和迭代情况。 |
| Random(X、Y 坐标相关) | 生成范围在 -1 到 1 的随机数,用于确定圆柱体在平面上 X、Y 方向的随机位置。 |
| Random(Z 坐标相关) | 生成范围在 0.2 到 0.8 的随机数,用来确定圆柱体的随机高度。 |
| Random(半径相关) | 生成范围在 0.5 到 0.8 的随机数,用于设定圆柱体底面半径大小。 |
| Random(颜色相关) | 生成范围在 50 到 255 的随机数,用于确定圆柱体颜色的分量。 |
| Point3 | 根据传入的 X、Y、Z 坐标值创建三维空间中的点,为后续创建平面和几何体提供位置信息。 |
| GET Vector3.ZAxis | 获取三维空间中 Z 轴的方向向量,用于确定平面的法向量方向等与方向相关的操作。 |
| Plane | 根据传入的原点坐标(origin)和法向量(normal,此处使用GET Vector3.ZAxis获取的 Z 轴向量 )创建一个平面,作为后续创建多边形的基础平面。 |
| CreatePolygon | 在指定平面(plane)上,按照给定的半径(radius)和分段数(segments,这里为 48 )创建一个多边形,近似于圆形,作为圆柱体的底面。 |
| CreateExtrude | 将CreatePolygon创建的多边形(边界boundary ),沿着指定方向(direction,此处用 Z 轴方向 )拉伸,生成三维的圆柱体。 |
| RGBColor | 根据传入的红(r)、绿(g)、蓝(b)分量值创建颜色对象,这里绿色和蓝色分量固定为 0,红色分量由随机数确定,用于设置圆柱体的颜色。 |
| Display | 将生成的所有圆柱体对象(objects)进行可视化展示,可设置是否清除之前内容(clear )以及显示颜色(color )等属性。 |
/
/
/
练习02 动态螺旋点阵

总体生成思路
程序从“图龙新手练习”模块触发起始信号,通过“For 循环”模块设定从0到100、步长为1的循环迭代过程。在每次循环中,利用“MathHelper求正弦值”和“MathHelper求余弦值”模块对循环计数等数值进行数学运算,再结合乘法模块进一步处理数值。通过这些运算结果,使用“Point3”模块创建三维点坐标,进而确定“Circle”模块所定义圆的中心点位置及相关参数。循环过程中,通过“暂停执行”模块控制每轮迭代的时间间隔为100毫秒,最后利用“Display”模块将创建的圆等对象进行可视化展示。
运算模块及解释说明
| 模块名称 | 用途 | 参数说明 |
|---|---|---|
| 图龙新手练习 | 作为程序的起始模块,触发整个流程 | 无 |
| For 循环 | 设置循环,控制迭代次数。起始值为0,停止值为100,步长为1 | start:循环起始值,取值0;stop:循环停止值,取值100;step:循环步长,取值1 |
| Sleep 暂停执行 | 暂停程序执行,控制执行节奏,暂停时间为100毫秒 | ms:暂停时间,取值100 |
| Display | 可视化展示对象,可设置是否清除之前对象及显示颜色 | objects:要展示的对象;clear:是否清除之前对象,默认false;color:显示颜色,可设置 |
| Circle | 根据中心点和半径创建圆 | center:圆的中心点(三维点);radius:圆的半径 |
| Point3 | 根据x、y、z坐标值创建三维空间中的点 | x:x坐标值;y:y坐标值;z:z坐标值 |
| 乘法模块(多个) | 对输入数值进行乘法运算,用于数据处理 | 输入数值1、输入数值2等,具体根据连接的输入数据而定 |
| MathHelper求正弦值 | 对输入值求正弦值,用于数学计算 | val:输入数值 |
| MathHelper求余弦值 | 对输入值求余弦值,用于数学计算 | val:输入数值 |
| > input(数值比较模块) | 将输入值与5进行比较,输出布尔值结果 | input:输入数值,本程序中取值5 |

升级版 总体生成思路
从 main2 模块启动流程,核心靠双重循环驱动动态动画:外层 For 循环作为 “帧控制器”,每轮迭代对应动画一 “帧”,迭代时先通过 “清空列表” 模块删掉上一帧数据,保证画面不叠加;内层 For 循环在每帧内运行,利用数学运算、点创建等模块生成该帧所需图形元素(如点、圆 )。
每帧元素生成后,“暂停执行” 模块控制帧间间隔(类似 sleep 定速),接着 Display 模块渲染当前帧画面。如此循环,外层循环逐帧切换、内层循环填充单帧内容、清空旧帧 + 暂停控速 + 实时渲染,让图像实现 “一帧一更新” 的动态变化效果,替代上一版元素叠加模式,达成画面动态更替。
相关项目文件:
图龙新手练习.zip (28.3 KB)



