当前位置: 首页 > news >正文

lego研发

ldr 乐高文件解析

LDView 渲染

用于乐高积木的 CAD
更多精彩内容

免费在线课程:RHEL 技术概述
学习高级 Linux 命令
下载备忘单
寻找开源替代品
阅读顶级 Linux 内容
查看开源资源
我在虚拟化 3D 空间中工作了几年(在实际 3D 空间中工作的时间更长,这是值得的)。我对 3D 应用程序很满意,但我使用的所有应用程序都是针对动态图形和电影制作的。它们就像电影本身一样,通常只是为了展示。与事物是否看起来不错相比,您如何构建事物并不重要。如果您必须“欺骗”物理上可能的东西以确保某些东西看起来很酷,那没关系,因为您正在构建的东西只存在于虚拟空间中。

计算机辅助设计 (CAD) 是不同的。CAD 软件取代了旧式绘图,其中创建规范以演示如何在现实世界中构建一次或 100 次。人们期望精确和现实。

因为乐高迷人数众多,所以有一个多产的建造者社区使用 CAD 创建乐高模型。优点是显而易见的——您可以记录您需要哪些部分以及构建模型必须采取的步骤。这不是真正的乐高积木的替代品,除非你比乐高更喜欢 CAD,但它对你的爱好是一个很好的补充。

要构建虚拟乐高模型,您需要两个组件:

虚拟乐高积木
CAD 应用程序
有几种方法可以满足每个要求,但我发现我更喜欢开源、模块化的方法。

虚拟乐高积木
您几乎可以获得从开源LDraw项目创建的所有乐高积木。LDraw 是LEGO CAD 的开放标准,其中包括一致的测量值和相对尺寸,以及用于确定积木方向的简单语言。作为 LDraw 定义积木工作的一部分,社区还提供了每块积木的 3D 模型。这意味着您可以以相对较小的下载量(42 MB 左右)下载数千个砖定义。

安装你的积木
虚拟积木很像网站上的图像或计算机上的字体——只要使用文件的应用程序知道在哪里可以找到它们,您就可以将它们保存在任何地方。在 Linux 上,将砖块放入/usr/share/LDRAW. 在 Windows 上,它们通常安装到C:\Users\Public\Documents\LDraw.

LDraw 下载仅提供每块砖的规格。这是原始形式的 1x1 砖块的样子:

0 ~Brick 1 x 1 无正面
0 名称:s\3005s01.dat
0 作者:John Riley [jriley]
0 !LDRAW_ORG 子部分更新 2004-01
0 !LICENSE 可在 CCAL 2.0 版下再分发:参见 CAreadme.txt

0 BFC CERTIFY CCW

0 BFC INVERTNEXT
1 16 0 24 0 0 0 6 0 -20 0 -6 0 0 box5.dat
4 16 10 24 -10 6 24 -6 6 24 6 10 24 10
4 16 10 24 10 6 24 6 -6 24 6 -10 24 10
4 16 -10 24 10 -6 24 6 -6 24 -6 -10 24 -10
4 16 -10 24 -10 -6 24 -6 6 24 -6 10 24 -10
1 16 0 24 0 10 0 0 0 -24 0 0 0 10 box4t.dat
1 16 0 0 0 0 0 1 0 1 0 -1 0 0 stud.dat
0
为了以更熟悉的形式查看您的作品,您需要一个砖块查看器。

用于乐高渲染的 LDView
应用程序LDView是一个 3D 渲染器,很像POVray或 Blender 的 Cycles。它专为渲染.ldr文件而设计,这些文件是使用 LDraw 零件定义的 CAD 文件。

如果您在 Linux 上,那么 LDview 可能在您的软件存储库中可用,如果没有,那么您可以从项目网站下载安装程序。如果您使用的是 Mac 或 Windows,请从项目网站下载安装程序。

查看单个砖块
开始使用 LEGO CAD 的最简单方法是尝试查看单个积木。

