异常处理

该主题包含 4 个回复,有 2 个参与人,并且由 liguosheng 的头像 liguosheng1 年, 9 月 前 最后一次更新。

正在查看 5 个帖子 - 1 至 5 (共计 5 条)
  • 作者
    帖子
  • #10603
    liguosheng 的头像
    liguosheng
    学员
    注册日期: 2015/01/06
    发帖数: 5
    回帖数: 8

    我想把:
    mel.eval( ” performDetachPreset 1 1; ” ) # 选择曲线点执行分离
    mel.eval( ” cutCurvePreset(1,1,0.01,2,-0.1965,0.8063,0.5579,2,1); ” ) # 选择两条相交曲线执行分离
    整合成一个程序,既能选择曲线点执行分离,也能选择两条相交曲线执行分离。用异常处理来解决不知该如何编写?
    from pymel.core import *
    def tryThis():
    mel.eval( ” cutCurvePreset(1,1,0.01,2,-0.1965,0.8063,0.5579,2,1); ” ) # 选择两条相交曲线执行分离
    mel.eval( ” performDetachPreset 1 1; ” ) # 选择曲线点执行分离
    try:
    tryThis()

    except ZeroDivisionError as e:
    mel.eval( ” cutCurvePreset(1,1,0.01,2,-0.1965,0.8063,0.5579,2,1); ” )
    except Exception as e:
    mel.eval( ” performDetachPreset 1 1; ” )
    finally:
    mel.eval( ” cutCurvePreset(1,1,0.01,2,-0.1965,0.8063,0.5579,2,1); ”

    print(‘OK, your caclulation is done!’)

    print(‘The result is …’)

    #10612
    机器猫 的头像
    机器猫
    教师
    注册日期: 2014/06/20
    发帖数: 1
    回帖数: 15

    这个不用这么try,你判断下当前的选区就可以了,

     Code: arbitrary (选择
    1.
    2.
    3.
    4.
    5.
    6.
    7.
    8.
    9.

    from pymel.core import *

    sel = selected()
    if len(sel) is 1 and type(sel[0]) is NurbsCurveParameter:
         # 点执行分离
    elif len(sel) is 2:
        # 两条曲线执行分离
    else:
        error('invalid selection')

    至于NurbsCurveParameter怎么来的,你可以选择一个CurvePoint然后执行1.  type(selected()[0])

    #10637
    liguosheng 的头像
    liguosheng
    学员
    注册日期: 2015/01/06
    发帖数: 5
    回帖数: 8

    多谢大师 :)

    #10656
    liguosheng 的头像
    liguosheng
    学员
    注册日期: 2015/01/06
    发帖数: 5
    回帖数: 8

    再增加一些难度,下面这段程序只能选择一个CurvePoint,和两段曲线产生作用,要是能对多个CurvePoint,和多段曲线作用那就更好了。
    from pymel.core import *
    sel = selected()
    if len(sel) is 1 and type(sel[0]) is NurbsCurveParameter:
    mel.eval( ” performDetachPreset 1 1; ” ) # 点执行分离
    elif len(sel) is 2:
    mel.eval( ” cutCurvePreset(1,1,0.01,2,-0.1965,0.8063,0.5579,2,1); ” )# 两条曲线执行分离
    else:
    error(‘invalid selection’)

    #11226
    liguosheng 的头像
    liguosheng
    学员
    注册日期: 2015/01/06
    发帖数: 5
    回帖数: 8

    多谢老师! 有时间帮忙看看 异常处理新问题
    from pymel.core import *
    sel = selected()
    if len(sel) is 1 and type(sel[0]) is NurbsCurveParameter:
    mel.eval( ‘ performDetachPreset 1 1; ‘ ) # 选择多曲线点执行分离
    elif len(sel) is 2:
    mel.eval( ‘ cutCurvePreset(1,1,0.01,2,-0.1965,0.8063,0.5579,2,1); ‘ ) # 多条条曲线执行分离
    else:
    error(‘invalid selection’)

    我想实现多个CurvePoint,和多段曲线分离的效果,就是搞不出来了。

正在查看 5 个帖子 - 1 至 5 (共计 5 条)

抱歉,回复评论必需登录。