""" cylinder = self.copy() cylinder.transform(transformation) return cylinder # ============================================================================== # Main # ============================================================================== if __name__ == "__main__": from compas.geometry import Frame from compas.geometry import Transformation from compas.geometry import Circle from compas.geometry import Cylinder cylinder = Cylinder(Circle(Plane.worldXY(), 5), 7) frame = Frame([1, 1, 1], [0.68, 0.68, 0.27], [-0.67, 0.73, -0.15]) print(frame.normal) T = Transformation.from_frame(frame) cylinder.transform(T) print(cylinder) print(Plane.worldXY().data) data = {'circle': Circle(Plane.worldXY(), 5).data, 'height': 7.} cylinder = Cylinder.from_data(data) print(cylinder) import doctest doctest.testmod()
from compas.datastructures import Mesh from compas.geometry import Circle from compas.geometry import Cylinder from compas.geometry import Frame from compas.geometry import Plane from compas.geometry import Translation from compas.robots import Joint from compas.robots import RobotModel from compas_rhino.artists import RobotModelArtist from compas_fab.robots import Configuration # 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])) # create robot robot = RobotModel("robot", links=[], joints=[]) # add first link to robot link0 = robot.add_link("world") # add second link to robot mesh = Mesh.from_shape(cylinder) link1 = robot.add_link("link1", visual_mesh=mesh, visual_color=(0.2, 0.5, 0.6)) # add the joint between the links axis = (0, 0, 1) origin = Frame.worldXY() robot.add_joint("joint1", Joint.CONTINUOUS, link0, link1, origin, axis)
# Rhino from compas.datastructures import Mesh from compas.geometry import Circle from compas.geometry import Cylinder from compas.geometry import Frame from compas.geometry import Plane from compas.geometry import Translation from compas.robots import Joint from compas.robots import RobotModel from compas_fab.rhino import RobotArtist from compas_fab.robots import Configuration # 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([length / 2., 0, 0])) # create robot robot = RobotModel("robot", links=[], joints=[]) # add first link to robot link0 = robot.add_link("world") # add second link to robot mesh = Mesh.from_shape(cylinder) link1 = robot.add_link("link1", visual_mesh=mesh, visual_color=(0.2, 0.5, 0.6)) # add the joint between the links axis = (0, 0, 1) origin = Frame.worldXY() robot.add_joint("joint1", Joint.CONTINUOUS, link0, link1, origin, axis)
from compas_rhino.artists import RobotModelArtist robot = RobotModel('tom') # ============================================================================== # Links # ============================================================================== cylinder = Cylinder(Circle(Plane(Point(0, 0, 0), Vector(0, 0, 1)), 0.5), 0.02) mesh = Mesh.from_shape(cylinder, u=32) base = robot.add_link('base', visual_meshes=[mesh], visual_color=(0.1, 0.1, 0.1)) cylinder = Cylinder(Circle(Plane(Point(0, 0, 0), Vector(0, 0, 1)), 0.2), 0.5) cylinder.transform(Translation.from_vector([0, 0, 0.25])) mesh = Mesh.from_shape(cylinder, u=24) shoulder = robot.add_link('shoulder', visual_meshes=[mesh], visual_color=(0, 0, 1.0)) cylinder = Cylinder(Circle(Plane(Point(0, 0, 0), Vector(0, 0, 1)), 0.08), 1.0) cylinder.transform(Translation.from_vector([0, 0, 0.5])) mesh = Mesh.from_shape(cylinder) arm = robot.add_link('arm', visual_meshes=[mesh], visual_color=(0.0, 1.0, 1.0)) cylinder = Cylinder(Circle(Plane(Point(0, 0, 0), Vector(0, 0, 1)), 0.08), 1.0) cylinder.transform(Translation.from_vector([0, 0, 0.5])) mesh = Mesh.from_shape(cylinder) forearm = robot.add_link('forearm', visual_meshes=[mesh],