AutoCAD Civil 3D-部件-自定义部件、装配、创建曲面(石料场开挖边坡)

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/hjpqindong/article/details/96731813

在前几日的博文中介绍了自定义部件及其装配过程。今日继续介绍自定义部件应注意的问题和在装配后如何生成相关部件的曲面。

下面依然以两河口石料场开挖边坡为例进行介绍。

一、设置代码(Codes)

以前介绍创建部件时只提到了如何创建点、连接,并没有介绍如何添加代码和代码的作用。如果自定义的部件没有相应代码,特别是连接(LINK)无代码时,在装配后无法生成道路曲面。

代码是一个字符串,多个对象(点、连接、形)可以使用相同代码,也可为每个对象指定单一代码。不同的是,在生成曲面时将为每一个代码生面曲面。在下面自定义的两河口石料场边坡部件中,将所有的连接均设为代码“开挖边坡”,因此在C3D里装配后可以生成一个开挖边坡曲面。效果如下图:

将开挖边坡即所有的连接代码设置“开挖边坡”

二、Civil 3D中导入并装配

在Civil 3D里导入自制部件:

导入后部件出现在指定的面板中。现在创建装配如下图:

输入装配名称等参数:

出现装配锚点:

在部件列表中选中自制部件,点击装配锚点完成装配(本部件单一,装配过程简单):

装配后部件形状: 

现在创建道路,点击按钮:

选中料场轴线,设置名称等参数,特别是要将装配设置为前面创建的装配名称,并指定目标曲面:

直接按确定完成道路创建。

在创建的道路断面线上点击右键,选择“道路曲面”生成道路曲面:

选择第二个按钮“为每个连接创建一个道路曲面”:

点“确定”完成曲面创建:

渲染后效果:

需要注意的是,如生成曲面后有部分不显示,请查看曲面特性中有关生成的约束。如本人模板中默认设置为生成曲面时过滤掉特定的高程点、特小角度和指定了三角网边长,需要根据情况修改相关设置。

本部件目前还没有添加逻辑判断,不能在每级边坡边缘与曲面自动接合,后续将重新设计该部件。

展开阅读全文

designer无法加载自定义部件

11-29

第一次尝试编写一个继承于QLineEdit的自定义部件,实现一些其他的功能,能编译通过并在designer的插件文件夹生成so文件,但是designer中无法加载,网上的帖子千篇一律的都是转载的C++ Qt那本书上第五章的内容,不知道问题出在哪,高手帮忙看看rnrnpro文件rn[code=C/C++]TEMPLATE = librnCONFIG += designer plugin releasernHEADERS += myeditplugin.h \rn myedit.hrnSOURCES += myeditplugin.cpp \rn myedit.cpprnDESTDIR = $$[QT_INSTALL_PLUGINS]/designerrnTARGET = myEdit[/code]rnrn插件的头文件myeditplugin.hrn[code=C/C++]#ifndef MYEDITPLUGIN_Hrn#define MYEDITPLUGIN_Hrnrn#include rnrnclass MyEditPlugin : public QObject,rn public QDesignerCustomWidgetInterfacernrn Q_OBJECTrn Q_INTERFACES(QDesignerCustomWidgetInterface)rnpublic:rn MyEditPlugin(QObject *parent=0);rn QString name() const;rn QString includeFile() const;rn QString group() const;rn QIcon icon() const;rn QString toolTip() const;rn QString whatsThis() const;rn bool isContainer() const;rn QWidget *createWidget(QWidget *parent);rn;rnrn#endif // MYEDITPLUGIN_H[/code]rnrn插件的实现文件myeditplugin.cpprn[code=C/C++]#include "myeditplugin.h"rn#include "myedit.h"rnrn#include rn#define ICON_PATH "/opt/QtDesktop/image/qt_myEditPlugin/"rnrnMyEditPlugin::MyEditPlugin(QObject *parent)rn :QObject(parent)rnrnrnrnQString MyEditPlugin::name() constrnrn return "myEdit";rnrnrnQString MyEditPlugin::includeFile() constrnrn return "myedit.h";rnrnrnQString MyEditPlugin::group() constrnrn return tr("My Widgets");rnrnrnQIcon MyEditPlugin::icon() constrnrn return QIcon(ICON_PATH + QString("myEditPluginIcon.png"));rnrnrnQString MyEditPlugin::toolTip() constrnrn return tr("Can use systemkeyboard");rnrnrnQString MyEditPlugin::whatsThis() constrnrn return tr("");rnrnrnbool MyEditPlugin::isContainer() constrnrn return false;rnrnrnQWidget *MyEditPlugin::createWidget(QWidget *parent)rnrn return new MyEdit(parent);rnrnrnQ_EXPORT_PLUGIN2(myEditPlugin,MyEditPlugin)[/code]rnrn我自定义的继承于QLineEdit的头文件myedit.hrn[code=C/C++]#ifndef MYEDITPLUGIN_Hrn#define MYEDITPLUGIN_Hrnrn#include rnrnclass MyEditPlugin : public QObject,rn public QDesignerCustomWidgetInterfacernrn Q_OBJECTrn Q_INTERFACES(QDesignerCustomWidgetInterface)rnpublic:rn MyEditPlugin(QObject *parent=0);rn QString name() const;rn QString includeFile() const;rn QString group() const;rn QIcon icon() const;rn QString toolTip() const;rn QString whatsThis() const;rn bool isContainer() const;rn QWidget *createWidget(QWidget *parent);rn;rnrn#endif // MYEDITPLUGIN_H[/code]rnrn实现文件myedit.cpp应该不是问出问题的地方,在别的程序中已经测试通过了,就不贴出来了rnqmake make过后生成了so文件rn[code=C/C++]mv -f libmyEdit.so /usr/local/Trolltech/QtEmbedded-4.4.3/plugins/designer/[/code]rn但就是无法加载,第一次闹这东西,实在是找不到问题出在哪了,高手指点啊rn[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/onion/3.gif][/img] 论坛

