Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware API
      • ZBrush Python API
      • ZBrush GoZ API
      • Code Examples on Github
    • Forum
    • Downloads
    • Support
      • Support Procedures
      • Registered Developer Program
      • Plugin IDs
      • Contact Us
    • Categories
      • Overview
      • News & Information
      • Cinema 4D SDK Support
      • Cineware SDK Support
      • ZBrush 4D SDK Support
      • Bugs
      • General Talk
    • Unread
    • Recent
    • Tags
    • Users
    • Login

    MoSpline from Python Generator

    Scheduled Pinned Locked Moved PYTHON Development
    2 Posts 0 Posters 281 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • H Offline
      Helper
      last edited by

      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 символами
      Настройки : История : Справка : Обратная связьЗакрыть

      1 Reply Last reply Reply Quote 0
      • H Offline
        Helper
        last edited by

        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

        1 Reply Last reply Reply Quote 0
        • First post
          Last post