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

10种禁用免费app如何给公司网站做优化

10种禁用免费app,如何给公司网站做优化,清爽帝国cms,深夜十大app软件摘要 作者提出了一种CAD的创新生成模型#xff0c;该模型将CAD模型的高级设计概念表示为从全局部件排列到局部曲线几何的三层神经代码的层级树#xff0c;并且通过指定目标设计的代码树来控制CAD模型的生成或完成。具体而言#xff0c;一种带有“掩码跳过连接”的向量量化变…摘要 作者提出了一种CAD的创新生成模型该模型将CAD模型的高级设计概念表示为从全局部件排列到局部曲线几何的三层神经代码的层级树并且通过指定目标设计的代码树来控制CAD模型的生成或完成。具体而言一种带有“掩码跳过连接”的向量量化变分自编码器(VAE)的新变体在三个层次上提取设计变化作为神经码本。两阶段的级联自回归Transformer学习从不完整的CAD模型生成代码树然后根据预期设计完成CAD模型。广泛的实验表明在无条件生成等传统任务上表现出优越性能同时在条件生成任务中实现了新颖的交互能力。 【code】 1 引言 大多数现代CAD设计工具采用“草图和拉伸”风格的工作流程以这种方式创建的CAD模型具有自然的树结构支持局部编辑。树叶处的曲线可以调整并重新生成拉伸以更新最终形状。对于设计师来说重要的是编辑要保留“设计意图”。而设计意图定义也有不同 Otey等人将设计意图定义为“在修改时CAD模型的预期行为” Martin描述为“对象之间的关系使得对一个对象的更改可以自动传播到其他对象”。 虽然“草图和拉伸”允许局部更改但它不提供在编辑模型时给出预期行为所需的关系。一个能理解设计意图的计算系统将彻底改变CAD的实践。这种系统可以帮助设计师在 根据高级设计概念生成多样化的CAD模型 在约束某些模型属性的情况下修改现有的CAD模型 交互式地自动完成设计如下图。 但目前还没有这样的系统当前行业标准通过手动指定参数和方程以定义轮廓的位置和尺寸以及用于对齐几何的约束这种称为参数化CAD的过程需要专业技能并且在意外编辑时很容易出错。下图展示了编辑约束不良的CAD模型的几何形状时原始设计意图被破坏的示例。 现有的工作并未利用CAD设计的层次性来提供有效的设计控制。作者提出了一种新颖的生成网络将CAD模型的设计意图捕获为从局部几何特征到全局部件排列的三层神经代码树并根据编码树或不完整的CAD模型指定的设计意图控制CAD模型的生成或完成。CAD模型以建模操作的序列形式生成然后转换为工业标准的边界表示B-Rep格式以便在CAD软件中进行编辑。 具体来说作者提出了一种带有“掩码跳过连接”的矢量量化VAE变体从大规模草图和拉伸CAD数据集DeepCAD数据集中学习设计变化形成三个神经码本。掩码跳过连接简单但有效可以提取高度抽象的码本使代码与生成的几何形状之间的关系变得直观。然后两阶段级联自回归Transformer学习生成 给定不完整CAD模型的三层代码树 给定编码树和不完整数据的完整CAD模型 设计师还可以直接提供编码树以生成模型。 与其他生成baseline的定性和定量评估表明在随机生成任务中该系统生成了更逼真和复杂的模型。在用户控制的条件生成任务中系统展示了灵活和优越的几何控制这得益于层次编码树表示优于当前最先进的基于深度学习的生成模型例如SkexGenDeepCAD。总之我们的贡献包括 编码层次设计概念的神经代码树表示支持高质量和复杂模型的生成、设计意图感知的用户编辑和设计自动完成。带有掩码跳过连接的新型向量量化变分自编码器用于增强代码簿学习。在CAD模型生成方面相对于之前的最先进方法的性能提升。 2 相关工作 构造性实体几何CSG 3D形状由参数化基元通过布尔运算组成的CSG树表达。这种轻量级表示通过程序合成和无监督学习重建CAD形状。但参数化CAD仍主导机械设计并且广泛使用草图和拉伸建模操作。 直接CAD生成 最近一些工作专注于在没有任何CAD建模序列监督的情况下直接生成CAD模型。作者更专注于以草图和拉伸序列形式进行的参数化CAD的可控生成。 草图和拉伸CAD生成 最近大规模参数化CAD数据集的可用性使基于学习的方法能够利用CAD建模序列历史和草图约束生成工程草图和实体模型。生成的序列可以用实体建模内核解析以获得包含2D工程草图或3D CAD形状的可编辑参数化CAD文件。此外生成可以受目标B-rep、草图、图像、体素网格或点云的影响。但这种控制是全局级别的而作者旨在支持设计保持编辑和自动完成等应用程序的全局和局部级别的层次控制。 用户控制的CAD生成 提供用户对生成过程的控制同时保持设计意图是生成模型在实际CAD软件中采用的关键。尽管以前的方法可以基于高级指导生成多样化的形状但使用户能够控制生成过程更具挑战性。Sketch2CAD和Free2CAD专注于设计过程的局部控制并且需要大量的输入。最近的一些工作还利用文本提示和用户指定的指导。SkexGen允许用户通过解耦全局控制CAD形状的拓扑和几何来探索设计变化。然而其方法仅有助于从零开始创建新设计无法轻易修改以提供用户期望的智能编辑CAD模型或自动完成下一步操作的交互体验。与现有工作不同作者的方法利用CAD模型内部存在的自然层次结构提供对生成过程的全局和局部控制。 3 层次CAD属性 草图和拉伸的CAD模型具有自然的层次结构如下图所示。 其中一个环定义了一条封闭的曲线路径一个轮廓在草图平面内由一个外环和一些内环限定了一个封闭区域而一个实体则表示一组拉伸的轮廓组合成整个模型。我们的目标是实现在生成CAD模型时的局部和全局控制即用户可以编辑任何一个实体并期望其余部分自动进行合理的更新。为了实现这一目标我们在神经网络的潜在空间中捕捉这种层次结构。在层次结构的较高层上网络学习较低层次几何实体的相对位置即构成模型的轮廓和拉伸的边界框。具体来说我们将CAD模型视为一个实心S—轮廓P—环L树 环L 在树的叶子上我们有环。每个环由一组线和弧或一个圆组成。环L的属性定义为一系列由特殊 SEP \text{SEP} SEP token分隔的x-y坐标 L { ( x 1 , y 1 ) , ( x 2 , y 2 ) , SEP , ( x 3 , y 3 ) , … } . L \{(x_1, y_1), (x_2, y_2), \text{SEP}, (x_3, y_3), \ldots\}. L{(x1​,y1​),(x2​,y2​),SEP,(x3​,y3​),…}. 线由两个点起点和终点的xy坐标表示弧由三个点表示包括起点、中点和终点圆由曲线上四个均匀分布的点表示。使用这种表示法可以通过点的数量识别曲线类型。我们对环中的曲线进行排序使得初始曲线是起点坐标最小的曲线下一条是与其逆时针方向相连的曲线。 轮廓P轮廓位于叶子层之上。由于环的几何结构在叶子层捕捉轮廓节点的属性定义为草图平面内环的二维边界框参数系列 P { ( x i , y i , w i , h i ) } i 1 N i loop . P \{(x_i, y_i, w_i, h_i)\}_{i1}^{N^{\text{loop}}_i}. P{(xi​,yi​,wi​,hi​)}i1Niloop​​. 其中 i i i是轮廓内 N i loop N^{\text{loop}}_i Niloop​个环的索引。 ( x i , y i ) (x_i, y_i) (xi​,yi​)是边界框的左下角 ( w i , h i ) (w_i, h_i) (wi​,hi​)是宽度和高度。我们通过对所有二维边界框的左下角进行升序排序来确定轮廓 P P P中边界框参数的顺序。 实体S在轮廓层之上我们有通过拉伸一个或多个轮廓形成的三维实体模型。实体节点的属性捕获拉伸轮廓的排列使用一系列三维边界框参数 S { ( x j , y j , z j , w j , h j , d j ) } j 1 N j profile . S \{(x_j, y_j, z_j, w_j, h_j, d_j)\}_{j1}^{N^{\text{profile}}_j}. S{(xj​,yj​,zj​,wj​,hj​,dj​)}j1Njprofile​​. 其中 j j j是模型中 N j profile N^{\text{profile}}_j Njprofile​个拉伸轮廓的索引。 ( x j , y j , z j ) (x_j, y_j, z_j) (xj​,yj​,zj​)是边界框的左下角 ( w j , h j , d j ) (w_j, h_j, d_j) (wj​,hj​,dj​)是其尺寸。同样 S S S中的参数按所有拉伸的三维边界框的左下角进行升序排序。 4 三层码本学习 给定一个以S-P-L树格式表示的草图和拉伸CAD模型数据集一种新的向量量化VAEVQ-VAE变体学习它们的潜在模式作为三个离散的码本这些码本将CAD模型编码为一棵神经码树用于下游应用。 遵循SkexGen我们用于学习码本的架构基础是一个VQ-VAE由一个Transformer编码器 E E E和解码器 D D D组成如下图所示。 我们独立学习L、P和S的码本。与SkexGen和之前的掩码学习工作不同我们在从编码器输入到解码器输入的跳过连接上应用掩码。直观来说一个标准的VQ-VAE即没有跳过连接被训练用来恢复实例特定的输入细节这对于正在学习实例无关设计模式的量化码来说是一个挑战。一个天真的跳过连接允许解码器通过直接复制输入来作弊。掩码跳过连接迫使解码器从未掩码元素中关联部分细节和填补缺失部分其中关系由编码在码中的设计模式引导。 编码器 考虑一个 L L L方程1包含一系列的x-y坐标和特殊的 SEP \text{SEP} SEP token。我们使用65维的独热向量来表示一个token其中一个坐标被量化为6位即64维 SEP \text{SEP} SEP需要一个额外的维度。设 T t E T^E_t TtE​表示Transformer编码器的第 t t t个token的256维嵌入。嵌入初始化为 T t E ← { MLP ( W emb x t ∥ W emb y t ) γ t (for x-y) , MLP ( W emb SEP ∥ W emb SEP ) γ t . T_t^E\leftarrow\begin{cases}\text{MLP}(W_\text{emb}x_t\parallel W_\text{emb}y_t)\gamma_t\quad\text{(for x-y)},\\\text{MLP} (W_\text{emb}\text{SEP}\parallel W_\text{emb}\text{SEP}) \gamma_t.\end{cases} TtE​←{MLP(Wemb​xt​∥Wemb​yt​)γt​(for x-y),MLP(Wemb​SEP∥Wemb​SEP)γt​.​ W emb W_\text{emb} Wemb​是一个 65 × 32 65\times 32 65×32的token嵌入矩阵。 ∥ \parallel ∥是拼接运算符。 MLP \text{MLP} MLP是一个两层的多层感知器。 γ t \gamma_t γt​是一个可学习的256维位置嵌入。第二种情况是对于 SEP \text{SEP} SEP其值重复两次。对于P和S我们处理每个二维或三维边界框参数的方式与 x t , y t x_t, y_t xt​,yt​坐标相同但没有 SEP \text{SEP} SEP token。 向量量化 编码器 E E E的输出序列长度为 T T T首先进行平均池化形成 E ‾ ( T E ) \overline{E}(T^E) E(TE)。然后应用标准的向量量化程序来获得一个256维的码本向量 c c c。更具体地说我们比较码本向量 b \mathbf{b} b和编码的 E ‾ ( T E ) \overline{E}(T^E) E(TE)之间的欧几里得距离并执行最近邻查找。 c ← b k , where k a r g m i n i ∣ ∣ E ‾ ( T E ) − b i ∣ ∣ 2 . \mathbf{c}\leftarrow\mathbf{b}_k,\quad\text{where}\quad k\mathrm{argmin}_i\left|\left|\overline{E}(T^E)-\mathbf{b}_i\right|\right|^2. c←bk​,wherekargmini​ ​ ​E(TE)−bi​ ​ ​2. 带掩码跳过连接的解码器 解码器接收量化码 c c c和掩码的x-y坐标和 SEP \text{SEP} SEP token序列并预测被掩码的token。例如在一个环节点的情况下任何 x t , y t x_t, y_t xt​,yt​和 SEP \text{SEP} SEP token都可以被掩码具体来说每个模型随机掩码30%到70%的token。设 T t D T^D_t TtD​表示为解码器输入的第 t t t个token的嵌入。每个token的嵌入方式与编码器嵌入方程完全相同只是被掩码的token的嵌入被一个可学习的共享32维掩码token嵌入 m m m取代。来自编码器的256维码本向量 c c c与 { T t D } \{T^D_t\} {TtD​}拼接在一起并传递给解码器 D D D解码器有四个自注意力层。这里的思想是迫使编码器学习有用的潜在特征可以帮助解码器预测被掩码的token。最后在解码器后对每个token嵌入除了码本向量应用一个MLP以生成(2 × 65)维的logits即一对在65类标签上的概率值分别用于预测xy坐标或 SEP \text{SEP} SEP token。 损失函数 训练损失由三项组成 ∑ t E M D ( D ( c , { T t D } ) , 1 T t ) ∣ ∣ s g [ E ‾ ( T E ) ] − c ∣ ∣ 2 2 β ∣ ∣ E ‾ ( T E ) − s g [ c ] ∣ ∣ 2 2 . \begin{aligned}\sum_{t}\mathrm{EMD}\Big(D(\mathbf{c},\{T_{t}^{D}\}) , \mathbb{1}_{T_{t}}\Big)\\\left|\left|sg[\overline{E}(T^{E})]-\mathbf{c}\right|\right|_{2}^{2}\beta\left|\left|\overline{E}(T^{E})-sg[\mathbf{c}]\right|\right|_{2}^{2}.\end{aligned} ​t∑​EMD(D(c,{TtD​}),1Tt​​) ​ ​sg[E(TE)]−c ​ ​22​β ​ ​E(TE)−sg[c] ​ ​22​.​ 第一项是解码器输出概率和相应数据属性的独热编码 1 T t \mathbb{1}_{T_t} 1Tt​​之间的平方EMD损失。损失仅应用于被掩码的token。我们使用的EMD损失函数该函数假设有序的类标签并对接近真实值的预测进行较少的惩罚。这比交叉熵损失更好因为x-y坐标携带距离关系使得损失可以集中在远离真实值的预测上。注意我们对环数据属性中的 SEP \text{SEP} SEP token处理不同应用标准的交叉熵损失因为这不是一个有序类标签。 第二和第三项是VQ-VAE中使用的码本和承诺损失。 s g sg sg表示停止梯度操作在前向传播中是恒等函数但在后向传播中阻止梯度。 β \beta β缩放承诺损失设为 0.25 0.25 0.25。我们使用衰减率为 0.99 0.99 0.99的指数移动平均更新。 5 可控CAD生成 环、轮廓和实体码本使我们能够将CAD模型的设计概念表达为层次化的神经代码从而实现多样化和高质量的生成、新颖的用户控制以指定设计意图以及自动完成不完整的CAD模型。具体来说给定一个不完整的CAD模型作为草图和拉伸构建序列 模型编码器将输入序列转换为潜在嵌入自回归Transformer根据嵌入的输入序列生成代码树第二个自回归Transformer根据嵌入的输入序列和代码树生成完整的CAD模型。 模型编码器 模型编码器的主体是标准的Transformer编码器模块具有6个自注意力层。我们借用了SkexGen中使用的格式并将模型表示为一个token序列每个token是一个独热向量唯一确定一个曲线类型、量化曲线参数和量化拉伸参数。编码器将独热向量转换为一系列256维的潜在嵌入 { T t E } \{T^E_t\} {TtE​}。 编码树生成器 G code G_\text{code} Gcode​是一个自回归解码器它生成代码的层次结构 { T t C } \{T^C_t\} {TtC​}。每个实体、轮廓或环从相应的码本中分配一个代码条件是编码的嵌入 { T t E } \{T^E_t\} {TtE​}。类似于层次属性表示层次代码表示为一系列特征向量指示代码或分隔token。具体来说一个特征是一个独热向量其大小是三个码本中代码的总数加上一个分隔符。例如考虑上图示例中的代码树包含一个实体、两个轮廓和两个或四个环。这个树的特征表示为 [ S , SEP , P , L , L , SEP , P , L , L , L , L ] [S, \text{SEP}, P, L, L, \text{SEP}, P, L, L, L, L] [S,SEP,P,L,L,SEP,P,L,L,L,L]。这里我们执行神经代码树的深度优先遍历边界命令 SEP \text{SEP} SEP用于指示轮廓和环代码的新分组。 G code G_\text{code} Gcode​有6个自注意力SA层与6个交叉注意力CA层交替。第一个SA层是在查询token { T t C ˉ } \{T^{\bar{C}}_t\} {TtCˉ​}上每个查询token由位置编码 γ t \gamma_t γt​初始化并自回归估计。每个CA层的输入是 { T t E } \{T^E_t\} {TtE​}。每个SA或CA层都有8个头的注意力随后是一个Add-Norm层。一个查询token { T t c ˉ } \{T^{\bar{c}}_t\} {Ttcˉ​}将有一个生成的代码索引该索引转换为一个代码 { T t C } \{T^C_t\} {TtC​}。分隔符被一个可学习的嵌入取代。 T t C ← { Codebook ( T t C ~ ) γ t (for code), W emb SEP γ t (forSEP). T_t^C\leftarrow\begin{cases}\text{Codebook}(T_t^{\tilde{C}}) \gamma_t\text{(for code),}\\W_\text{emb}\text{SEP}\gamma_t\text{(forSEP).}\end{cases} TtC​←{Codebook(TtC~​)γt​Wemb​SEP​(for code),γt​​(forSEP).​ Codebook表示从代码索引到代码的映射。我们使用标准的交叉熵损失训练 G code G_\text{code} Gcode​。注意对于无条件生成我们删除部分CAD模型编码器并仅使用查询token { T t C ˉ } \{T^{\bar{C}}_t\} {TtCˉ​}训练SA层没有交叉注意力层和 { T t E } \{T^E_t\} {TtE​}。 模型生成器 模型生成器是第二个自回归解码器 G cad G_\text{cad} Gcad​生成一个草图和拉伸的CAD模型。 G cad G_\text{cad} Gcad​与SkexGen解码器相同不同的是部分CAD模型嵌入 { T t E } \{T^E_t\} {TtE​}和层次神经代码 { T t C } \{T^C_t\} {TtC​}通过交叉注意力层控制生成而SkexGen仅允许全局代码的指定。架构规格与第一个解码器相同。查询token ( T t out T^\text{out}_t Ttout​)包含生成的CAD命令序列作为独热向量我们使用相同的标准交叉熵损失。 6 实验 本节展示了无条件和有条件生成的结果证明了以下几点 相较于当前最先进的技术生成的质量更高、种类更多、复杂性更强通过层次化神经代码实现可控生成两个重要应用用户编辑和自动补全。 6.1 实验设置 数据集: 使用大规模DeepCAD数据集包含178,238个草图及拉伸模型按90%训练、5%验证、5%测试划分。去除重复模型和属性并限制训练模型的复杂度最多5个实体、20个环/轮廓、60条曲线/环、200个命令/序列最终训练集包含102,114个实体、60,584个轮廓、150,158个环和124,451个草图和拉伸序列用于CAD模型训练。对于CAD工程图我们遵循SkexGen并从DeepCAD中提取草图。在移除重复后共有99,650个草图用于训练。 实施细节: 在Nvidia RTX A6000 GPU上训练批次大小256。码本模块和生成模块分别训练250和350轮。采用改进的Transformer主干输入嵌入维度256前馈维度512Dropout率0.1各含6层、每层8头注意力。码本学习网络有4层。使用AdamW优化器学习率0.001线性预热2000步。测试时采用核采样对输入曲线坐标添加随机噪声减少过拟合针对码本坍塌问题采取重新初始化策略。最优代码本大小约为轮廓和实体3,500环2,500压缩比约60x、17x和29x。 6.2 指标 五个已建立的指标定量评估随机生成 点云指标基于模型表面采样的2000点比较生成和真实数据的点云集评估多样性与质量。 覆盖率COV至少匹配一个生成样本的真实模型百分比反映生成形状的多样性。最小匹配距离MMD平均最小匹配距离衡量两组之间的接近程度。Jensen-Shannon散度JSD两个概率分布间的相似性计算占用相同空间位置的频率。 token指标衡量唯一性。数值字段量化为6位。 新颖性Novel未出现在训练集中的生成CAD序列比例。唯一性Unique在生成集中仅出现一次的数据比例。 6.3 无条件生成 对比DeepCAD与SkexGen所有方法生成10,000个CAD模型与测试集随机选取的2,500个真实模型比较。 **定量评估**如下表所示我们的方法在所有三个点云评估指标上超越baseline展现显著的质量和多样性提升。在Unique指标上我们的方法与SkexGen相当远超DeepCAD。Novel指标上略逊于SkexGen但明显优于DeepCAD此差距源于较小且多样性不足的训练集且仅包含少量复杂形状所致。SkexGen因无法生成非常复杂的模型而受此影响较小。 定性评估 下图显示我们的方法能生成结构良好、几何形状复杂、部件布局精细的CAD模型与真实世界实例相似。 人工评估 通过亚马逊众包平台进行人类感知质量评估针对具有三个或更多拉伸的模型。在与真实模型并列展示的情况下我们的方法在“真实感”评分上表现突出分布对称表明生成模型难以被区分。比较之下DeepCAD和SkexGen的分布偏向“较不真实”表明易被识别为简单或不规范的模型。我们的方法中有49.2%的生成模型被认定为比训练数据更“真实”SkexGen为46.9%DeepCAD为38.7%。 6.4 可控生成 我们在两种“编辑”和一种“自动补全”应用场景中展示了可控生成。 代码树编辑 用户可编辑不同层次的代码节点实现局部到全局的CAD层次修改这是以往方法所不具备的。编辑结果多样化且控制精确如下图所示。 保持设计的编辑 在固定代码树的基础上用户可迭代地调整模型参数以细化设计同时保持当前设计不变。如下图所示局部尺寸调整后相关部分会自动调整以适应更改。 从用户输入的自动补全 根据用户提供的部分轮廓或环预测可能的代码集以完成CAD模型。图9和图10展示了从部分轮廓和拉伸轮廓开始的自动补全结果每行展示不同生成代码的结果。相比最近邻搜索baseline我们的方法在多样性和精确匹配用户输入方面表现更优如图11所示。 7 总结 作者引入了一种新颖的可控CAD生成模型。方法的关键是三层神经编码它在建模层次结构的不同层次上捕获设计模式和意图。本文在包含用户反馈的智能生成设计方向上又迈出了重要一步。广泛的评估显示生成质量有了显著提升并展示了作者的分层神经编码在意图感知编辑和自动补全等应用中的巨大潜力。其主要创新点和限制如下 创新点 分层神经编码提出了一种三层次的神经编码方法将CAD模型的高级设计概念表示为从全局部件布局到局部曲线几何的树状结构。设计意图的捕捉与控制通过指定目标设计来生成或完成CAD模型使用代码树来控制生成过程。新型变分自编码器VAE提出了一种新型的向量量化VAE变体具有“掩蔽跳跃连接”用于从大规模草图和挤出CAD数据集中提取设计变化作为神经代码本。两阶段级联自回归变换器用于从不完整的CAD模型生成代码树然后根据预期设计完成CAD模型。 限制 有效性问题当前系统在生成具有自相交边或实体的CAD模型时可能存在有效性问题因为损失函数没有明确地惩罚无效的几何形状。未来的工作是增加一个损失函数利用领域知识明确对 CAD 模型的无效性进行惩罚。恢复失败的能力系统在面对失败情况时缺乏从错误中恢复的能力这主要是因为缺乏“无效CAD模型数据集”来训练这种恢复机制。模型格式限制该方法使用的是草图和拉伸CAD格式这可能排除了其他流行的建模操作如旋转、镜像和扫掠等。
http://www.w-s-a.com/news/29055/

