职位:34
线程:14
加入:2021年10月
声誉:
0
11-22-2021,晚上08:17
(这篇文章最后修改:11/222021,08:19 PM由audreyv)。
我一直在使用python脚本生成曲线并将其投影到表面上。
python脚本使用RoboDK API和曲线跟踪项目。由于某些原因,当我在RoboDK上运行程序时,它生成了曲线,但没有将曲线投影到表面上。它还说python脚本只是继续运行,直到我手动选择停止它才会停止。
当我把整个电台发给一个同事时,它对她来说效果很好。我想知道它是否可能是RoboDK或Python的版本,或者是什么可能导致这个问题。
帖子:1832
线程:2
加入:2018年10月
声誉:
70
您使用的是最新版本的RoboDK吗?
“帮助”- >“关于”
最新版本是5.3.0(11月4日)或5.3.1(11月14日)
杰里米
职位:34
线程:14
加入:2021年10月
声誉:
0
我使用的是5.3.0,我的同事(没有遇到这个问题)使用的是5.2.2。
职位:34
线程:14
加入:2021年10月
声誉:
0
我刚刚下载了52022世界杯国家队名单.2.2版本,脚本最终投影曲线并自行停止。
帖子:1832
线程:2
加入:2018年10月
声誉:
70
你能提供脚本吗,我会把它传递给我们的开发团队。
杰里米
职位:34
线程:14
加入:2021年10月
声誉:
0
该程序将创建点并将这些点投影到窗口空白上;X,y坐标形成一个正弦波
#变量
# x x坐标单位为mm
# y y坐标,单位mm
# z z坐标单位为mm
点之间的y坐标增量
# x_steps x-
def Make_Points(Point_Start, Point_End, Num_Points):
#提取起始点
Point_List = []
x = Point_Start[0]
y = Point_Start[1]
z = Point_Start[2]
计算每个连续航路点之间的距离
x_steps = (Point_End[0] - Point_Start[0])/(Num_Points - 1)
Point_i = [x,y,z]
Point_List = []
Point_List.append (point_i)
对于r在(2)范围内:
对于范围(49)中的I:
X += x_steps
Point_i = [x,y,z]
Point_List.append (point_i)
若r == 1:
打破
Y += 30
Point_i = [x,y,z]
Point_List.append (point_i)
对于范围(49)中的I:
X -= x_steps
Point_i = [x,y,z]
Point_List.append (point_i)
Y += 30
Point_i = [x,y,z]
Point_List.append (point_i)
返回Point_List
* #导入robolink库
* #导入robodk机器人工具箱
只在需要时才导入种子#
只在需要时才导入randint #
#启动参数
Point_Start = [130.3,-616,117]
Point_End = [354.4,-616,117]
Num_Points = 50
#生成点,将用于创建正弦波路径
POINTS = Make_Points(Point_Start, Point_End, Num_Points)
打开与模拟器的通信
RDK = Robolink()
#关闭自动渲染
RDK.Render(假)
#自动删除先前生成的项目(Auto标签)
list_items = RDK.ItemList()
对于list_items中的item:
如果item.Name () .startswith(汽车的):
item.Delete ()
#在开始模拟之前打开渲染
RDK.Render(真正的)
object_curve = RDK.AddCurve(POINTS)
ProjectionType = projection_nearest
#可用的值包括:
#PROJECTION_NONE = 0 #无曲线投影
投影将是表面上最近的点
# project_along_normal = 2 #投影将沿着法线进行。
# project_along_normal_recalc = 3 #投影将沿着法线进行。此外,法线将根据表面法线重新计算。
投影将是表面上最近的点,法线将被重新计算
法线根据最近投影的表面法线重新计算
#-------------------------------------------------------------
#要求用户提供该对象的特征
object_features = RDK。ITEM_TYPE_OBJECT(“选择具有要投影的特征的对象(曲线和/或点)”)
如果不是object_features.Valid():
辞职()
要求用户提供对象的表面作为参考
object_surface = RDK。ItemUserPick(“选择表面对象来投影特征”,ITEM_TYPE_OBJECT)
如果不是object_surface.Valid():
辞职()
创建一个表面对象的副本
object_surface.Copy ()
new_object = RDK.Paste(object_surface.Parent())
new_object。setName(“重新计算法线”)
new_object.setVisible(真正的)
#隐藏用于构建新对象的对象,并使用所需的曲线
object_features.setVisible(假)
object_surface.setVisible(假)
#关闭渲染(更快)
RDK.Render(假)
添加所有曲线,投影(迭代所有曲线,直到没有发现更多的曲线)
曲线点,name_feature = object_features。GetPoints (FEATURE_CURVE, 0)
打印(name_feature)
curve_points_proj = RDK。ProjectPoints(curve_points, object_surface, ProjectionType)
RDK。添加曲线(curve_points_proj, new_object, True, PROJECTION_NONE)
#打开渲染(可选)
RDK.Render(真正的)
打印(“完成”)
path_settings = RDK。AddMillingProject(“AutoCurveFollow设置”)
prog, status = path_settings.setMillingParameters(part=new_object)
这是我一直使用的脚本投影路径到一个表面上。
下载5.2.2022世界杯国家队名单2并运行此脚本后,它可以正常工作。对于5.3.0版本,它不起作用。
帖子:1832
线程:2
加入:2018年10月
声誉:
70
你好,
您是否还可以添加一个小的.rdk文件,我们可以在其中测试脚本?
顺便说一句,您可以将脚本附加为.py文件。
当您选择“新回复”时,您可以按“选择文件”,然后按“添加附件”。
杰里米
职位:34
线程:14
加入:2021年10月
声誉:
0
11/23-2021,晚上10:42
(这篇文章最后修改:11/23-2021,10:43 PM由audreyv)。
附带的是一个测试站以及作为.py文件的python脚本。
下面是python脚本