3DE 知识工程 —— 使用 EKL 创建参数化线框(Wireframe)特征

目录

1、简介

2、使用 EKL 直接创建参数化线框特征

3、使用 EKL 调用 VB Script 创建参数化线框特征


1、简介

EKL 中有很多线框特征的构造函数,可以方便的创建线框特征,但一般情况下,若将创建的线框特征聚集到几何图形集中,则生成的特征为非参数化的隔离元素,例如下面的代码创建一个点特征并聚集到几何图形集中(图 1):

iParent :  OpenBodyFeature 
--------------------------

let myPoint(Point)
set myPoint = new("Point", "myPoint", iParent)
myPoint = point(0mm, 0mm,0mm)
myPoint->Update()
图 1  聚集到几何图形集的点特征

那如何使用 EKL 创建参数化线框特征呢?下面我们就来介绍两种方法。

2、使用 EKL 直接创建参数化线框特征

直接使用 EKL 可以创建参数化点和直线特征,其原理是修改生成的特征类型为参数化的特征类型。

例 1 - 使用 EKL 直接创建参数化点特征

iParent :  OpenBodyFeature 
--------------------------

let myPoint(GSMPoint)
set myPoint = new("Point", "myPoint", iParent)

let ptType(PointType)
ptType = "Coordinates"
myPoint.PointType = ptType

let paramPoint(GSMPointCoord)
set paramPoint = myPoint

paramPoint.X = 100mm
paramPoint.Y = 100mm
paramPoint.Z = 0mm

iParent->Update()
图 2  参数化点

本例中创建点特征后,将点的类型改为坐标点,并将其赋值给坐标点类型的变量,然后通过坐标点变量设置点的坐标参数,从而实现创建参数化的坐标点。

例 2 - 使用 EKL 直接创建参数化直线特征

iParent :  OpenBodyFeature,iStart :  Point,iEnd :  Point 
--------------------------

let myLine(GSMLine)
set myLine = new("Line", "myLine", iParent)

let lnType(LineType)
set lnType = "PointPoint"
myLine.LineType = lnType

let paramLine(GSMLinePtPt)
set paramLine = myLine

paramLine.FirstPoint = iStart
paramLine.SecondPoint = iEnd
paramLine.Length1 = 0mm
paramLine.Length2 = 0mm

iParent->Update()
图 3  参数化直线

本例中创建直线特征后,将直线的类型改为两点线,并将其赋值给两点线类型的变量,然后通过两点线变量设置线的端点等参数,从而实现创建参数化的两点线。

上面的两个例子分别介绍了使用 EKL 创建参数化的点和直线,但直接使用 EKL 创建参数化线框特征有其局限性,例如 EKL 不能直接创建参数化的样条线,下面我们来介绍另外一种方法。

3、使用 EKL 调用 VB Script 创建参数化线框特征

3DE Automation 中有许多实用的接口和方法,例如 HybridShapeFactory 接口可以用于创建各种类型的参数化线框特征,而且这个接口的许多方法都可以在 VB Script 中调用,请看下面的例子:

例 3 - 使用 EKL 调用 VB Script 创建参数化样条线特征

首先创建一个 VB Script 用于创建样条线,示例代码如下:

Sub Main(iPart, iParent, iPointList)

	Dim oPart As Part
	set oPart = iPart

	Dim oHybridBody As HybridBody
	Set oHybridBody = iParent
	
	Dim oListParameter As ListParameter
	Set oListParameter = iPointList
	
	Dim oPointList As List
	Set oPointList = oListParameter.ValueList

	Dim oHybridShapeFactory As HybridShapeFactory
	Set oHybridShapeFactory = oPart.HybridShapeFactory

	Dim oSpline As HybridShapeSpline
	Set oSpline = oHybridShapeFactory.AddNewSpline()
	
	Dim i As Integer
	For i = 1 To oPointList.Count
		Dim oPoint As Point
		Set oPoint = oPointList.Item(i)
		
		oSpline.AddPoint oPoint
	Next

	oHybridBody.AppendHybridShape oSpline

End Sub

下面是使用 EKL 调用 VB Script 的示例代码:

iPart :  PartFeature,iParent :  OpenBodyFeature,iPointList :  List 
--------------------------

let vbs(VBScript)
vbs = `关系\VB Script\AddNewSpline`

vbs->Run(iPart, iParent, iPointList)
iParent->Update()

本例中 EKL 主要是选择输入参数,然后将参数传入到 VB Script 中实现参数化样条线的创建(图 4)。

图 4  参数化样条线

要在Docker中安装Elasticsearch、Kibana和Logstash(EKL)堆栈,您可以按照以下步骤进行操作: 1. 首先,确保您已经安装了Docker和Docker Compose。您可以根据您的操作系统找到适合您的安装方法。 2. 创建一个新的目录来存放您的EKL配置文件和数据。例如,您可以创建一个名为`ekl`的目录。 3. 在`ekl`目录中创建一个名为`docker-compose.yml`的文件,并使用以下内容填充它: ```yaml version: '3' services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:7.15.0 container_name: elasticsearch environment: - discovery.type=single-node ports: - 9200:9200 volumes: - esdata:/usr/share/elasticsearch/data kibana: image: docker.elastic.co/kibana/kibana:7.15.0 container_name: kibana ports: - 5601:5601 environment: - ELASTICSEARCH_HOSTS=http://elasticsearch:9200 logstash: image: docker.elastic.co/logstash/logstash:7.15.0 container_name: logstash volumes: - ./logstash/config/:/usr/share/logstash/pipeline/ ports: - 5044:5044 volumes: esdata: ``` 4. 在`ekl`目录中创建一个名为`logstash`的子目录,并在其中创建一个名为`config`的子目录。 5. 在`config`目录中创建一个名为`logstash.conf`的文件,并使用以下内容填充它: ``` input { beats { port => 5044 } } output { elasticsearch { hosts => "elasticsearch:9200" index => "logs-%{+YYYY.MM.dd}" } } ``` 6. 确保您在`ekl`目录中打开一个终端或命令提示符窗口,并运行以下命令来启动EKL堆栈: ``` docker-compose up ``` 这将下载所需的Docker镜像并启动Elasticsearch、Kibana和Logstash容器。 7. 在浏览器中访问`http://localhost:5601`以打开Kibana控制台。您可以使用Kibana来管理和可视化您的日志数据。 请注意,以上步骤提供了一个基本的配置,并且默认情况下没有进行任何安全性配置。在生产环境中,您应该根据需要进行进一步的配置和安全性硬化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值