diff --git a/lecture_03/assignment_02/vasilis_aloutsanidis/assignment-02.ghx b/lecture_03/assignment_02/vasilis_aloutsanidis/assignment-02.ghx new file mode 100644 index 0000000..8ff0339 --- /dev/null +++ b/lecture_03/assignment_02/vasilis_aloutsanidis/assignment-02.ghx @@ -0,0 +1,542 @@ + + + + + + + + 0 + 2 + 2 + + + + + + + 1 + 0 + 7 + + + + + + b783cd4a-17a6-4bf1-aad4-cea27f7b9f39 + Shaded + 1 + + 100;150;0;0 + + + 100;0;150;0 + + + + + + 637835858387853546 + + assignment-02.ghx + + + + + 0 + + + + + + -61 + -262 + + 1.62833309 + + + + + 0 + + + + + + + 0 + + + + + 1 + + + + + GhPython, Version=7.4.21067.13001, Culture=neutral, PublicKeyToken=null + 7.4.21067.13001 + + 00000000-0000-0000-0000-000000000000 + + + + + + + + + 6 + + + + + 410755b1-224a-4c1e-a407-bf32fb45ea7e + 00000000-0000-0000-0000-000000000000 + GhPython Script + + + + + from compas.artists import Artist +from compas.datastructures import Mesh +from compas.geometry import Circle +from compas.geometry import Cylinder +from compas.geometry import Sphere +from compas.geometry import Frame +from compas.geometry import Plane +from compas.geometry import Translation +from compas.robots import Configuration +from compas.robots import Joint +from compas.robots import RobotModel + +# create cylinder in yz plane +radius, length = 0.3, 5 +cylinder = Cylinder(Circle(Plane([0, 0, 0], [1, 0, 0]), radius), length) +cylinder.transform(Translation.from_vector([length / 2.0, 0, 0])) + +sphere = Sphere([0,0,0], radius) +sphere.transform(Translation.from_vector([radius, 0, 0])) + +# create robot model +model = RobotModel("robot", links=[], joints=[]) + +# link meshes (calling Mesh.from_shape effectively creates a copy of the shape) +mesh1 = Mesh.from_shape(cylinder) +mesh2 = Mesh.from_shape(sphere) +mesh3 = Mesh.from_shape(cylinder) +mesh4 = Mesh.from_shape(sphere) +mesh5 = Mesh.from_shape(cylinder) + +# add links +link0 = model.add_link("world") +link1 = model.add_link("link1", visual_mesh=mesh1, visual_color=(0.2, 0.5, 0.6)) +link2 = model.add_link("link2", visual_mesh=mesh2, visual_color=(0.5, 0.6, 0.2)) +link3 = model.add_link("link3", visual_mesh=mesh3, visual_color=(0.1, 0.6, 0.2)) +link4 = model.add_link("link4", visual_mesh=mesh4, visual_color=(0.8, 0.6, 0.4)) +link5 = model.add_link("link5", visual_mesh=mesh5, visual_color=(0.6, 0.3, 0.4)) + +# add joints between the links +axis = (0, 0, 1) + +origin = Frame.worldXY() +model.add_joint("joint1", Joint.CONTINUOUS, link0, link1, origin, axis) + +origin = Frame((length, 0, 0), (1, 0, 0), (0, 1, 0)) +model.add_joint("joint2", Joint.CONTINUOUS, link1, link2, origin, axis) + +origin = Frame((radius*2, 0, 0), (1, 0, 0), (0, 1, 0)) +model.add_joint("joint3", Joint.CONTINUOUS, link2, link3, origin, axis) + +origin = Frame((length, 0, 0), (1, 0, 0), (0, 1, 0)) +model.add_joint("joint4", Joint.CONTINUOUS, link3, link4, origin, axis) + +origin = Frame((radius*2, 0, 0), (1, 0, 0), (0, 1, 0)) +model.add_joint("joint5", Joint.CONTINUOUS, link4, link5, origin, axis) + +# Create a configuration object matching the number of joints in your model +configuration = model.zero_configuration() +configuration.joint_values = joint_vals +print (configuration) + +# Update the model using the artist +artist = Artist(model) +artist.update(configuration) + +# Render everything +a = artist.draw_visual() +#artist.redraw() + + GhPython provides a Python script component + + 52 + 0 + + + 691 + 1048 + + true + false + false + 217ab609-4db7-403e-a036-3ba65d160c68 + false + true + GhPython Script + Python + + + + + + 293 + 405 + 111 + 44 + + + 361 + 427 + + + + + + 1 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 2 + 3ede854e-c753-40eb-84cb-b48008f14fd4 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + 1 + true + Script variable Python + 1b744955-0a02-47a5-b850-6b4cc85c4c1a + x + joint_vals + true + 1 + true + abeb2242-eebe-4110-87f0-e8b918a97691 + 9c25e269-cc0d-4c76-ac65-82480a1db7cb + 3c3929f5-ce4d-4cc8-a280-c5f6c1d636d3 + ad1eb36b-d6f2-4bff-8eab-506238062d82 + 3f37abed-43cb-4b68-80df-4817a61ce110 + 5 + 39fbc626-7a01-46ab-a18e-ec1c0c41685b + + + + + + 295 + 407 + 51 + 40 + + + 322 + 427 + + + + + + + + The execution information, as output and error streams + da241df2-849d-47cd-b5d4-ad1ff820cb01 + out + out + false + 0 + + + + + + 376 + 407 + 26 + 20 + + + 389 + 417 + + + + + + + + Script output a. + 261ae580-8c37-4954-a671-34b1be45220d + a + a + false + 0 + + + + + + 376 + 427 + 26 + 20 + + + 389 + 437 + + + + + + + + + + + + + + 57da07bd-ecab-415d-9d86-af36d7073abc + Number Slider + + + + + Numeric slider for single values + abeb2242-eebe-4110-87f0-e8b918a97691 + Number Slider + + false + 0 + + + + + + 57 + 383 + 160 + 20 + + + 57.12386 + 383.6541 + + + + + + 2 + 1 + 0 + 3.14 + -3.14 + 0 + 0 + + + + + + + + + 57da07bd-ecab-415d-9d86-af36d7073abc + Number Slider + + + + + Numeric slider for single values + 9c25e269-cc0d-4c76-ac65-82480a1db7cb + Number Slider + + false + 0 + + + + + + 57 + 406 + 160 + 20 + + + 57.12386 + 406.6541 + + + + + + 2 + 1 + 0 + 3.14 + -3.14 + 0 + 0.45 + + + + + + + + + 57da07bd-ecab-415d-9d86-af36d7073abc + Number Slider + + + + + Numeric slider for single values + 3c3929f5-ce4d-4cc8-a280-c5f6c1d636d3 + Number Slider + + false + 0 + + + + + + 57 + 429 + 160 + 20 + + + 57.12386 + 429.6541 + + + + + + 2 + 1 + 0 + 3.14 + -3.14 + 0 + 0.58 + + + + + + + + + 57da07bd-ecab-415d-9d86-af36d7073abc + Number Slider + + + + + Numeric slider for single values + ad1eb36b-d6f2-4bff-8eab-506238062d82 + Number Slider + + false + 0 + + + + + + 57 + 452 + 160 + 20 + + + 57.92836 + 452.344 + + + + + + 2 + 1 + 0 + 3.14 + -3.14 + 0 + -0.77 + + + + + + + + + 57da07bd-ecab-415d-9d86-af36d7073abc + Number Slider + + + + + Numeric slider for single values + 3f37abed-43cb-4b68-80df-4817a61ce110 + Number Slider + + false + 0 + + + + + + 60 + 477 + 160 + 20 + + + 60.38486 + 477.5231 + + + + + + 2 + 1 + 0 + 3.14 + -3.14 + 0 + -0.19 + + + + + + + + + + + + + + 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 + + + + + \ No newline at end of file