Cables#
- class Cable(**kwds)#
- Creates a cable.
- The cable receives input/output (Winch, Anchor) elements and a variable number of Pulley elements, wrapping around them in an open-track configuration. If only pulleys are provided, the resulting cable track is closed. - The effects of the longitudinal tension coupling between the track components are represented by a number of bodies, joints, motions and forces. Pulley sliding contact and disengagement are considered. 
 - Warning - To instantiate a Cable, Winch, Pulley and Anchor instances need be present in the model first. For a closed-track assembly, only Pulleys are required (minimum of two), while for an open-track, at least one Pulley is required along with two input/output components (Winch, Anchor). - Note - After creating a Cable passing in a combination of the Winch, Pulley and Anchor, any changes to values of attributes belonging to any of these component instances, will be automatically propagated to the Cable instance, upon sending to the solver or calling Summary on the Cable. - Example Create an open-track, single-pulley Cable assembly, featuring a Winch and an Anchor.#- from msolve import * from msolve.machinery.cables.winches import Winch from msolve.machinery.cables.pulleys import Pulley from msolve.machinery.cables.anchors import Anchor from msolve.machinery.cables.cables import Cable model = Model(output="single_pulley_cable") ground = Part(ground=True) global_ref = Marker(body=ground) Units(mass="KILOGRAM", length="MILLIMETER", time="SECOND", force="NEWTON") Accgrav(kgrav=-9.81) winch_base = Part(ip=[5.0, 5.0, 5.0, 0.0, 0.0, 0.0], mass=0.001, cm=Marker(qp=[0.0, 100.0, 600.0], zv=[0.0, 0.0, 1.0], xv=[1.0, 0.0, 0.0])) pulley_base = Part(ip=[5.0, 5.0, 5.0, 0.0, 0.0, 0.0], mass=0.001, cm=Marker(qp=[600.0, 200.0, 800.0], zv=[0.0, 0.0, 1.0], xv=[1.0, 0.0, 0.0])) anchor_base = Part(ip=[10000.0, 10000.0, 10000.0, 0.0, 0.0, 0.0], mass=10.0, cm=Marker(qp=[1000.0, 200.0, 300.0], zv=[0.0, 0.0, 1.0], xv=[1.0, 0.0, 0.0])) winch_rm = Marker(body=winch_base, qp=[0.0, 100.0, 600.0], zv=[0.0, 0.0, 1.0], xv=[1.0, 0.0, 0.0]) pulley_rm = Marker(body=pulley_base, qp=[600.0, 200.0, 800.0], zv=[0.0, 1.0, 0.0], xv=[-1.0, 0.0, 0.0]) anchor_rm = Marker(body=anchor_base, qp=[1000.0, 200.0, 300.0], zv=[0.0, 0.0, 1.0], xv=[1.0, 0.0, 0.0]) jt_winch = Joint(type="FIXED", i=Marker(body=winch_base, qp=[0.0, 100.0, 600.0], zv=[0.0, 0.0, 1.0], xv=[1.0, 0.0, 0.0]), j=Marker(body=ground, qp=[0.0, 100.0, 600.0], zv=[0.0, 0.0, 1.0], xv=[1.0, 0.0, 0.0])) jt_pull = Joint(type="FIXED", i=Marker(body=pulley_base, qp=[600.0, 200.0, 800.0], zv=[0.0, 0.0, 1.0], xv=[1.0, 0.0, 0.0]), j=Marker(body=ground, qp=[600.0, 200.0, 800.0], zv=[0.0, 0.0, 1.0], xv=[1.0, 0.0, 0.0])) winch_0 = Winch(rm=winch_rm, att_body=winch_base, dc=10.0, radius=50.0, width=100.0, ini_wlength=20000.0, motion_type="DoubleStep", amplitude=2.0, date_fwd=1.0, date_rev=3.0, delay=2.0, connection_type="Revolute", mass=20.0) pulley_0 = Pulley(rm=pulley_rm, att_body=pulley_base, dc=10.0, angle=40.0, radius=100.0, depth=15.0, width=35.0, cradius=10.0, mass=2.0, sliding_locking=True, connection_type="Revolute") anchor_0 = Anchor(rm=anchor_rm, att_body=anchor_base, dc=10.0, gra_size=100.0) cable_0 = Cable(rm=global_ref, components=[winch_0, pulley_0, anchor_0], liftoff_coeff=0.001, ini_preload=9810.0, damping_ratio=1.0, cable_mass=1.0, stiffness=100000.0, dc=10.0, contact_stiffness=10000.0, contact_exponent=1.0, contact_damping=100.0, contact_depth=0.1, contact_mu=0.5, contact_vt=1.0, force_graphics=True, frc_gra_scale=0.01) - Name - Type - Symbol - Required - Default - Modifiable - Bool - True - \(\checkmark\) - Double - \(m\) - 1.0 - Reference - - MachineryComponent[0]- Double - \(c\) - 100.0 - Double - \(d\) - 0.1 - Double - \(e\) - 1.0 - Double - \(\mu\) - 0.5 - Double - \(k\) - 10000.0 - Double - \(v_{t}\) - 1.0 - Double - 1.0 - Double - \(d_{c}\) - 10.0 - Bool - False - Double - 0.01 - Int - Auto - Double - 9810.0 - Double - 0.0 - Str - Double - 0.001 - Str - Reference - - Marker- \(\checkmark\) - Double - \(K\) - 100000.0 - active#
