网淘巴来吧,欢迎您!

返回首页 微信
微信
手机版
手机版

vcSimVehicle用法

2021-04-22 新闻来源:网淘巴 围观:941
''

vcSimVehicle允许您将组件模拟为移动的车辆

Inherits: vcBehaviour

vcSimVehicle对象应该位于组件的根节点中。设置了速度、加减速因子后,vcSimVehicle对象将自动处理部件的运动和方向,以达到给定的目标。

作为车辆,一个部件可以被制造成原地旋转,附着或分离货车,引导或跟随其他车辆,并改变其路线。

 

Properties

Name

Type

Access

Description

Acceleration

Real

RW

定义车辆的最大加速度(mm/s^2)。也就是车辆加速的速度.

Deceleration

Real

RW

定义车辆的最大减速(mm/s^2)。也就是车辆减速的速度.

DecisionTime

Real

R

获取车辆执行一个运动并到达计算出的运动路径的决策点所需要的时间。

决策点是车辆减速到目标时的点。在某些情况下,决策点被用来评估车辆和目标位置。例如,您可能想要模拟车辆路线和交叉路口,并评估另一辆车辆是否在目标位置。

Interpolation

Real

W

设置车辆到达目标的计算运动路径的张力(0 - n)。

(可选)默认值为0,这将导致从路径的每个路径点直线。值越大,车辆沿着路径点的切线行驶的时间就越长。

LengthIterations

Integer

W

设置计算Bezier路径长度时每个路径段的迭代次数。

(可选)默认值为10。更多的迭代需要更长的时间来计算,但是会得到更精确的结果。

MaxSpeed

Real

RW

定义车辆的最大速度(mm/s)。也就是车辆的最高速度。

OffsetMatrix

vcMatrix

W

设置车辆原点和方向的偏移量。

(可选)默认包含节点的起源。在某些情况下,当倒车或沿高架道路行驶时,您可能希望保持车辆的方向。

PathLength

Real

R

获得车辆到达目标时所使用的运动路径长度。

TotalTime

Real

R

利用计算的路径得到车辆到达目标的总行驶时间。

 

Note:

  • 最后增加的车辆控制点是目标,因此车辆只需要一个控制点就可以计算路径.      

  •  为了属于同一路径,需要依次添加控制点,例如使用while或for循环。否则,你可能需要重新规划车辆以达到最终目标。

Methods

Name

Return   Type

Parameters

Description

addControlPoint

None

vcVector   point

在车辆路径的末端增加一个指定的点

addOrientationPoint

None

vcVector   vector

如果插补不为零,为车辆添加一个给定的矢量,以计算车辆在最后一个控制点的方向.

在为车辆路径添加控制点后应立即调用此方法。给定的向量没有添加到path中。

attachWagonAtTheEnd

None

vcComponent   component, [Real distance]

将给定的组件作为货车连接到车辆上。

如果没有之前的[文]货车,则添加组[章]件作为lead[来]货车。否则,组[自]件被附加到添加[网]到车辆的最后一[淘]辆货车上。

一个可选的距离参数可以给偏移距离组件附加到车辆上。默认情况下,该方法将在调用时使用组件到车辆的距离。

calculateDecisionTimeToStopAt

Real

Real   distance

返回车辆在计算的运动路径中需要减速(决策点)以在给定距离停止的总模拟时间.

calculateEnterExitBox

2-tuple   (Real entry_distance, Real exit_distance)

vcVector   Center, vcVector   P1, vcVector   P2, Real distStartAt, Real precision

根据计算出的路径、车辆的起始距离和给定的精度返回车辆进入和退出盒子的距离.

Center、[巴]P1和P2参数[文]定义了box。[章]

返回的距离将在理论交点的精度的一半之内。

calculateFinishedTimeToStopAt

Real

Real   distance

根据计算出的路径,返回车辆在给定距离停车的计算出的总模拟时间。

calculateOffsetPathLength

Real

vcVector   offset

返回基于给定偏移量的车辆计算路径的长度。

calculatePositionAt

2-tuple   (vcVector   position, vcVector   direction)

Real   time, Integer isElapsedTime

根据计算出的路径返回给定时间内车辆的位置和方向。

 

如果isElapsedTime参数为0(默认值),则给定的时间是车辆移动开始后经过的时间。否则,给定的时间是模拟开始后经过的时间。

calculatePositionWithDistance

1-tuple   (vcVector   position)

