coded this up in pymel and used qt designer for the GUI in maya. This GUI sets up the normals on curves for rendering in renderman / 3delight – and is used in conjunction with primitive variables on each curve and a curve shader.
As you can see in (1) a regular curve prior to be fixed is all kinds of wonky. With this technique the ‘Face Camera’ of the normals are disabled and they can be set to all face the direction selected.
GUI enables per item or selection
1 Fix
2 set direction
3 color
5 Animation of Curve based on curve length proportion or custom set. Start and end frames
can also be set.
6 Width for start and end can be adjusted
qt designer
maya
import pymel.core as pm pm.shadingNode ('ramp',asTexture=True,n="curveRamp") pm.shadingNode ('place2dTexture',asUtility=True,n="curveRamp_place2dTexture") pm.connectAttr ("curveRamp_place2dTexture.outUV", "curveRamp.uv"); pm.connectAttr( "curveRamp_place2dTexture.outUvFilterSize", "curveRamp.uvFilterSize"); pm.disconnectAttr ("curveRamp_place2dTexture.outUV", "curveRamp.uvCoord"); if (pm.window('Normal_Curve_Creator',exists=True)): pm.deleteUI('Normal_Curve_Creator') import curve_fixer reload(curve_fixer) dialog2 = pm.loadUI(f="C:/Users/luke/Documents/QTDESIGNER/rebuild_curve.ui") allowedAreas = ['right', 'left'] pm.showWindow() pm.dockControl(area='left',content=dialog2,allowedArea=allowedAreas,l='Normal_Curve_Creator')