def extendPoly(*args):
"""does the polyextension by grabbing the curve, offsetting it and then lofting. Then converts the nurbs surface to polys"""
#make sure a curve is selected
selection = cmds.ls(sl=True)
if selection:
sel = selection[0]
shape = cmds.listRelatives(sel, s=True)[0]
type = cmds.objectType(shape)
name = cmds.textFieldGrp("name", q=True, tx=True)
hisGrp = cmds.checkBox("history", q=True, v=True)
hisPoly = cmds.checkBox("polyHistory", q=True, v=True)
if type== "nurbsCurve":
#offset the curb
distance = cmds.floatFieldGrp("curbFFG", q=True, v1=True)
# bump = cmds.checkBox("bumpCB", q=True, v=True)
pos = cmds.checkBox("curbCB", q=True, v=True)
if pos == 0:
dist = distance * -1
else:
dist = distance
U = cmds.intFieldGrp("UDivIFG", q=True, v1=True)
V = cmds.intFieldGrp("VDivIFG", q=True, v1=True)
origCrv = cmds.rename(sel, "%s_inner_CRV"%name)
outCurve = cmds.offsetCurve(origCrv, d=dist, n="%s_outer_CRV"%name)
midCurve = cmds.offsetCurve(origCrv, d=dist/2, n="%s_mid_CRV"%name)
# if bump:
# cmds.xform(midCurve, ws=True, r=True, t=(0,5,0))
cmds.select(cl=True)
lofted = cmds.loft(origCrv, midCurve, outCurve)[0]
loft = cmds.rename(lofted, "%s_lofted"%name)
polygon = cmds.nurbsToPoly(loft, pt=1, ch=hisPoly, f=2, un=U, vn=V)[0]
poly = cmds.rename(polygon, "%s_poly"%name)
curbGrp = cmds.group(empty=True)
grp = cmds.rename(curbGrp, "%s_History_GRP"%name)
# cmds.rename(poly, "polyCurb")
cmds.parent(loft, outCurve, midCurve, origCrv, grp)
cmds.setAttr("%s.v"%grp, 0)
if not hisGrp:
cmds.delete(grp)
else:
cmds.warning("That's not a curve! You need to select a curve!")
else:
cmds.warning("You haven't selected anything!")
评论列表
文章目录