Python package
ra.bypass
Bypass shanks whose arms cross past each other.
import rhinoartisan as ra
Wraps ArtisanPlugin.Scripting.BypassApi.
Functions
| Function | |
|---|---|
all() | Bypass handles for every object of this kind in the active document (empty when there is no document). |
by_layer() | Bypass handles on the layer with the given full path (empty when the layer does not exist). |
count() | Number of objects of this kind in the active document. |
create() | Builds a bypass shank — the ArtisanBypass tool, headless: a band whose two arms cross past each other instead of meeting. |
find() | The handle for id, or None when the id does not belong to an object of this kind. |
selected() | Bypass handles for the objects of this kind currently selected in the active document. |
ra.bypass.all()
ra.bypass.all() -> List[Bypass]
Bypass handles for every object of this kind in the active document (empty when there is no document).
ra.bypass.by_layer()
ra.bypass.by_layer(layer_name: str) -> List[Bypass]
Bypass handles on the layer with the given full path (empty when the layer does not exist).
| Parameter | Type | |
|---|---|---|
layer_name | str | required |
ra.bypass.count()
ra.bypass.count() -> int
Number of objects of this kind in the active document.
ra.bypass.create()
ra.bypass.create(finger_diameter=None, top_width=None, top_height=None, bottom_width=None, bottom_height=None, arm_angle=None, arm_height=None, arm_width=None, with_gems=None, gem_size=None, profile=None, plane=None, element=None) -> Bypass
Builds a bypass shank — the ArtisanBypass tool, headless: a band whose two arms cross past each other instead of meeting. Millimetres / degrees; omitting keeps the tool default (or the user’s saved defaults). finger_diameter 0 = the document’s finger size. with_gems turns on the stone run along the arms. Returns an Bypass handle: use its setters for the rest of the model (the handle covers the full parameter set). element = name of a saved element (ra.elements.list) to start from; explicit arguments override it.
| Parameter | Type | |
|---|---|---|
finger_diameter | float | optional — None = the tool default |
top_width | float | optional — None = the tool default |
top_height | float | optional — None = the tool default |
bottom_width | float | optional — None = the tool default |
bottom_height | float | optional — None = the tool default |
arm_angle | float | optional — None = the tool default |
arm_height | float | optional — None = the tool default |
arm_width | float | optional — None = the tool default |
with_gems | bool | optional — None = the tool default |
gem_size | float | optional — None = the tool default |
profile | str | optional — None = the tool default |
plane | Optional[PlaneLike] | optional — None = the tool default |
element | str | optional — None = the tool default |
ra.bypass.find()
ra.bypass.find(id: IdLike) -> Bypass
The handle for id, or None when the id does not belong to an object of this kind.
| Parameter | Type | |
|---|---|---|
id | IdLike | required |
ra.bypass.selected()
ra.bypass.selected() -> List[Bypass]
Bypass handles for the objects of this kind currently selected in the active document.
Handles
Objects returned by the functions above. Assigning a settable property regenerates the object; the change is one undo step inside ra.transaction().
Bypass (handle)
Bypass ring shank: two arms that cross past each other instead of meeting. Multiple gems possible, so no single MotherGem.
| Property | Type | Settable | |
|---|---|---|---|
gems | BypassGems | ||
layer_name | str | ||
mother_gem_id | str | ||
object_type | str | ||
position | Point3d | ||
ring_diameter_mm | float | ||
ring_size_label | str | ||
ring_size_region | str | ||
shank | BypassShank | Parameter sections — each is a live view over the shank’s stored parameters; their setters regenerate the shank in place (same Guid) and call LicenseGate.RequireValid() first. Millimetres. |
| Method | |
|---|---|
delete() | |
move(translation: VectorLike) | |
set_element(element: str) | Applies a saved ByPass element (ra.elements.list(“ByPass”)) to this shank: its parameters replace the current ones, the ring size stays, and the shank regenerates in place (same id). |
Plus what every handle has: id, delete(), update(**kwargs), parameters(), equality and hashing by id, and raw (the underlying .NET object).
BypassGems (section)
The gems row a bypass shank carries along each arm. A live view over the shank’s stored parameters: getters read the current values, setters regenerate the shank in place (same Guid) and are license-gated.
| Property | Type | Settable | |
|---|---|---|---|
angle | float | yes | arc covered by the row from each tip, degrees |
automatic_prong_diameter | bool | yes | |
bright_cut | float | yes | mm |
double_prong_setting | bool | yes | |
drill_allow_intersection | bool | yes | |
drill_enabled | bool | yes | |
drill_height | float | yes | mm |
drill_type | str | yes | ”NONE”, “ROUND” or “QUAD” |
drill_visible | bool | yes | |
drill_width | float | yes | mm |
enabled | bool | yes | |
end_prong_count | int | yes | |
extension_for_manufacturing | float | yes | mm |
gem_inside | float | yes | mm |
gem_shape | str | yes | ”ROUND”, “PRINCESS”, … |
gem_size | float | yes | mm |
gem_size_end | float | mm | |
gem_size_middle | float | mm | |
gem_size_start | float | mm | |
gradient | bool | yes | Stone-size gradient along the row. |
gradient_middle_position | float | yes | 0..1 |
gradient_points | int | yes | |
inner_height | float | yes | inner channel height, mm |
inner_margin | float | yes | mm |
inner_width | float | yes | inner channel width, mm |
margin | float | yes | mm |
min_distance | float | yes | mm |
prong_diameter | float | yes | mm |
prong_distance | float | yes | mm |
prong_grow | float | yes | mm |
prong_height | float | yes | mm |
prong_min_diameter | float | yes | mm |
prong_spacing | float | yes | mm |
prong_type | str | yes | ”NONE”, “SHARED” or “SCALLOPED” |
scallop_gem_height | float | ||
scallop_gem_width | float | Scalloped-setting proportions (percentages, not mm). | |
scallop_prong_height | float | ||
scallop_prong_width | float | ||
scallop_rail_height | float | ||
scallop_rail_width | float | ||
scallop_remove_channel | bool | yes | |
vertical | float | yes | mm |
| Method | |
|---|---|
set_gem_size_gradient(start: float, middle: float, end: float) | |
set_scallop_gem(width: float, height: float) | |
set_scallop_prong(width: float, height: float) | |
set_scallop_rail(width: float, height: float) |
BypassShank (section)
The bypass band: the two band sections, the crossing arms and the optional bridge, plus the per-station cross-sections.
| Property | Type | Settable | |
|---|---|---|---|
arm_angle | float | yes | degrees |
arm_height | float | yes | mm |
arm_tangent | float | yes | |
arm_width | float | yes | mm |
bottom_height | float | yes | mm |
bottom_width | float | yes | mm |
bridge_angle | float | yes | degrees |
bridge_diameter | float | yes | mm |
bridge_enabled | bool | yes | |
bridge_thickness | float | yes | mm |
bridge_width | float | yes | mm |
cap_distance | float | yes | mm |
displacement | float | yes | how far the arms pass each other, mm |
displacement_start | int | yes | rail point where the displacement starts |
profile_name | str | RING_PROFILE asset name, "" when unset | |
shared_profile | bool | yes | every station uses the same profile asset |
stations | List[BypassStation] | yes | |
tip_rotation | float | yes | roll of the tip about the rail tangent, degrees |
top_height | float | yes | mm |
top_width | float | yes | mm |
use_stations | bool | yes | build from Stations instead of the top/bottom gradient |
| Method | |
|---|---|
set_profile(asset_name: str) | RING_PROFILE asset by name — list them with ra.assets.list(“RING_PROFILE”) |
set_station(index: int, position: float, width: float, height: float, profile_name=None) |