首先,打开您喜欢的文本编辑器。它可以是任何文本编辑器,但它必须能够以纯文本形式保存。一些文本编辑器对他们自己的好处太有用了,并尝试将您的文本保存为臃肿的文件格式(如 .rtf 或 .docx)。那里有许多优秀的跨平台文本编辑器。为此,我推荐相对简约的Geany编辑器。

创建一个名为的新文件1brick.ldr并在其中输入以下文本:

0 名称:1brick.ldr
0 作者:Seth Kenlon

0 clr xyz abc def ghi <文件>
1 1 0 0 0 0 0 1 0 1 0 -1 0 0 3001.dat
查看您卑微的创作:

$ LDView 1brick.ldr
一块青砖
您刚刚创建了一个简单的 CAD 文件,它定义了一个砖块(部件号 3001),颜色索引为 1(蓝色),位于 X 轴坐标 0、Y 轴坐标 0 和 Z 轴坐标 0 . 砖块的旋转由矩阵变换控制,诚然,这并不是微不足道的数学运算。然而,对于乐高积木,任意旋转相对较少,因为大多数积木必须根据螺柱网格拼合在一起。

任何以 0 开头的行都表示注释或元数据。以 1 开头的行表示添加了一块砖。

您可以通过添加到 CAD 文件来练习在空间中重新定位和旋转砖块。一块普通的砖有 24 个 LDraw 单位 (LDU) 高。因此,您可以通过将积木的 Y 轴位置调整 24 个单位来“堆叠”积木。您可以通过执行矩阵变换来旋转砖块。

尝试这个:

0 名称:1brick.ldr
0 作者:Seth Kenlon

0 clr xyz abc def ghi 文件
1 1 0 0 0 0 0 1 0 1 0 -1 0 0 3001.dat
1 2 0 24 0 -1 0 0 0 1 0 0 0 -1 3001.dat
在 LDView 中查看它,并尝试在窗口中单击并拖动以从不同角度查看它。请注意,我已将第二块砖的颜色从 1(蓝色)更改为 2(绿色)。

一青一青砖
当然,您可以沿任何轴移动积木。LDraw 规范规定 1x1 砖的宽度为 20 LDU,长度为 20 LDU,因此您可以沿 X 增加 20 来调整您的 2 砖设计。

0 名称:1brick.ldr
0 作者:Seth Kenlon

0 clr xyz abc def ghi 文件
1 1 0 0 0 0 0 1 0 1 0 -1 0 0 3001.dat
1 2 0 24 0 -1 0 0 0 1 0 0 0 -1 3001.dat
蓝色和绿色砖连接
砖的顺序
LDraw 最常见的用途是演示如何构建模型。这意味着一系列步骤,LDraw 用元命令表示STEP。

要在您的说明中引入一个步骤,请添加以下行:

0 步
在您的简单 2 砖示例文件中,您可以在两个砖之间添加一个步骤:

0 名称:1brick.ldr
0 作者:Seth Kenlon

0 clr xyz abc def ghi 文件
1 1 0 0 0 0 0 1 0 1 0 -1 0 0 3001.dat

0 STEP

1 2 0 24 0 -1 0 0 0 1 0 0 0 -1 3001.dat
您的设计现在有两个步骤;第一个显示一个砖,第二个显示一个额外的砖。您可以通过单击顶部工具栏中“步骤”标签旁边的箭头来逐步执行 LDView 中的说明。

终端中的步骤菜单
您不必对每一块砖都迈出新的一步。与官方乐高套装的说明一样,您可以将几块额外的积木组合成一个步骤,只要它们的位置足够明显。

LDraw 中还有其他的命令类型,比如可以画线来明确砖的位置等等。这些都记录在规范中。

查找积木零件号
我过去常常将我的乐高系列收藏在钓具盒中,这样我就可以快速从任何套装中找到任何一件。然而,随着我的收藏越来越多,我对容器的需求也越来越大,我找到一块砖的效率也下降了。

拥有超过 11,000 个独特的零件,寻找数字乐高积木同样麻烦。每块官方乐高积木都有一个零件编号。例如,示例 CAD 文件中使用的 2x4 砖是 3001。如果您知道零件号,可以在 CAD 文件中使用它,砖就会出现。

