Primitive Maya CV Curves: Difference between revisions
From Animation
Jump to navigationJump to search
Karljahnke (talk | contribs) No edit summary |
Karljahnke (talk | contribs) No edit summary |
||
| Line 1: | Line 1: | ||
=Shapes= | |||
==Circle with pointer== | |||
<pre> | |||
// ========================================== | |||
// Pointer Sphere Curve Tool (MEL) | |||
// ========================================== | |||
global proc createPointerSphereCurve(float $radius, float $length) | |||
{ | |||
int $segments = 12; | |||
float $angleStep = 360.0 / $segments; | |||
string $cmd = "curve -d 1"; | |||
// Pointer tip at origin | |||
$cmd += " -p 0 0 0"; | |||
// Tail connection | |||
$cmd += (" -p 0 0 -" + $length); | |||
// Sphere loop (YZ plane) | |||
for ($i = 0; $i <= $segments; $i++) | |||
{ | |||
float $angle = deg_to_rad($i * $angleStep); | |||
float $y = sin($angle) * $radius; | |||
float $z = cos($angle) * $radius - $length; | |||
$cmd += (" -p 0 " + $y + " " + $z); | |||
} | |||
// Create curve | |||
string $curve = `eval $cmd`; | |||
rename $curve "pointerSphere_CRV"; | |||
// Pivot at origin | |||
xform -ws -piv 0 0 0; | |||
// Freeze transforms | |||
makeIdentity -apply true -t 1 -r 1 -s 1 -n 0; | |||
} | |||
// ========================================== | |||
// UI | |||
// ========================================== | |||
global proc pointerSphereUI() | |||
{ | |||
if (`window -exists pointerSphereWin`) | |||
deleteUI pointerSphereWin; | |||
window -title "Pointer Sphere Curve" -widthHeight 260 120 pointerSphereWin; | |||
columnLayout -adj true -rowSpacing 6; | |||
floatFieldGrp -label "Radius" -numberOfFields 1 -value1 1.0 radiusField; | |||
floatFieldGrp -label "Length" -numberOfFields 1 -value1 3.0 lengthField; | |||
separator -h 10; | |||
button | |||
-label "Create Curve" | |||
-height 30 | |||
-command "float $r = `floatFieldGrp -q -value1 radiusField`; float $l = `floatFieldGrp -q -value1 lengthField`; createPointerSphereCurve($r, $l);"; | |||
showWindow pointerSphereWin; | |||
} | |||
// ========================================== | |||
// Launch | |||
// ========================================== | |||
pointerSphereUI(); | |||
</pre> | |||
=Forms= | =Forms= | ||
Revision as of 09:30, 15 January 2026
Shapes
Circle with pointer
// ==========================================
// Pointer Sphere Curve Tool (MEL)
// ==========================================
global proc createPointerSphereCurve(float $radius, float $length)
{
int $segments = 12;
float $angleStep = 360.0 / $segments;
string $cmd = "curve -d 1";
// Pointer tip at origin
$cmd += " -p 0 0 0";
// Tail connection
$cmd += (" -p 0 0 -" + $length);
// Sphere loop (YZ plane)
for ($i = 0; $i <= $segments; $i++)
{
float $angle = deg_to_rad($i * $angleStep);
float $y = sin($angle) * $radius;
float $z = cos($angle) * $radius - $length;
$cmd += (" -p 0 " + $y + " " + $z);
}
// Create curve
string $curve = `eval $cmd`;
rename $curve "pointerSphere_CRV";
// Pivot at origin
xform -ws -piv 0 0 0;
// Freeze transforms
makeIdentity -apply true -t 1 -r 1 -s 1 -n 0;
}
// ==========================================
// UI
// ==========================================
global proc pointerSphereUI()
{
if (`window -exists pointerSphereWin`)
deleteUI pointerSphereWin;
window -title "Pointer Sphere Curve" -widthHeight 260 120 pointerSphereWin;
columnLayout -adj true -rowSpacing 6;
floatFieldGrp -label "Radius" -numberOfFields 1 -value1 1.0 radiusField;
floatFieldGrp -label "Length" -numberOfFields 1 -value1 3.0 lengthField;
separator -h 10;
button
-label "Create Curve"
-height 30
-command "float $r = `floatFieldGrp -q -value1 radiusField`; float $l = `floatFieldGrp -q -value1 lengthField`; createPointerSphereCurve($r, $l);";
showWindow pointerSphereWin;
}
// ==========================================
// Launch
// ==========================================
pointerSphereUI();
Forms
Hedron
curve -d 1 -p 0 0 -0.707107 -p 0.707107 0 0 -p 0 0 0.707107 -p -0.707107 0 0 -p 0 0 -0.707107 -p 0 1 0 -p 0 0 0.707107 -p 0 -1 0 -p 0 0 -0.707107 -p -0.707107 0 0 -p 0 1 0 -p 0.707107 0 0 -p 0 -1 0 -p -0.707107 0 0 -k 0 -k 1 -k 2 -k 3 -k 4 -k 5 -k 6 -k 7 -k 8 -k 9 -k 10 -k 11 -k 12 -k 13 ;
Hedron with pointer
curve -d 1 -p 0 0 0 -p 0 0 2.292893 -p 0.707107 0 3 -p 0 0 3.707107 -p -0.707107 0 3 -p 0 0 2.292893 -p 0 1 3 -p 0 0 3.707107 -p 0 -1 3 -p 0 0 2.292893 -p -0.707107 0 3 -p 0 1 3 -p 0.707107 0 3 -p 0 -1 3 -p -0.707107 0 3 -k 0 -k 1 -k 2 -k 3 -k 4 -k 5 -k 6 -k 7 -k 8 -k 9 -k 10 -k 11 -k 12 -k 13 -k 14 ;
Sphere
curve -d 1 -p 0 1 0 -p 0 0.866025 -0.5 -p 0 0.5 -0.866025 -p 0 0 -1 -p 0 -0.5 -0.866025 -p 0 -0.866025 -0.5 -p 0 -1 0 -p 0 -0.866025 0.5 -p 0 -0.5 0.866025 -p 0 0 1 -p 0 0.5 0.866025 -p 0 0.866025 0.5 -p 0 1 0 -p -0.5 0.866025 0 -p -0.866025 0.5 0 -p -1 0 0 -p -0.866025 -0.5 0 -p -0.5 -0.866025 0 -p 0 -1 0 -p 0.5 -0.866025 0 -p 0.866025 -0.5 0 -p 1 0 0 -p 0.866025 0.5 0 -p 0.5 0.866025 0 -p 0 1 0 -p 0 0.866025 0.5 -p 0 0.5 0.866025 -p 0 0 1 -p 0.5 0 0.866025 -p 0.866025 0 0.5 -p 1 0 0 -p 0.866025 0 -0.5 -p 0.5 0 -0.866025 -p 0 0 -1 -p -0.5 0 -0.866025 -p -0.866025 0 -0.5 -p -1 0 0 -p -0.866025 0 0.5 -p -0.5 0 0.866025 -p 0 0 1 -k 0 -k 1 -k 2 -k 3 -k 4 -k 5 -k 6 -k 7 -k 8 -k 9 -k 10 -k 11 -k 12 -k 13 -k 14 -k 15 -k 16 -k 17 -k 18 -k 19 -k 20 -k 21 -k 22 -k 23 -k 24 -k 25 -k 26 -k 27 -k 28 -k 29 -k 30 -k 31 -k 32 -k 33 -k 34 -k 35 -k 36 -k 37 -k 38 -k 39 ;
Sphere with pointer
curve -d 1 -p 0 0 0 -p 0 0 -2 -p -0.5 0 -2.133975 -p -0.866025 0 -2.5 -p -1 0 -3 -p -0.866025 0 -3.5 -p -0.5 0 -3.866025 -p 0 0 -4 -p 0.5 0 -3.866025 -p 0.866025 0 -3.5 -p 1 0 -3 -p 0.866025 0 -2.5 -p 0.5 0 -2.133975 -p 0 0 -2 -p 0 0.5 -2.133975 -p 0 0.866025 -2.5 -p 0 1 -3 -p 0 0.866025 -3.5 -p 0 0.5 -3.866025 -p 0 0 -4 -p 0 -0.5 -3.866025 -p 0 -0.866025 -3.5 -p 0 -1 -3 -p 0 -0.866025 -2.5 -p 0 -0.5 -2.133975 -p 0 0 -2 -p 0 0.5 -2.133975 -p 0 0.866025 -2.5 -p 0 1 -3 -p 0.5 0.866025 -3 -p 0.866025 0.5 -3 -p 1 0 -3 -p 0.866025 -0.5 -3 -p 0.5 -0.866025 -3 -p 0 -1 -3 -p -0.5 -0.866025 -3 -p -0.866025 -0.5 -3 -p -1 0 -3 -p -0.866025 0.5 -3 -p -0.5 0.866025 -3 -p 0 1 -3 -k 0 -k 1 -k 2 -k 3 -k 4 -k 5 -k 6 -k 7 -k 8 -k 9 -k 10 -k 11 -k 12 -k 13 -k 14 -k 15 -k 16 -k 17 -k 18 -k 19 -k 20 -k 21 -k 22 -k 23 -k 24 -k 25 -k 26 -k 27 -k 28 -k 29 -k 30 -k 31 -k 32 -k 33 -k 34 -k 35 -k 36 -k 37 -k 38 -k 39 -k 40 ;