如何做漫画网站,wordpress ffmpeg,邓州网站优化,免费咨询服务1 引言
现有3D生成模型#xff1a; 3D点云#xff1a;大量离散的3D点组成的数据表示形式#xff1b; 多边形网格#xff1a;一系列相连的多边形组成的3D模型#xff1b; 水平集场#xff1a;使用数值函数来表示物体的边界#xff0c;并根据函数值的正负来确定物体内部…1 引言
现有3D生成模型 3D点云大量离散的3D点组成的数据表示形式 多边形网格一系列相连的多边形组成的3D模型 水平集场使用数值函数来表示物体的边界并根据函数值的正负来确定物体内部和外部的区域
仅能创建3D形状的离散表示都缺少生成3D形状设计本质的能力—绘制过程。
作者提出了一个深度生成网络DeepCAD能够输出CAD工具如AutoCAD中用于构建3D形状的操作序列这是CAD模型的“绘制”过程。
这是CAD设计的生成模型的第一个工作挑战在于CAD设计的顺序和参数化性质。CAD模型由一系列几何操作例如曲线草图、拉伸、圆角、布尔、倒角组成每个操作由某些不规则的参数离散或连续控制。故以前开发的3D生成模型不适合CAD模型生成。
为了克服这些挑战需要寻求一种能够协调CAD模型中的不规则性的表示作者考虑最常用的CAD操作命令并将它们统一在一个公共结构中该结构对其命令类型、参数和序列顺序进行编码通过类比CAD命令序列和自然语言作者提出了一种基于Transformer网络的自编码器它将CAD模型嵌入到潜在空间中然后将潜在向量解码成CAD模型。【code】
为了训练这个自编码器作者还创建了一个新的CAD命令序列数据集以促进未来基于学习的CAD设计的研究。【dataset】
下图是DeepCAD的生成演示。 2 相关工作 参数化形状推断 深度学习的进步使得神经网络模型能够分析几何数据推断出参数化形状。具体工作如下 ParSeNet将3D点云分解为一组参数化的表面补丁。PIE-NET从3D点云中提取参数化的边界曲线。UV-Net 和 BrepNet专注于编码参数化模型的边界曲线和表面。Li等人训练了一种神经网络在合成数据上将2D用户草图转换为CAD操作。Xu等人应用神经引导搜索从参数化实心形状中推断出CAD建模序列。 3D形状生成模型 大多数现有方法生成离散形式的3D形状如体素化形状、点云、多边形网格、隐式签名距离场。生成的形状可能存在噪声缺乏锐利的几何特征不便于用户编辑。新方法使用神经网络模型生成3D形状作为一系列几何操作。 CSGNet基于体素化形状输入推断CSG操作序列。UCSG-Net无监督情况下推断CSG树。领域特定语言DSLs通过DSLs合成3D形状如ShapeAssembly。作者工作自编码器网络输出一系列CAD操作指定的CAD模型。CAD模型成为工业生产标准形状表示可以直接导入CAD工具进行用户编辑也可转换为点云和多边形网格。这是第一个直接生成CAD设计的生成模型。 基于Transformer的模型 Transformer网络作为基于注意力的构建模块成功应用于自然语言处理、图像处理和其他类型数据。并行工作在约束的CAD草图生成上也依赖于Transformer网络。 与作者工作相关的还有DeepSVG-用于生成可缩放矢量图SVG图像的Transformer网络。SVG图像由参数化原语如直线和曲线描述原语无特定顺序或依赖关系。 与SVG不同CAD命令在3D中描述可以是相互依赖的必须遵循特定顺序。所以需要寻求一种新的方法在基于Transformer的自编码器中编码CAD命令及其顺序。
3 方法
DeepCAD围绕对CAD命令序列的新表示方法3.1.2这种CAD表示方法特别适合于输入到神经网络中。此外这种表示法还引导出一个自然的训练目标函数3.4。为了训练DeepCAD作者创建了一个新数据集其规模远远大于同类数据集3.3。
3.1 神经网络的CAD表示
CAD 模型提供了两个层次的表示。 在用户交互层面CAD 模型被描述为用户在 CAD 软件中创建实心形状时执行的一系列操作例如用户在二维平面上绘制一个闭合曲线轮廓然后将其拉伸成三维实心形状再通过布尔运算等进行处理。我们将这种规范称为 CAD 命令序列。 在命令序列背后是 CAD 模型的内核表示广为人知的是边界表示B-rep。给定一个命令序列其 B-rep 会自动计算出来通常通过行业标准库 Parasolid。它由拓扑组件及其连接组成以形成一个实心形状。
我们的目标是生成 CAD 命令序列的模型而不是 B-rep。这是因为 B-rep 是命令序列的抽象命令序列可以很容易地转换为 B-rep但反之则很难因为不同的命令序列可能会生成相同的 B-rep。此外命令序列是人类可理解的便于编辑和应用于各种下游任务。
3.1.1 CAD命令的规范
CAD 工具支持丰富的命令集作者仅考虑了一组常用的命令这些命令分为两类草图和拉伸。 尽管概念上简单但它们足够表达生成各种形状。 草图命令用于在三维空间中的二维平面上指定闭合曲线每个闭合曲线称为一个环多个环形成一个闭合区域称为轮廓。我们的表示方法中一个轮廓由其边界上的环列表描述如Figure 2中的“Sketch 1”一个环总是以指示命令开始后跟一系列曲线命令。我们列出环上的所有曲线并按逆时针顺序排列开始点为最左下角的曲线。实际中我们考虑三种最常用的曲线命令画直线、弧线和圆。这些命令占了我们大规模现实数据集中 92% 的比例。 每个曲线命令由其曲线类型 t i ∈ { ⟨ SQL ⟩ , L,A,R } t_i\in \{\langle\text{SQL}\rangle,\text{L,A,R}\} ti∈{⟨SQL⟩,L,A,R}和参数Table 1描述曲线参数指定了曲线在草图平面的局部参考框架中的二维位置。由于每个环中的曲线是一个接一个连接的为了简洁我们从参数列表中排除了曲线的起始位置第一条曲线总是从草图平面的原点开始原点的世界空间坐标在拉伸命令中指定。简言之一个草图轮廓由一个环列表描述 S [ Q 1 , … , Q N ] S[Q_1,\dots,Q_N] S[Q1,…,QN]每个环 Q i Q_i Qi由一系列从指示命令开始的曲线组成例如 Q i [ ⟨ SQL ⟩ , C 1 , … , C n i ] Q_i[\langle\text{SQL}\rangle, C_1,\dots,C_{n_i}] Qi[⟨SQL⟩,C1,…,Cni]每个曲线命令 C j ( t j , p j ) C_j(t_j,p_j) Cj(tj,pj)指定曲线类型 t j t_j tj及其形状参数 p j p_j pj。 拉伸命令有两个目的。 它将草图轮廓从二维平面拉伸成三维实体拉伸类型可以是单向、对称或双向。 它通过布尔运算指定如何将新拉伸的三维实体与先前创建的形状合并创建新实体或者与现有实体连接、切割或相交。 拉伸命令还需要定义草图平面的三维方向和其二维局部参考框架这是通过旋转矩阵Table 1中 ( θ , γ , ϕ ) (\theta,\gamma,\phi) (θ,γ,ϕ)参数确定定义的为了跟平面局部参考系对齐并将 z z z轴与平面的法线方向对齐。命令参数包括一个拉伸轮廓的比例因子 s s s。
通过这些命令我们将一个 CAD 模型 M M M描述为交替出现的曲线命令和拉伸命令序列。换句话说 M [ C 1 , … , C N c ] M[C_1,\dots,C_{N_c}] M[C1,…,CNc]其中每个 C i ( c i , p i ) C_i(c_i,p_i) Ci(ci,pi)指定命令类型和参数。
3.1.2 网络友好的表示
我们的 CAD 模型 M 的规范类似于自然语言词汇表由一系列 CAD 命令组成形成句子。句子的主语是草图轮廓谓语是拉伸。这种类比表明我们可以利用在自然语言处理中成功的网络结构如 Transformer 网络LLMs来实现我们的目标。
然而CAD 命令在几个方面与自然语言不同。每个命令有不同数量的参数。在某些命令例如拉伸中参数是连续值和离散值的混合参数值跨越不同范围。这些特性使得命令序列不适合直接用于神经网络。
为了克服这一挑战我们对命令序列的维度进行正则化。 首先对于每个命令其参数堆叠成一个 16 × 1 16×1 16×1 的向量其元素对应于Table 1中所有命令的集合参数例如 p i [ x , y , α , f , r , θ , ϕ , γ , p x , p y , p z , s , e 1 , e 2 , b , u ] p_i[x,y,\alpha,f,r,\theta,\phi,\gamma,p_x,p_y,p_z,s,e_1,e_2,b,u] pi[x,y,α,f,r,θ,ϕ,γ,px,py,pz,s,e1,e2,b,u]。每个命令的未使用参数设置为 -1。 接着我们固定每个 CAD 模型 M M M 的命令总数 N c N_c Nc并通过添加空命令来填充 CAD 模型的命令序列直到序列长度达到 N c N_c Nc。我们选择 N c 60 N_c 60 Nc60这是训练数据集中出现的最大命令序列长度。 此外我们通过量化连续参数来统一连续和离散参数。为此我们将每个 CAD 模型规范化到一个 2 × 2 × 2 2×2×2 2×2×2 的立方体内我们还将每个草图轮廓规范化到其边界框内并在拉伸命令中包括一个比例因子 s s s来恢复规范化轮廓到其原始大小。这种规范化限制了连续参数的范围使我们能够将其值量化为 256 256 256 个级别并使用 8 8 8 位整数表示。结果是所有命令参数都只有离散值集合。参数量化不仅是训练基于 Transformer 网络的常见实践对于 CAD 模型来说它对于提高生成质量尤为重要。在 CAD 设计中必须遵循某些几何关系例如平行和垂直的草图线条。然而如果生成模型直接生成连续参数通过参数回归获得的值容易产生错误破坏这些严格的关系。相反参数量化使网络能够将参数“分类”到特定级别从而更好地遵循学习到的几何关系。
作者在 4.1 中通过消融研究实验证明对 CAD 命令表示选择的正确性。
3.2 CAD模型的自编码器
DeepCAD的网络架构如下 一旦训练完成网络的解码器部分将自然地作为 CAD 生成模型。我们的自编码器基于 Transformer 网络受其在处理序列数据方面成功的启发。自编码器输入一个 CAD 命令序列 M [ C 1 , … , C N c ] M [C1,\dots , C_{N_c}] M[C1,…,CNc]其中 N c N_c Nc 是固定数量。
首先每个命令 C i C_i Ci 被分别投射到维度为 d E 256 d_E 256 dE256 的连续嵌入空间。然后将所有嵌入组合起来输入编码器 E E E输出一个潜在向量 z ∈ R 256 z\in \mathbb{R}^{256} z∈R256。解码器以潜在向量 z z z 作为输入输出生成的 CAD 命令序列 M ^ \hat{M} M^。 嵌入部分 与自然语言处理的方法类似我们首先将每个命令 C i C_i Ci 投射到一个公共嵌入空间。然而不同于自然语言中的词语一个 CAD 命令 C i ( t i , p i ) C_i (t_i, p_i) Ci(ti,pi) 有两个部分命令类型 t i t_i ti 和参数 p i p_i pi。因此我们将 C i C_i Ci 的嵌入计算为三个嵌入的总和即 e ( C i ) e i cmd e i param e i pos ∈ R d E , e(C_i) e^\text{cmd}_i e^{\text{param}}_i e^\text{pos}_i\in \R^{d_E}, e(Ci)eicmdeiparameipos∈RdE, 第一个嵌入 e i cmd e^\text{cmd}_i eicmd 表示命令类型 t i t_i ti由 e i cmd W cmd δ i c e^\text{cmd}_iW_\text{cmd}\delta_i^c eicmdWcmdδic 给出。这里 W cmd ∈ R d E × 6 W_\text{cmd}\in\R^{d_E\times 6} Wcmd∈RdE×6 是一个可学习矩阵 δ i c ∈ R 6 \delta_i^c\in\R^6 δic∈R6 是一个指示命令类型 t i t_i ti 的独热向量。 第二个嵌入 e i param e^{\text{param}}_i eiparam 考虑命令参数。每个命令有 16 16 16 个参数每个参数被量化为一个 8 8 8 位整数。我们将这些整数转换为维度为 2 8 1 257 2^81257 281257 的独热向量 δ i , j p ( j 1 … 16 ) \delta^p_{i,j}(j1\dots16) δi,jp(j1…16)并将所有独热向量堆叠成矩阵 δ i p ∈ R 257 × 16 \delta^p_i\in\R^{257\times16} δip∈R257×16。然后使用另一个可学习矩阵 W param b ∈ R d E × 257 W_\text{param}^b\in\R^{d_E\times 257} Wparamb∈RdE×257 单独嵌入每个参数并通过线性层 W param a ∈ R d E × 16 d E W_\text{param}^a\in\R^{d_E\times 16d_E} Wparama∈RdE×16dE组合这些单独的嵌入即 e i param W param a flat ( W param b δ i p ) , e^{\text{param}}_iW_\text{param}^a\text{flat}(W_\text{param}^b\delta^p_i), eiparamWparamaflat(Wparambδip), 其中 flat ( ⋅ ) \text{flat}(\cdot) flat(⋅)将输入矩阵展平为向量 最后位置嵌入 e i pos e^\text{pos}_i eipos 表示命令 C i C_i Ci 在整个命令序列中的索引由 e i pos W pos δ i e^\text{pos}_i W_\text{pos}\delta_i eiposWposδi 定义其中 W pos δ i ∈ R d E × N c W_\text{pos}\delta_i\in\R^{d_E\times N_c} Wposδi∈RdE×Nc 是一个可学习矩阵 δ i ∈ R N c \delta_i\in\R^{N_c} δi∈RNc 是一个在索引 i i i 处填充 1 1 1 其他位置填充 0 0 0的独热向量。 编码器 编码器 E E E 由四层 Transformer 块组成每层有八个注意力头和 512 512 512 的前馈维度。编码器将嵌入序列 [ e 1 , … , e N c ] [e_1, \dots, e_{N_c}] [e1,…,eNc] 作为输入输出向量 [ e 1 ′ , … , e N c ′ ] [e_1,\dots, e_{N_c}] [e1′,…,eNc′]每个向量的维度为 d E 256 d_E 256 dE256。输出向量最终被平均以生成一个 d E d_E dE 维的潜在向量 z z z。 解码器 解码器 D D D 也建立在 Transformer 块上具有与编码器相同的超参数设置。它以学习到的常量嵌入为输入同时关注潜在向量 z z z。最后一个 Transformer 块的输出被送入线性层以预测 CAD 命令序列 M ^ [ C ^ 1 , … , C ^ N c ] \hat{M} [ \hat{C}_1,\dots, \hat{C}_{N_c}] M^[C^1,…,C^Nc]包括每个命令的命令类型 t ^ i \hat{t}_i t^i 和参数 t ^ i \hat{t}_i t^i。与自然语言处理中常用的自回归策略不同我们采用前馈策略模型的预测可以分解为 p ( M ^ ∣ z , Θ ) ∏ i 1 N c p ( t ^ i , p ^ i ∣ z , Θ ) , p(\hat{M}|z,\Theta)\prod_{i1}^{N_c}p(\hat{t}_i,\hat{p}_i|z,\Theta), p(M^∣z,Θ)i1∏Ncp(t^i,p^i∣z,Θ), 其中 Θ \Theta Θ表示解码器的网络参数。
3.3 CAD数据集的创建
现有数据集 ABC数据集虽包含百万级别的CAD设计但这些设计采用B-rep格式缺乏如何通过CAD操作构建设计的具体信息 Fusion 360 Gallery数据集虽然提供了CAD设计及其构建指令序列但规模仅有约8000个设计不足以训练出泛化能力强大的生成模型。
鉴于此作者决定创建一个全新的、大规模的数据集该数据集不仅数量庞大还提供了CAD命令序列旨在满足训练自动编码网络的需求并为未来的研究提供资源。
新数据集构建过程始于ABC数据集 利用其中每个CAD模型链接至Onshape的原始设计。 接着通过Onshape的FeatureScript语言一种专门用于解析CAD操作与参数的领域特定语言作者筛选出仅使用“草图”和“拉伸”操作的模型舍弃了那些采用更复杂操作的模型。 对于符合条件的模型作者编写了一段FeatureScript程序来提取其草图轮廓和拉伸操作并将其转化为Table 1中列出的命令格式。
最终作者收集到了总计178,238个以CAD命令序列形式描述的CAD设计这个数量级远超现有同类型数据集。数据集进一步被随机划分为90%的训练集、5%的验证集以及5%的测试集以备训练和测试之用。 3.4 训练和运行时生成
3.4.1 训练阶段
我们利用构建的数据集对自编码器网络进行训练采用标准的交叉熵损失函数作为优化目标。具体而言定义预测的CAD模型 M ^ \hat{M} M^与真实模型 M M M之间的损失函数为 L ∑ i 1 N c ℓ ( t ^ i , t i ) β ∑ i 1 N c ∑ j 1 N p ℓ ( p ^ i , j , p i , j ) , \mathcal{L} \sum_{i1}^{N_c} \ell(\hat{t}_i,t_i) \beta \sum_{i1}^{N_c} \sum_{j1}^{N_p} \ell(\hat{p}_{i,j},p_{i,j}), Li1∑Ncℓ(t^i,ti)βi1∑Ncj1∑Npℓ(p^i,j,pi,j),
其中 L ( ⋅ , ⋅ ) \mathcal{L}(·, ·) L(⋅,⋅)表示标准的交叉熵损失 N p N_p Np每个命令的参数数量在我们的示例中 N p 16 N_p 16 Np16而 β \beta β是一个权重项用于平衡两项损失在我们的示例中 β 2 \beta 2 β2。值得注意的是在真实的命令序列中有些命令是空的即填充命令 ⟨ EOS ⟩ \langle \text{EOS} \rangle ⟨EOS⟩而有些命令参数未使用标记为 − 1 -1 −1。在这种情况下这些元素对上述损失函数中的求和部分不做贡献。
训练过程中我们使用Adam优化器初始学习率为 0.001 0.001 0.001并设置线性预热期为前 2000 2000 2000步。所有Transformer模块的Dropout率设定为 0.1 0.1 0.1并在反向传播中应用梯度裁剪值为 1.0 1.0 1.0。我们以批处理大小 512 512 512对网络进行 1000 1000 1000轮的训练。
3.4.2 CAD生成阶段
当自编码器训练完成后我们可以使用一个 256 256 256维的潜在向量 z z z来表示一个CAD模型。为了自动生成CAD模型我们运用latent-GAN技术于已学得的潜在空间上。生成器和判别器都是简单的多层感知机MLP网络各自包含四层隐藏层它们的训练采用带有梯度惩罚的Wasserstein-GAN策略。最后生成CAD模型时我们从多元高斯分布中采样一个随机向量并将其输入GAN的生成器中。GAN的输出是一个潜在向量 z z z随后将其输入基于Transformer的解码器从而生成CAD模型。
4 实验
我们从两个角度评估我们的自编码器网络CAD模型的自编码性能4.1和潜在空间形状生成4.2。我们还讨论了可以受益于CAD生成模型的潜在应用4.3。由于之前没有针对CAD设计的生成模型因此无法直接进行比较。我们的目标是通过一系列消融实验理解模型在不同指标下的性能并验证我们的算法选择。
4.1 CAD模型的自编码
自编码性能通常用于指示生成模型表达目标数据分布的程度。我们使用自编码器网络对训练数据集中不存在的CAD模型 M M M进行编码然后将所得的潜在向量解码成CAD模型 M ^ \hat{M} M^。通过比较 M M M和 M ^ \hat{M} M^的差异来评估自编码器的性能。 指标 命令准确率 ACC cmd \text{ACC}_{\text{cmd}} ACCcmd衡量预测的CAD命令类型的正确性 ACC cmd 1 N c ∑ t 1 N c I [ t i t i ^ ] , \text{ACC}_{\text{cmd}}\frac{1}{N_c} \sum_{t1}^{N_c}\mathbb{I}[t_i\hat{t_i}] , ACCcmdNc1t1∑NcI[titi^], 参数准确率 ACC param \text{ACC}_\text{param} ACCparam衡量命令参数的正确性 ACC param 1 K ∑ i 1 N c ∑ j 1 ∣ p ^ i ∣ I [ ∣ p i , j − p ^ i , j ∣ η ] I [ t i t ^ i ] , \text{ACC}_\text{param} \frac{1}{K} \sum_{i1}^{N_c} \sum_{j1}^{\left| \hat{p}_i \right|} \mathbb{I}[|p_{i,j} - \hat{p}_{i,j}| \eta]\mathbb{I}[t_i \hat{t}_i], ACCparamK1i1∑Ncj1∑∣p^i∣I[∣pi,j−p^i,j∣η]I[tit^i], 其中 K ∑ i 1 N c I [ t i t ^ i ] ∣ p i ∣ K\sum_{i1}^{N_c}\mathbb{I}[t_i\hat{t}_i]|p_i| K∑i1NcI[tit^i]∣pi∣是所有正确恢复命令中的参数总数。注意 p i , j p_{i,j} pi,j和 p ^ i , j \hat{p}_{i,j} p^i,j都被量化为 8 8 8位整数选择 η \eta η是作为考虑参数量化的容差阈值在实践中我们选择了 η 3 \eta3 η3256个级别 此外我们使用Chamfer距离CD来评估3D几何体的质量通过均匀采样2000个点来计算参考形状和生成形状之间的CD。另外我们还报告无效率即无法转换为点云的输出CAD模型的百分比。 比较方法 由于缺乏现有的CAD生成模型我们比较了几种模型变体以验证我们的数据表示和训练策略。具体包括以下几种变体Alt-Rel、Alt-Trans、Alt-ArcMid、Alt-Regr和OursAug。每种变体在数据表示或训练策略上有所不同。
总体而言OursAug即使用合成数据增强训练表现最佳表明随机组合数据可以提高网络的泛化能力。Alt-ArcMid的性能与Ours相似说明中点表示法是表示弧的可行替代方法。Alt-Trans在CD方面略逊于Ours。虽然Alt-Rel的参数准确率ACCparam高于Ours但其CD分数较大且有时会出现无效拓扑例如在Figure 4中第二行中的黄色模型有两个三角形环路相互相交导致拓扑无效这是由于预测曲线位置的误差累积导致的。Alt-Regr由于不量化连续参数误差较大可能破坏关键的几何关系如平行边和垂直边例如Figure 4中的第一行。 我们还验证了我们自编码器的泛化在其他更小的数据集来自Autodesk Fusion 360上评估它表现出良好的泛化能力实现了可比较的定量性能。
4.2 形状生成
由于CAD设计没有现成的生成模型我们选择将我们的模型与l-GAN进行比较l-GAN是一种被广泛研究的点云三维形状生成模型。我们注意到我们的目标并不是要显示出孰优孰劣因为这两种生成模型有不同的应用领域。相反我们证明了我们的模型即使在点云生成模型的度量下也能产生可比的形状质量。 此外如Figure 5所示我们模型中的形状具有更清晰的几何细节并且可以轻松地进行用户编辑(Figure 7)。 为了与点云生成模型进行定量比较我们遵循l-GAN中使用的指标。这些度量标准用于衡量两组3D点云形状之间的差异即真实形状集合 S S S和生成形状集合 G G G。 覆盖率COV衡量 S S S中的形状有多少可以很好地近似为G中的形状 最小匹配距离MMD表示 S S S和 G G G中两个点云之间的最小匹配距离来衡量 G G G的保真度 Jensen-Shannon散度(JSD)衡量 S S S和 G G G的点云分布的相似性
然后我们将真实和生成的CAD模型转换为点云并评估这些度量标准。结果如下 表明我们的方法在点云度量标准方面与l-GAN具有可比性的性能。然而由于其参数化表示CAD模型具有比点云更平滑的表面和更锐利的几何特征。
4.3 未来应用 借助CAD生成模型可以将点云例如通过3D扫描获取的重建为CAD模型例如作者这里使用自编码器将CAD模型 M M M编码为潜在向量 c c c。然后利用PointNet编码器训练它将 M M M的点云表示编码为相同的潜在向量 c c c。在推断时给定一个点云我们使用PointNet编码器将其映射到潜在向量然后使用我们的自编码器解码为CAD模型。 生成的CAD模型可以直接导入CAD工具进行用户编辑。
5 总结
作者提出了DeepCAD第一个一个用于CAD设计的深度生成模型。几乎所有以前的3D生成模型都产生离散的3D形状如体素、点云和网格。为此作者还引入了一个大型CAD模型数据集每个模型都表示为一个CAD命令序列。
在构建CAD生成模型的过程中作者的方法存在以下几个主要限制 曲线命令类型有限目前作者仅考虑了三种最常用的曲线命令类型直线、弧线和圆。然而其他曲线命令也可以轻松添加例如可以通过三个控制点以及起点来指定的三次贝塞尔曲线其参数结构可以按照3.1中描述的方式进行。 操作命令的局限性虽然像旋转草图这样的操作可以类似于拉伸命令进行编码但某些CAD操作如倒角作用于形状边界的部分因此需要参考模型的B-rep边界表示而不仅仅是其他命令。将这些命令纳入生成模型仍需进一步研究。 拓扑有效性无法保证并非每个CAD命令序列都能生成拓扑上有效的形状。作者的生成网络不能保证其输出的CAD序列的拓扑一致性。在实践中生成的CAD命令序列很少失败但随着命令序列变长失败的可能性增加。