自定义webpart部件问题

12-01

小弟自定义一个webpart,用来读取列表数据并绑定到gridview上,一直通不过去,页面提示:值不在预期的范围内。rn不清楚到底错在哪了,请各位指导下,谢谢了。rnrn[code=C#]rnusing System;rnusing System.Collections.Generic;rnusing System.ComponentModel;rnusing System.Text;rnusing System.Web;rnusing System.Web.UI;rnusing System.Web.UI.WebControls;rnusing Microsoft.SharePoint.WebPartPages;rnusing Microsoft.SharePoint;rnusing System.Data;rnusing System.Xml.Serialization;rnnamespace MyWebPartrnrnrn [XmlRoot(Namespace = "MyWebPart")] rn [DefaultProperty("Text")]rn [ToolboxData("<0:WebPartTest runat=server>")]rn rnrn public class WebPartTest : WebPartrn rn [Bindable(true)]rn [Category("Appearance")]rn [DefaultValue("")]rn [Localizable(true)]rnrnrn protected Label label;rn protected GridView gridview;rnrnrn public string Textrn rn getrn rn String s = (String)ViewState["Text"];rn return ((s == null) ? "[" + this.ID + "]" : s);rn rnrn setrn rn ViewState["Text"] = value;rn rn rn protected override void RenderWebPart(HtmlTextWriter output)rn rn //base.RenderWebPart(output);rn RenderChildren(output);rn rn protected override void CreateChildControls()rn rn //base.CreateChildControls();rnrn label = new Label();rn label.Text = "This is a webpart test...";rnrn Controls.Add(label);rnrn gridview = new GridView();rn gridview.Load += new EventHandler(GridViewLoad);rnrnrn gridview.AutoGenerateColumns = true;rnrn Controls.Add(gridview);rnrn rn public void GridViewLoad(object sender, EventArgs e)rn rn BindGridView();rn rnrn private void BindGridView()rn rn using (SPWeb web = SPContext.Current.Web)rn rn SPList list = web.Lists["列表001"];rn if (list != null)rn rn SPQuery spquery = new SPQuery();rn gridview.DataSource = list.GetItems(spquery).GetDataTable();rn gridview.DataBind();rnrn rn elsern rnrn // label.Text = "no list....";rn rnrn rnrn throw new NotImplementedException();rn rnrn rnrnrnrn[/code] 论坛

没有更多推荐了,返回首页