我在 eCat 的‘
我的模型’目录下创建了一个自定义文件夹,里面存放了我建模的轨道段组件的模板模型。我的目标是使用插件文件( init.py文件和 Command文件)从这些模型自动生成轨道,并且我没有使用 XML 文件,而是使用了一个包含段详细信息但没有 x、y、z 位置的 JSON 配置文件。放置是通过配置文件中的段长度和每个段的零位置值完成的,并通过接口进行连接。 段正在生成,但它们在场景中的位置不正确或没有被正确平移,就好像它们有姿态锁定一样。有人能给我提示或见解,告诉我如何解决这个问题,或者指出我方法中的任何错误吗?
谢谢
fystro
也许你可以提供一下你用来设置段位置的代码。没有这个很难排查问题。 Could you maybe provide the Code you are using to set the position of the segments. It’s hard to problemshoot the issue without this. 请确保在更改组件的 PositionMatrix 后更新模拟,否则更改将不可见。为此,你可以使用以下代码:
sim.update()
app.render()
sim.setInitialState()
感谢回复
关于初始段的放置: pm = vcMatrix.new() pm.P.X = 0.0; pm.P.Y = 0.0; pm.P.Z = 0.0 c.PositionMatrix = pm
关于后续段的放置: pm = vcMatrix.new(prev_comp.WorldPositionMatrix) nm = vcMatrix.new(next_comp.PositionMatrix)
nm.P.X = pm.P.X + delta nm.P.Y = pm.P.Y nm.P.Z = pm.P.Z next_comp.PositionMatrix = nm
目前我只尝试过使用 app.render(),因为我的理解是脚本中的更改会在关闭并重新打开脚本时更新。我正在将轨道生成到一个空世界中。
keke
2026年2月17日,下午12:38
4
请注意,nm.P.X = 10.0 并不可行。这是因为 nm.P 会创建一个包含位置值的新 vcVector 实例,但创建后该实例与 nm 并无关联。因此,这只会设置该副本的 X 值,而原始矩阵的位置保持不变。请尝试改为: P = nm.P P.X = 10.0 nm.P = P
这是 VC API 中一个相当常见的错误,用户需要习惯这一点。
-k
2 个赞
网友评论
最新评论