- Defines the state of the object. - Type=Bool, Default=True, Modifiable 
 - cable_mass#
- The cable mass. - Type=Double, Default=1.0 
 - components#
- Type=Reference (MachineryComponent) [0] 
 - contact_damping#
- The contact damping. - Type=Double, Default=100.0 
 - contact_depth#
- The contact depth. - Type=Double, Default=0.1 
 - contact_exponent#
- Type=Double, Default=1.0 
 - contact_mu#
- The contact friction. - Type=Double, Default=0.5 
 - contact_stiffness#
- The contact stiffness. - Type=Double, Default=10000.0 
 - contact_vt#
- The contact transition velocity. - Type=Double, Default=1.0 
 - damping_ratio#
- Type=Double, Default=1.0 
 - dc#
- The diameter of the cable wrapped around the pulley. - Type=Double, Default=10.0 
 - force_graphics#
- Type=Bool, Default=False 
 - frc_gra_scale#
- Type=Double, Default=0.01 
 - id#
- The id of the object. - Type=Int 
 - ini_preload#
- The initial preload of the cable. - Type=Double, Default=9810.0 
 - ini_vel#
- The initial velocity. - Type=Double, Default=0.0 
 - label#
- The label of the composite element. - Type=Str 
 - liftoff_coeff#
- The lift-off coefficient of the cable. - Type=Double, Default=0.001 
 - name#
- Defines a nametag for the object. - Type=Str 
 - rm#
- The reference marker of the composite element. - Type=Reference (Marker), Required 
 - stiffness#
- The stiffness of the cable. - Type=Double, Default=100000.0 
 
- class Winch(**kwds)#
- Creates a winch.
- A winch element can be used to attach one end of a cable, wrapping or unwrapping it around itself, in a winding or unwinding motion accordingly: 
 - Name - Type - Symbol - Required - Default - Modifiable - Bool - True - \(\checkmark\) - Double - \(A\) - 0 - Reference - - Part- \(\checkmark\) - Reference - - Connection- Enum - REVOLUTE - Double - \(T_{f}\) - 0 - Double - \(T_{r}\) - 0 - Double - 10.0 - Double - \(T_{d}\) - 0 - Int - Auto - Double - 10000.0 - Str - Double - \(m\) - 0.0 - Str - 0 - Enum - DoubleStep - Str - Double - \(R\) - \(\checkmark\) - Reference - - Marker- \(\checkmark\) - Double - \(W\) - 20.0 - active#
- Defines the state of the object. - Type=Bool, Default=True, Modifiable 
 - amplitude#
- The amplitude of the winch motion defined in number of revolutions.Used only when motion_type is set to ‘DoubleStep’. - Type=Double, Default=0 
 - att_body#
- The part to which the winch is attached. - Type=Reference (Part), Required, Default=base_body 
 - connection#
- Connection related. - Type=Reference (Connection) 
 - connection_type#
- The type of joint used to constrain the winch to the attachment body. - Type=Enum, Default=REVOLUTE - Permitted values are: - CYLINDRICAL 
- REVOLUTE 
 
 - date_fwd#
- The start time for the winding step function of the winch. Used only when motion_type is set to ‘DoubleStep’. - Type=Double, Default=0 
 - date_rev#
- The start time for the unwinding step function of the winch. Used only when motion_type is set to ‘DoubleStep’. - Type=Double, Default=0 
 - dc#
- The diameter of the cable wrapped around the winch. - Type=Double, Default=10.0 
 - delay#
- Type=Double, Default=0 
 - id#