LDraw 发行版包含该parts.lst文件,您可以通过grep搜索特定的砖块。然而,语法并不总是一致的,而且关键字(砖块是“弯曲的”、“倾斜的”还是“有角度的?”)有时很难预测。

但是,有一些在线资源可能有用:

Lugnet是一个在线乐高用户组,其零件参考数据库由 LDraw 构建。
BrickLink是一个有用的积木目录。
Rebrickable还具有砖块的在线目录。
其他渲染器
一旦你创建了你的杰作,LDView 可以导出你的模型,这样你就可以获得它的高质量渲染。POVray 是一种流行的开源照片级逼真渲染器,因此您可以获得非常漂亮的作品图像。您可以在 Linux 发行版的存储库中找到 POVray,或从POVray 网站下载。

$ povray +I1brick.pov +Q11 +W4196 +H2160 +O1brick-high.png
POVray 蓝色和绿色砖渲染
对于专门用于教学布局的渲染器,请尝试开源LPub3D项目,该项目显示完整的指令以及每个步骤的积木列表。

LPub 3d 蓝色和绿色砖渲染
探索乐高积木
用乐高积木搭建很有趣,制作自己的模型是它激发创造力的重要组成部分。不过,您自己的模型设计不必再是短暂的。您可以通过创建自己的说明手册来保存它们。

此外,玩数字乐高积木让您可以使用任何可用部件创建虚拟乐高模型和场景,无论您是否拥有该部件。您可以使用数字乐高积木制作您自己的动画、您自己的复杂场景照片,甚至设计您自己的积木。有几个在线社区,其中许多,如BrickHub.org,发布带有 LDraw 文件的漂亮渲染。

无论您喜欢以数字方式构建模型、设计自己的积木,还是做一些完全独特的事情,数字乐高场景都是一个有趣且富有创意的地方。今天就开始吧!

相关文章:

  • 面进百度,被这份阿里大能开源的“全彩版图解 HTTP 手册”折服了,要不怎么说还得是权威啊
  • wordcloud—根据文本生成词云—Python第三方库
  • YOLO系列解读(上)-----YOLOv1到YOLOv3梳理
  • 修改 MySQL 最大连接数
  • 【uni-app系列】uni-app从0到1开发实例
  • matlab编译.net dll及C#调用
  • 很多男性的瘦腰细腿比女性更骨感?原因告诉你,或许他们真没减肥
  • 每日一练--IT冷知识C/C++--第八天
  • 家用电器的检测项目和检测标准有哪些?
  • 迅为龙芯开发板系统编译安装pmoncfg
  • C++11 返回值优化、移动语义及函数返回值构造的重载决议
  • 数据湖:OPPO数据湖统一存储技术实践
  • vue3 setup(基础版)
  • 单例模式c++
  • 猿创征文|Highgo Database安全版安装指导手册
  • 【347天】每日项目总结系列085(2018.01.18)
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • Java反射-动态类加载和重新加载
  • jquery ajax学习笔记
  • Rancher-k8s加速安装文档
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 从重复到重用
  • 构造函数(constructor)与原型链(prototype)关系
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 一天一个设计模式之JS实现——适配器模式
  • 用jquery写贪吃蛇
  • 怎样选择前端框架
  • ​如何防止网络攻击?
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • #mysql 8.0 踩坑日记
  • #pragma once
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • (1)bark-ml
  • (4)(4.6) Triducer
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (附源码)php新闻发布平台 毕业设计 141646
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (转) ns2/nam与nam实现相关的文件
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • .NET 的程序集加载上下文
  • .NET框架
  • /run/containerd/containerd.sock connect: connection refused
  • @data注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • [ Linux 长征路第二篇] 基本指令head,tail,date,cal,find,grep,zip,tar,bc,unname
  • []AT 指令 收发短信和GPRS上网 SIM508/548
  • [20150904]exp slow.txt
  • [④ADRV902x]: Digital Filter Configuration(发射端)