相关文章:

  • 网站设计建议建设商务网站作用
  • 网站策划的最终体现是什么模板网站建设流程图
  • 网站设计与开发技术教程十度公司做网站怎么样
  • 企业网站推广方案在哪里智慧团建登录入口官网手机版
  • google网页版入口seo索引擎优化
  • 东乡做网站常州网络公司联系方式
  • 做网站激励语家居装饰网站设计论文
  • 镜像的网站怎么做排名无极网站建设质量
  • 奉贤集团公司网站建设小工具文本wordpress
  • 不用代码做网站网站建设和运行费用
  • 阜阳网站开发招聘网站建设合作协议申请
  • 电子配件 技术支持 东莞网站建设wordpress 生成html代码
  • 网站用免费空间好不好网站建设的视频
  • 网站开发项目职责门户资源分享网站模板
  • 建网站需要什么语言如何做二维码跳转到网站
  • 天津建设交培训中心网站做网站起名字
  • 黑河北京网站建设湛江市住房和城乡建设局网站
  • 网站建设拾金手指下拉十九企业查询官网
  • 邢台提供网站建设公司哪家好五合一建站
  • 京东网站设计代码驻马店做网站的公司
  • 织梦网站模板使用教程福州网站建设工作
  • 做网站要准备的需求asp 网站后台
  • 滨州网站开发公司中立建设集团有限公司网站
  • 泰安建设厅网站做网站为什么要建站点
  • 有什么好的手机推荐网站创建网站需要哪些工作
  • 网站能给企业带来什么上饶市网站建设公司
  • 学做网站卖东西去哪学南宁网站建设gxjzdrj
  • 欧美网站建设案例网站开发 男生
  • 网站正在开发中做电子元器件的网站
  • 做网站搭建的公司中国建设银行官网站u盾证书