- The id of the object. - Type=Int 
 - ini_wlength#
- The initial wrapped length of the winch. - Type=Double, Default=10000.0 
 - label#
- A string describing the object. - Type=Str 
 - mass#
- The mass. - Type=Double, Default=0.0 
 - motion_function#
- The user defined expression for the winch motion. Used only when motion_type is set to ‘Used Defined’. - Type=Str, Default=0 
 - motion_type#
- The type of user input for the definition of the winch motion. - Type=Enum, Default=DoubleStep - Permitted values are: - DoubleStep 
- UserDefined 
 
 - name#
- Defines a nametag for the object. - Type=Str 
 - radius#
- The winch radius. - Type=Double, Required, Default=50.0 
 - rm#
- Reference marker, used for positioning. - Type=Reference (Marker), Required 
 - width#
- The winch axial width. - Type=Double, Default=20.0 
 
- class Pulley(**kwds)#
- Creates a pulley.
- A pulley element, that a cable wraps around, can be used to change the direction of the load applied to the cable. 
 - The Pulley is defined by the following dimensions (see Comment 2):   - Pulley profile geometry.# - Name - Type - Symbol - Required - Default - Modifiable - Bool - True - \(\checkmark\) - Double - \(A\) - 40.0 - Reference - - Part- \(\checkmark\) - Reference - - Connection- Enum - REVOLUTE - Double - \(C\) - 7.5 - Double - \(d_{c}\) - 10.0 - Double - \(D\) - 10.0 - Int - Auto - Str - Double - \(m\) - 0.0 - Str - Double - \(R\) - 100.0 - Reference - - Marker- \(\checkmark\) - Bool - True - Double - \(W\) - 40.0 - active#
- Defines the state of the object. - Type=Bool, Default=True, Modifiable 
 - angle#
- The profile angle of the pulley. - Type=Double, Default=40.0 
 - att_body#
- The part to which the pulley is attached. - Type=Reference (Part), Required, Default=base_body 
 - connection#
- Connection related. - Type=Reference (Connection) 
 - connection_type#
- The type of joint used to constrain the pulley to the attachment body. - Type=Enum, Default=REVOLUTE - Permitted values are: - CYLINDRICAL 
- REVOLUTE 
 
 - cradius#
- The profile radius of the pulley. - Type=Double, Default=7.5 
 - dc#
- The diameter of the cable wrapped around the pulley. - Type=Double, Default=10.0 
 - depth#
- The profile depth of the pulley. - Type=Double, Default=10.0 
 - id#
- The id of the object. - Type=Int 
 - label#
- A string describing the object. - Type=Str 
 - mass#
- The mass. - Type=Double, Default=0.0 
 - name#
- Defines a nametag for the object. - Type=Str 
 - radius#
- The pulley radius. - Type=Double, Default=100.0 
 - rm#
- Reference marker, used for positioning. - Type=Reference (Marker), Required 
 - sliding_locking#
- Sliding locking activation flag. - Type=Bool, Default=True 
 - width#
- The profile width of the pulley. - Type=Double, Default=40.0 
 
- class Anchor(**kwds)#
- Creates an Anchor.
- An anchor element can be used to attach one end of a cable, and represents a fixed connection between the anchor and the attaching body: 
 - Name - Type - Required - Default - Modifiable - Designable - Bool - True - \(\checkmark\) - Reference - - Part- \(\checkmark\) - Reference - - Connection- Double - 10.0 - Double - 0.0 - Double - 100.0 - Int - Auto - Str - Double - 0.0 - Str - Reference - - Marker- \(\checkmark\) - Double - 0.0 - active#
- Defines the state of the object. - Type=Bool, Default=True, Modifiable 
 - att_body#
- The part to which the anchor is attached. - Type=Reference (Part), Required, Default=base_body 
 - connection#
- Connection related. - Type=Reference (Connection) 
 - dc#
- The diameter of the cable wrapped around the pulley. - Type=Double, Default=10.0 
 - density#
- The density. - Type=Double, Default=0.0 
 - gra_size#
- The graphic radius of the anchor. - Type=Double, Default=100.0 
 - id#
- The id of the object. - Type=Int 
 - label#
- A string describing the object. - Type=Str 
 - mass#
- The mass. - Type=Double, Default=0.0 
 - name#
- Defines a nametag for the object. - Type=Str 
 - rm#
- Reference marker, used for positioning. - Type=Reference (Marker), Required 
 - wradius#
- The wrapped radius of the anchor. - Type=Double, Default=0.0