Real   distance

返回车辆在计算路径中给定距离的位置。

返回值是一个元组,其中第一个元素是位置向量.

calculateSpeedAt

Real

Real   time, Integer isElapsedTime

返回给定时间内车辆在计算路径上的速度。

如果isElapsedTime参数为0(默认值),则给定的时间是车辆移动开始后经过的时间。否则,给定的时间是模拟开始后经过的时间。

calculateTravelWithTime

Real

Real   time, Integer isElapsedTime

返回给定时间内车辆在计算路径上行驶的距离。

如果isElapsedTime参数为0(默认值),则给定的时间是车辆移动开始后经过的时间。否则,给定的时间是模拟开始后经过的时间。

clearMove

None

None

从车辆的计算路径中移除所有的点,从而停止车辆的移动。

该方法应在仿真开始时,在任何控制点添加到车辆之前调用。

clearPassedPoints

None

None

从计算路径中移除车辆已到达的点,从而重置计算路径的原点和它的长度。

detachAllWagons

None

None

将所有货车与车辆分离,并相互分离。

该方法应在模拟复位时调用;否则,组件将保持相互连接。

getControlPointDistance

Real

Integer   controlPointIndex

根据计算出的路径返回控制点在车辆中给定索引处的距离。

注意:如果货车附在车辆上,将有负距离的控制点。

offsetPath

none

vcVector   offset

参数化偏移车辆的计算路径(x轴为切线,y轴为径向,z轴为上)。

这个方法应该在给车辆添加点数后调用。

rePlan

None

None

清除车辆上的所有点,除了车辆和货车之间的点,从而允许你用当前的速度,位置和方向重新规划车辆的路线。也就是说,车辆不会停下来,而是改变路线到新增加的控制点。

resetStopAtDistance

None

Real   distance

指示车辆在计算的路径上以给定的距离停车。

这种方法允许你停车,并重新计算路线使用相同或不同的控制点。

rotateInPlace

None

Real   angle, Real angularSpeed, Real angularAcceleration, Real angularDeceleration

使用给定的角速度,角加速度和角减速参数以给定的角度旋转车辆。

旋转将触发OnMovementChanged和OnMovementFinished事件。为了确保旋转完成,在添加新的控制点之前使用延迟、事件或触发器。

update

None

Real   time

更新车辆控制的物体的位置。

Events

Name

Parameters

Description

OnDecisionPointReached

vcComponent   component, Real time

当车辆开始减速以停止在目标时触发。即车辆到达决策点。

车辆成分和发生时间传递给事件。

OnFinalDestinationReached

vcComponent   component, Real time

车辆到达最后一个目标时触发。即车辆到达最后一个控制点,在队列中没有其他目标的情况下停车。

车辆成分和发生时间传递给事件。

OnMovementChanged

vcComponent   component, Real time

当车辆路线被修改时触发,例如点被清除或添加到车辆或改变停车距离。

车辆成分和发生时间传递给事件。

OnMovementFinished

vcComponent   component, Real time

当车辆到达目标时触发。

车辆成分和发生时间传递给事件。

Examples

的例子。控制车辆速度和设置控制点

from vcScript import *

import vcVector

 

#在模拟开始或执行时定义车辆的属性

#像PathLength这样的属性应该在添加点或旋转对象后调用

#在OnRun事件中直接或通过调用函数或事件添加点

 

def OnRun():

  comp = getComponent()

  app = getApplication()

  vehicle = comp.findBehaviour("Vehicle")

  vehicle.clearMove() #clears all previously added control points

 

  vehicle.Acceleration = 2000

  vehicle.Deceleration = 2000

  vehicle.MaxSpeed = 1200

  vehicle.Interpolation = .35 # this affects how sharp the curve is in corners

 

  #wagons (uncomment next 3 lines if needed)

  #vehicle.detachAllWagons()

  #vehicle.attachWagonAtTheEnd(wagon, 1600)

  #wagon = app.findComponent('wagon')

 

  #preferred method is to reference the positions of different components

  #another way is to create a component with Frame features

  v1 = vcVector.new(5000,2000,0)

  v2 = vcVector.new(-2000,-2000,0)

  v3 = vcVector.new(-5000,4000,0)

  for vec in [v1,v2,v3]:

    vehicle.addControlPoint( vec )

 

 

免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏

本文链接:https://www.wtao8.com/post/23.html 转载需授权!

分享到:

相关文章

龙年
大发