MoSpline from Python Generator



  • On 12/06/2016 at 13:12, xxxxxxxx wrote:

    Hello, guys!
    I'm trying to generate MoSpline with Python Generator, but nothing happens.
    What's may be wrong?

    import c4d
     
    def main() :
        
        if not op.GetDown() : return None
        obj = op.GetDown()
        source = obj.GetClone() 
        
        op.GetDown()[c4d.ID_BASEOBJECT_VISIBILITY_EDITOR] = 1
        op.GetDown()[c4d.ID_BASEOBJECT_VISIBILITY_RENDER] = 1
        
        if source.CheckType(c4d.Ospline) is False: #Parametric object
            source = obj.GetRealSpline()
        
        newSpline = c4d.BaseObject(c4d.Ospline)
        newSpline = c4d.SplineObject(source.GetPointCount(), c4d.SPLINETYPE_BEZIER)
        
        for index,position in enumerate(source.GetAllPoints()) :
            newSpline.SetPoint(index,position)
            tangent = source.GetTangent(index)
            newSpline.SetTangent(index, tangent["vl"], tangent["vr"])
        newSpline.Message(c4d.MSG_UPDATE)
        
        newSpline[c4d.SPLINEOBJECT_CLOSED] = 0
        newSpline[c4d.SPLINEOBJECT_INTERPOLATION]= 3
        
        MoSpline = c4d.BaseObject(440000054) 
        MoSpline[c4d.MGMOSPLINEOBJECT_GROWTH_START] = op[c4d.ID_USERDATA,1]
        MoSpline[c4d.MGMOSPLINEOBJECT_MODE] = 1
        MoSpline[c4d.MGMOSPLINEOBJECT_SOURCE_SPLINE] = newSpline
        
        #return newSpline.GetClone() # it works  
        return MoSpline.GetClone() # isn't works
    

    G
    M
    T
    < id="SLloc" ="" title="Зафиксировать язык">| < id="SL_lng_from">< value="auto">Определить язык< value="az">Азербайджанский< value="sq">Албанский< value="en">Английский< value="ar">Арабский< value="hy">Армянский< value="af">Африкаанс< value="eu">Баскский< value="be">Белорусский< value="bn">Бенгальский< value="my">Бирманский< value="bg">Болгарский< value="bs">Боснийский< value="cy">Валлийский< value="hu">Венгерский< value="vi">Вьетнамский< value="gl">Галисийский< value="el">Греческий< value="ka">Грузинский< value="gu">Гуджарати< value="da">Датский< value="zu">Зулу< value="iw">Иврит< value="ig">Игбо< value="yi">Идиш< value="id">Индонезийский< value="ga">Ирландский< value="is">Исландский< value="es">Испанский< value="it">Итальянский< value="yo">Йоруба< value="kk">Казахский< value="kn">Каннада< value="ca">Каталанский< value="zh-CN">Китайский (Трад)< value="zh-TW">Китайский (Упр)< value="ko">Корейский< value="ht">Креольский (Гаити)< value="km">Кхмерский< value="lo">Лаосский< value="la">Латинский< value="lv">Латышский< value="lt">Литовский< value="mk">Македонский< value="mg">Малагасийский< value="ms">Малайский< value="ml">Малайялам< value="mt">Мальтийский< value="mi">Маори< value="mr">Маратхи< value="mn">Монгольский< value="de">Немецкий< value="ne">Непали< value="nl">Нидерландский< value="no">Норвежский< value="pa">Панджаби< value="fa">Персидский< value="pl">Польский< value="pt">Португальский< value="ro">Румынский< value="ru">Русский< value="ceb">Себуанский< value="sr">Сербский< value="st">Сесото< value="si">Сингальский< value="sk">Словацкий< value="sl">Словенский< value="so">Сомали< value="sw">Суахили< value="su">Суданский< value="tl">Тагальский< value="tg">Таджикский< value="th">Тайский< value="ta">Тамильский< value="te">Телугу< value="tr">Турецкий< value="uz">Узбекский< value="uk">Украинский< value="ur">Урду< value="fi">Финский< value="fr">Французский< value="ha">Хауса< value="hi">Хинди< value="hmn">Хмонг< value="hr">Хорватский< value="ny">Чева< value="cs">Чешский< value="sv">Шведский< value="eo">Эсперанто< value="et">Эстонский< value="jw">Яванский< value="ja">Японский|
    | < id="SL_lng_to">< value="az">Азербайджанский< value="sq">Албанский< value="en">Английский< value="ar">Арабский< value="hy">Армянский< value="af">Африкаанс< value="eu">Баскский< value="be">Белорусский< value="bn">Бенгальский< value="my">Бирманский< value="bg">Болгарский< value="bs">Боснийский< value="cy">Валлийский< value="hu">Венгерский< value="vi">Вьетнамский< value="gl">Галисийский< value="el">Греческий< value="ka">Грузинский< value="gu">Гуджарати< value="da">Датский< value="zu">Зулу< value="iw">Иврит< value="ig">Игбо< value="yi">Идиш< value="id">Индонезийский< value="ga">Ирландский< value="is">Исландский< value="es">Испанский< value="it">Итальянский< value="yo">Йоруба< value="kk">Казахский< value="kn">Каннада< value="ca">Каталанский< value="zh-CN">Китайский (Трад)< value="zh-TW">Китайский (Упр)< value="ko">Корейский< value="ht">Креольский (Гаити)< value="km">Кхмерский< value="lo">Лаосский< value="la">Латинский< value="lv">Латышский< value="lt">Литовский< value="mk">Македонский< value="mg">Малагасийский< value="ms">Малайский< value="ml">Малайялам< value="mt">Мальтийский< value="mi">Маори< value="mr">Маратхи< value="mn">Монгольский< value="de">Немецкий< value="ne">Непали< value="nl">Нидерландский< value="no">Норвежский< value="pa">Панджаби< value="fa">Персидский< value="pl">Польский< value="pt">Португальский< value="ro">Румынский< ed="ed" value="ru">Русский< value="ceb">Себуанский< value="sr">Сербский< value="st">Сесото< value="si">Сингальский< value="sk">Словацкий< value="sl">Словенский< value="so">Сомали< value="sw">Суахили< value="su">Суданский< value="tl">Тагальский< value="tg">Таджикский< value="th">Тайский< value="ta">Тамильский< value="te">Телугу< value="tr">Турецкий< value="uz">Узбекский< value="uk">Украинский< value="ur">Урду< value="fi">Финский< value="fr">Французский< value="ha">Хауса< value="hi">Хинди< value="hmn">Хмонг< value="hr">Хорватский< value="ny">Чева< value="cs">Чешский< value="sv">Шведский< value="eo">Эсперанто< value="et">Эстонский< value="jw">Яванский< value="ja">Японский| |
    |
    |
    |
    | |

    ---|---|---|---|---|---|---|---|---|---|---

    Звуковая функция ограничена 100 символами
    Настройки : История : Справка : Обратная связьЗакрыть



  • On 13/06/2016 at 03:06, xxxxxxxx wrote:

    Hello,

    there are several issues with your code. First you should check the return value of GetRealSpline() since this function can return None.

    Second, you allocate the "newSpline" two times: once with "BaseObject", then with "SplineObject".

    Third, you insert the "newSpline" object into nothing, so the garbage collection will delete it. You reference the "newSpline" object in your MoSpline but this is only a BaseLink reference. The MoSpline does not take the ownership of the "newSpline". The "newSpline" will not become part of the document and a link to an object that is not part of a document cannot be resolved. So you have to make the "newSpline" part of the document. You could try to make it the child object of the MoSpline object.

    Finally, you return the clone of the MoSpline object. Why are you doing that?

    Best wishes,
    Sebastian


Log in to reply