Navigation

    • Register
    • Login
    • Search
    1. Home
    2. LingZA
    L

    LingZA

    @LingZA

    2
    Reputation
    15
    Posts
    6
    Profile views
    0
    Followers
    0
    Following
    Joined Last Online

    • Profile
    • More
      • Following
      • Followers
      • Topics
      • Posts
      • Best
      • Groups
    LingZA Follow

    Best posts made by LingZA

    Is there a successful example of c4d.gui.SplineCustomGui?

    I need a simple and successful example of c4d.gui.SplineCustomGui which has same params as the picture below.
    d2946599-5784-4459-a8c4-53cf1a7d03f0-image.png

    I have tried directly code below. But it can not have the full control of c4d.gui.SplineCustomGui by bc[c4d.constant], and it is without the gui elements, such as "Point X", "Point Y" and so on.
    class Dialog(c4d.gui.GeDialog):

    def __init__(self):
    
        compoId = 1000
        i = 1
    
        compoId += i
        self.groId_0 = compoId
    
        compoId += i
        self.spliId_0 = compoId
    
    def CreateLayout(self):
        bc = c4d.BaseContainer()  
        # bc[c4d.SPLINECONTROL_GRID_H] = True
        # bc[c4d.SPLINECONTROL_GRID_V] = True
        # bc[c4d.SPLINECONTROL_VALUE_LABELS_H_LEGACY] = True
        # bc[c4d.SPLINECONTROL_VALUE_LABELS_V_LEGACY] = True
        bc[c4d.SPLINECONTROL_X_MIN] = 0
        bc[c4d.SPLINECONTROL_X_MAX] = 1
        # bc[c4d.SPLINECONTROL_X_STEPS] = 0.1
        bc[c4d.SPLINECONTROL_Y_MIN] = 0
        bc[c4d.SPLINECONTROL_Y_MAX] = 1
        # bc[c4d.SPLINECONTROL_Y_STEPS] = 0.1
        # bc[c4d.SPLINECONTROL_PRESET_BTN_LEGACY] = True
        # bc[c4d.SPLINECONTROL_ROUND_SLIDER_LEGACY] = True
        # bc[c4d.SPLINECONTROL_GRIDLINES_H_LEGACY] = 10
        # bc[c4d.SPLINECONTROL_GRIDLINES_V_LEGACY] = 10
        # bc[c4d.SPLINECONTROL_MINSIZE_H] = 0.1
        # bc[c4d.SPLINECONTROL_MINSIZE_V] = 0.1
        # bc[c4d.SPLINECONTROL_X_MIN_TEXT_LEGACY] = "True"
        # bc[c4d.SPLINECONTROL_X_MAX_TEXT_LEGACY] = "True"
        # bc[c4d.SPLINECONTROL_Y_MIN_TEXT_LEGACY] = "True"
        # bc[c4d.SPLINECONTROL_Y_MAX_TEXT_LEGACY] = "True"
        # bc[c4d.SPLINECONTROL_X_TEXT] = "Density"
        # bc[c4d.SPLINECONTROL_Y_TEXT] = "Vertex Weight"
        # bc[c4d.SPLINECONTROL_NEW_NO_HORIZ_LEGACY] = False
        # bc[c4d.SPLINECONTROL_NEW_NO_VERT_LEGACY] = False
        # bc[c4d.SPLINECONTROL_HIDE_GRID_H_LEGACY] = False
        # bc[c4d.SPLINECONTROL_HIDE_GRID_V_LEGACY] = False
        # bc[c4d.SPLINECONTROL_HIDE_PRESET_BTN_LEGACY] = False
        # bc[c4d.SPLINECONTROL_HIDE_ROUND_SLIDER_LEGACY] = False
        # bc[c4d.SPLINECONTROL_HIDE_VALUE_EDIT_H_LEGACY] = False
        # bc[c4d.SPLINECONTROL_HIDE_VALUE_EDIT_V_LEGACY] = False
        # bc[c4d.SPLINECONTROL_HIDE_VALUE_LABELS_H_LEGACY] = False
        # bc[c4d.SPLINECONTROL_HIDE_VALUE_LABELS_V_LEGACY] = False
        # bc[c4d.SPLINECONTROL_ALLOW_HORIZ_SCALE_MOVE] = True
        # bc[c4d.SPLINECONTROL_ALLOW_VERT_SCALE_MOVE] = True
        # bc[c4d.SPLINECONTROL_OPTIMAL] = True
        # bc[c4d.SPLINECONTROL_OPTIMAL_X_MIN] = 0.01
        # bc[c4d.SPLINECONTROL_OPTIMAL_Y_MIN] = 0.01
        # bc[c4d.SPLINECONTROL_OPTIMAL_X_MAX] = 0.01
        # bc[c4d.SPLINECONTROL_OPTIMAL_Y_MAX] = 0.01
        # bc[c4d.SPLINECONTROL_SQUARE] = False
        # bc[c4d.SPLINECONTROL_CUSTOMCOLOR_SET] = True
        # bc[c4d.SPLINECONTROL_CUSTOMCOLOR_COL] = c4d.Vector(1,1,1)
        bc[c4d.SPLINECONTROL_NO_FLOATING_WINDOW] = True
        # bc[c4d.SPLINECONTROL_NO_PRESETS] = False
    
        self.spli = self.AddCustomGui(self.spliId_0, c4d.CUSTOMGUI_SPLINE, "", c4d.BFH_SCALEFIT|c4d.BFV_SCALEFIT, 0, 0, bc)
    
        return True
    

    The second way with description files, I also have tried
    https://plugincafe.maxon.net/topic/13499/splinecustomgui-settings-issue/10?_=1653814204664.
    But I failed.
    If it can have all params like the picture in the second way, I want a successful and simple example including its description files(.res and .h).

    posted in Cinema 4D SDK •
    RE: Why does "Symbols Parser" not work?

    Great!!! It runs.
    You are right. Thank you so much!
    I think your answer is worth being written in the API document to make the workflow more clear.

    posted in Cinema 4D SDK •

    Latest posts made by LingZA

    RE: Undo for InsertUnder() is not right. Why?

    Thanks! Sorry, I am so careless that I ignore the message "Needs to be called before the change.".

    UNDOTYPE_CHANGE:

    Any change to an object, including hierarchy modifications; modification in positioning (object has been moved from A to B), substructures etc. (Needs to be called before the change.)

    posted in Cinema 4D SDK •
    Undo for InsertUnder() is not right. Why?

    Undo for InsertUnder() is not right. Why?
    The code below:
    484e1741-a95f-4822-b48a-fba442a0041c-image.png
    The operations below:
    dfc966ba-afb0-4042-9f8b-7ed824d28062-image.png
    After executing the script:
    90c8752e-afd3-47fe-9efe-35676aeb084c-image.png
    After several undo operations:
    f14cf3ca-9d2a-4310-bb91-2762400c6149-image.png

    The first question is that the undo result is not right.
    The second question is that the undo times are not right.
    There should be one time for undo to get the correct undo result if there is no problem.

    posted in Cinema 4D SDK •
    Is it possible to change active view?

    Is it possible to change active view via python but "c4d.CallCommand(13640) # Toggle Active View"?

    Because "c4d.CallCommand(13640) # Toggle Active View" is used with a click on the view. I can not use python code to change a certain view to be active.

    I want to change active view via the view ID from "range(doc.GetBaseDrawCount())". But I can not find the relevant APIs.

    I can get the active view from "doc.GetActiveBaseDraw()" but there are no ways to set the active view.

    posted in Cinema 4D SDK •
    RE: Why does "Symbols Parser" not work?

    Great!!! It runs.
    You are right. Thank you so much!
    I think your answer is worth being written in the API document to make the workflow more clear.

    posted in Cinema 4D SDK •
    Why does "Symbols Parser" not work?

    Why does "Symbols Parser" not work?
    The API document is below.
    https://developers.maxon.net/docs/Cinema4DPythonSDK/html/manuals/foundation/symbols.html?highlight=c4d_symbols

    I changed "py-fresnel_r13.pyp" in official plugin examples.
    144c0cf7-1530-486d-bdf7-6018f3e37f59-image.png
    38a80529-5925-4d5c-9c15-354e8597065b-image.png
    Finally, I got the issues.
    b1678ae6-5f63-4364-9c42-0c429436d372-image.png

    posted in Cinema 4D SDK •
    How can I update the deformer when I move the objects in the viewport?

    How can I update the deformer like the "Spline" deformer when I move the objects in the viewport?
    82cff88d-27dd-4ad1-ba58-224cffd0811b-image.png

    e91efb70-3b1f-4a65-a18d-56470e26752e-image.png

    My splines for my deformer plugin are in the "c4d.InExcludeData" like the below.
    96b371cd-d939-4ac8-9767-dc85446b1565-image.png

    I know that the callback function "Draw(self, op, drawpass, bd, bh)" is about the viewport.

    But I don't know how to update the deformer when I move the spline objects or its affected polygon objects in the viewport.

    My updated contents is same as the callback fuction "ModifyObject(self, mod, doc, op, op_mg, mod_mg, lod, flags, thread)".

    posted in Cinema 4D SDK •
    Is there a "msgId" when I add a child to an object?

    Is there a "msgId" in the function "GetDParameter(self, node, id, flags)" in the class "c4d.plugins.ObjectData" when I add a child to an object?
    The object is a deformer.
    I want to update the function "GetDDescription(self, node, description, flags)" via the function "GetDParameter(self, node, id, flags)" when I add a child to the deformer in the "Object Manager".

    posted in Cinema 4D SDK •
    Is there a fixed Manager ID like c4d.CONSTANT?

    Does Manager ID change between different c4d versions such as R24, R25 and R26 If Manager ID is based on the options in "Restrict to" in Command Manager.

    744d299e-a173-4c7f-ad8f-34439451cc3e-image.png
    85956201-0980-4ff2-89d6-22ccac5c132b-image.png
    The Manager ID is explained here.
    https://developers.maxon.net/docs/Cinema4DPythonSDK/html/modules/c4d.gui/index.html#c4d.gui.AddShortcut.

    posted in Cinema 4D SDK •
    RE: Is there a successful example of c4d.gui.SplineCustomGui?

    @m_adam
    Thanks so much!
    You are a very professional guy!!!

    posted in Cinema 4D SDK •
    Is there a successful example of c4d.gui.SplineCustomGui?

    I need a simple and successful example of c4d.gui.SplineCustomGui which has same params as the picture below.
    d2946599-5784-4459-a8c4-53cf1a7d03f0-image.png

    I have tried directly code below. But it can not have the full control of c4d.gui.SplineCustomGui by bc[c4d.constant], and it is without the gui elements, such as "Point X", "Point Y" and so on.
    class Dialog(c4d.gui.GeDialog):

    def __init__(self):
    
        compoId = 1000
        i = 1
    
        compoId += i
        self.groId_0 = compoId
    
        compoId += i
        self.spliId_0 = compoId
    
    def CreateLayout(self):
        bc = c4d.BaseContainer()  
        # bc[c4d.SPLINECONTROL_GRID_H] = True
        # bc[c4d.SPLINECONTROL_GRID_V] = True
        # bc[c4d.SPLINECONTROL_VALUE_LABELS_H_LEGACY] = True
        # bc[c4d.SPLINECONTROL_VALUE_LABELS_V_LEGACY] = True
        bc[c4d.SPLINECONTROL_X_MIN] = 0
        bc[c4d.SPLINECONTROL_X_MAX] = 1
        # bc[c4d.SPLINECONTROL_X_STEPS] = 0.1
        bc[c4d.SPLINECONTROL_Y_MIN] = 0
        bc[c4d.SPLINECONTROL_Y_MAX] = 1
        # bc[c4d.SPLINECONTROL_Y_STEPS] = 0.1
        # bc[c4d.SPLINECONTROL_PRESET_BTN_LEGACY] = True
        # bc[c4d.SPLINECONTROL_ROUND_SLIDER_LEGACY] = True
        # bc[c4d.SPLINECONTROL_GRIDLINES_H_LEGACY] = 10
        # bc[c4d.SPLINECONTROL_GRIDLINES_V_LEGACY] = 10
        # bc[c4d.SPLINECONTROL_MINSIZE_H] = 0.1
        # bc[c4d.SPLINECONTROL_MINSIZE_V] = 0.1
        # bc[c4d.SPLINECONTROL_X_MIN_TEXT_LEGACY] = "True"
        # bc[c4d.SPLINECONTROL_X_MAX_TEXT_LEGACY] = "True"
        # bc[c4d.SPLINECONTROL_Y_MIN_TEXT_LEGACY] = "True"
        # bc[c4d.SPLINECONTROL_Y_MAX_TEXT_LEGACY] = "True"
        # bc[c4d.SPLINECONTROL_X_TEXT] = "Density"
        # bc[c4d.SPLINECONTROL_Y_TEXT] = "Vertex Weight"
        # bc[c4d.SPLINECONTROL_NEW_NO_HORIZ_LEGACY] = False
        # bc[c4d.SPLINECONTROL_NEW_NO_VERT_LEGACY] = False
        # bc[c4d.SPLINECONTROL_HIDE_GRID_H_LEGACY] = False
        # bc[c4d.SPLINECONTROL_HIDE_GRID_V_LEGACY] = False
        # bc[c4d.SPLINECONTROL_HIDE_PRESET_BTN_LEGACY] = False
        # bc[c4d.SPLINECONTROL_HIDE_ROUND_SLIDER_LEGACY] = False
        # bc[c4d.SPLINECONTROL_HIDE_VALUE_EDIT_H_LEGACY] = False
        # bc[c4d.SPLINECONTROL_HIDE_VALUE_EDIT_V_LEGACY] = False
        # bc[c4d.SPLINECONTROL_HIDE_VALUE_LABELS_H_LEGACY] = False
        # bc[c4d.SPLINECONTROL_HIDE_VALUE_LABELS_V_LEGACY] = False
        # bc[c4d.SPLINECONTROL_ALLOW_HORIZ_SCALE_MOVE] = True
        # bc[c4d.SPLINECONTROL_ALLOW_VERT_SCALE_MOVE] = True
        # bc[c4d.SPLINECONTROL_OPTIMAL] = True
        # bc[c4d.SPLINECONTROL_OPTIMAL_X_MIN] = 0.01
        # bc[c4d.SPLINECONTROL_OPTIMAL_Y_MIN] = 0.01
        # bc[c4d.SPLINECONTROL_OPTIMAL_X_MAX] = 0.01
        # bc[c4d.SPLINECONTROL_OPTIMAL_Y_MAX] = 0.01
        # bc[c4d.SPLINECONTROL_SQUARE] = False
        # bc[c4d.SPLINECONTROL_CUSTOMCOLOR_SET] = True
        # bc[c4d.SPLINECONTROL_CUSTOMCOLOR_COL] = c4d.Vector(1,1,1)
        bc[c4d.SPLINECONTROL_NO_FLOATING_WINDOW] = True
        # bc[c4d.SPLINECONTROL_NO_PRESETS] = False
    
        self.spli = self.AddCustomGui(self.spliId_0, c4d.CUSTOMGUI_SPLINE, "", c4d.BFH_SCALEFIT|c4d.BFV_SCALEFIT, 0, 0, bc)
    
        return True
    

    The second way with description files, I also have tried
    https://plugincafe.maxon.net/topic/13499/splinecustomgui-settings-issue/10?_=1653814204664.
    But I failed.
    If it can have all params like the picture in the second way, I want a successful and simple example including its description files(.res and .h).

    posted in Cinema 4D SDK •