线程评级:
  • 0票(s) - 0平均
  • 1
  • 2
  • 3.
  • 4
  • 5
使用python脚本投影一个表面
# 1
我一直在使用python脚本生成曲线并将其投影到表面上。

python脚本使用RoboDK API和曲线跟踪项目。由于某些原因,当我在RoboDK上运行程序时,它生成了曲线,但没有将曲线投影到表面上。它还说python脚本只是继续运行,直到我手动选择停止它才会停止。

当我把整个电台发给一个同事时,它对她来说效果很好。我想知道它是否可能是RoboDK或Python的版本,或者是什么可能导致这个问题。
# 2
您使用的是最新版本的RoboDK吗?
“帮助”- >“关于”
最新版本是5.3.0(11月4日)或5.3.1(11月14日)

杰里米
有关RoboDK及其功能的有用信息,请访问我们的2022世界杯32强赛程表时间 通过观看我们的Youtube频道


# 3
我使用的是5.3.0,我的同事(没有遇到这个问题)使用的是5.2.2。
# 4
您可以在这里尝试5.2.2,并告诉我们它是否解决了问题。//www.sinclairbody.com/2022世界杯国家队名单downloads/Install-Rob...v5.2.2.exe
如果是这样,我们将调查这些版本之间发生了什么。
杰里米
有关RoboDK及其功能的有用信息,请访问我们的2022世界杯32强赛程表时间 通过观看我们的Youtube频道


# 5
我刚刚下载了52022世界杯国家队名单.2.2版本,脚本最终投影曲线并自行停止。
# 6
你能提供脚本吗,我会把它传递给我们的开发团队。

杰里米
有关RoboDK及其功能的有用信息,请访问我们的2022世界杯32强赛程表时间 通过观看我们的Youtube频道


# 7
该程序将创建点并将这些点投影到窗口空白上;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版本,它不起作用。
# 8
你好,

您是否还可以添加一个小的.rdk文件,我们可以在其中测试脚本?
顺便说一句,您可以将脚本附加为.py文件。

当您选择“新回复”时,您可以按“选择文件”,然后按“添加附件”。

杰里米
有关RoboDK及其功能的有用信息,请访问我们的2022世界杯32强赛程表时间 通过观看我们的Youtube频道


# 9
附带的是一个测试站以及作为.py文件的python脚本。

下面是python脚本


附加文件
.rdk Test_Station.rdk(大小:3.24 MB /下载:22022世界杯国家队名单04)
. py Prog1.py(大小:4.23 KB /下载:22022世界杯国家队名单67)
(11-22-2021,晚上8时47分)杰里米写道:您可以在这里尝试5.2.2,并告诉我们它是否解决了问题。//www.sinclairbody.com/2022世界杯国家队名单downloads/Install-Rob...v5.2.2.exe
如果是这样,我们将调查这些版本之间发生了什么。
杰里米

你能给我一个MacOS 5.2.2版本的下载链接吗?2022世界杯国家队名单




浏览此主题的用户:
1客人(年代)