Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops Lua循环以创建多个隔开的项目_Loops_Lua_Logic_Cad - Fatal编程技术网

Loops Lua循环以创建多个隔开的项目

Loops Lua循环以创建多个隔开的项目,loops,lua,logic,cad,Loops,Lua,Logic,Cad,我是卢阿的新手。我正在尝试在Lua中创建一个插件,它将创建多个间隔开的块。目前,我似乎无法让table函数更新块的新位置 这里有一个坐标系,文档可以在这里找到 用户界面允许用户输入所需的重复块数 for x_panels = 1, data.x_panels do local position = {data.origin[1],data.origin[2],data.origin[3]} local new_stock = py

我是卢阿的新手。我正在尝试在Lua中创建一个插件,它将创建多个间隔开的块。目前,我似乎无法让table函数更新块的新位置

这里有一个坐标系,文档可以在这里找到

用户界面允许用户输入所需的重复块数

for x_panels = 1, data.x_panels do
       
       local position =  {data.origin[1],data.origin[2],data.origin[3]}
       

       local new_stock = pytha.create_block(data.width, data.height, data.thickness, {data.position}) 
             pytha.set_element_name(new_stock, "Stock")
             table.insert(data.cur_elements, new_stock)
             data.x_panels = -1
             table.insert(position,{data.origin[1] + data.width, data.origin[2], data.origin[3]})
        
   end  

提前谢谢你

从代码的外观来看,您正在使用
table.insert()
尝试更新下一个块的位置。此方法所做的是将您新想要的职位插入到您已经存在的职位表中,从而导致:

position = {
  data.origin[1], 
  data.origin[2], 
  data.origin[3],
  { data.origin[1] + data.width, data.origin[2], data.origin[3] }
}
此外,位置变量似乎未在创建块中使用,并且从发布的API的外观来看,data.position不可用

我的建议是,在循环外创建原始位置表,并在循环内通过直接将该表中的值设置为下一次迭代所需的新位置来更新它:

-- assuming format of data.origin = { 0, 0, 0 }
local position = data.origin

for i = 1, data.x_panels do
  pytha.create_block(data.width, data.height, data.thickness, position) 
  pytha.set_element_name(new_stock, "Stock")
  table.insert(data.cur_elements, new_stock)
  position[1] = position[1] + data.width
end 

您还可以使用while循环,因为实际上没有使用
i
,但这取决于您

尝试向lua表提供一个
step
参数,并使用它跳转每个
x
金额,直到它达到条件,相关文档可用。谢谢。让我。尝试一下,并更新你。