Skip to main content
Participant
December 14, 2021
Answered

Curve points edit in Substance Designer

  • December 14, 2021
  • 1 reply
  • 401 views

I'm tryiing to edid curve points in SD but the whole thing just keep crashing after i run this piece. Any suggestions ? Thank you in advance.

 

import sd
from sd.api.sdvaluefloat import *
from sd.api.sdvaluefloat2 import *
from sd.api.sdvaluebool import *
from sd.api.sdvaluecolorrgba import *
from sd.api.sdvaluearray import *
from sd.api.sdvaluestruct import *
from sd.api.sdtypestruct import *
from sd.api.sdapplication import *
from sd.api.sdproperty import *

ctx = sd.getContext()
app = ctx.getSDApplication()
uiMgr = app.getQtForPythonUIMgr()
graph = uiMgr.getCurrentGraph()
nodes = graph.getNodes()
node = nodes.getItem(0)


curve_struct = SDTypeStruct.sNew('sbs::compositing::curve_key')

point = SDValueStruct.sNew(curve_struct)
point.setPropertyValueFromId('position', SDValueFloat2.sNew(float2(0,0)))
point.setPropertyValueFromId('isLocked', SDValueBool.sNew(True))
point.setPropertyValueFromId('left', SDValueFloat2.sNew(float2(0,0)))
point.setPropertyValueFromId('isLeftBroken', SDValueBool.sNew(True))
point.setPropertyValueFromId('right', SDValueFloat2.sNew(float2(0.1,0)))
point.setPropertyValueFromId('isRightBroken', SDValueBool.sNew(True))

point2 = SDValueStruct.sNew(curve_struct)
point2.setPropertyValueFromId('position', SDValueFloat2.sNew(float2(1.0,1.0)))
point2.setPropertyValueFromId('isLocked', SDValueBool.sNew(True))
point2.setPropertyValueFromId('left', SDValueFloat2.sNew(float2(0.566,0.748)))
point2.setPropertyValueFromId('isLeftBroken', SDValueBool.sNew(False))
point2.setPropertyValueFromId('right', SDValueFloat2.sNew(float2(1,1)))
point2.setPropertyValueFromId('isRightBroken', SDValueBool.sNew(False))


curveArray = SDValueArray.sNew(curve_struct, 0)
curveArray.pushBack(point)
curveArray.pushBack(point2)

print(curveArray.getSize())

for i in range(0, curveArray.getSize()):
print(curveArray.getItem(i).getPropertyValueFromId('position').get())
print(curveArray.getItem(i).getPropertyValueFromId('isLocked').get())
print(curveArray.getItem(i).getPropertyValueFromId('left').get())
print(curveArray.getItem(i).getPropertyValueFromId('isLeftBroken').get())
print(curveArray.getItem(i).getPropertyValueFromId('right').get())
print(curveArray.getItem(i).getPropertyValueFromId('isRightBroken').get())
print('-------------------------------------')

 

node.setInputPropertyValueFromId('curveluminance', curveArray)

This topic has been closed for replies.
Correct answer davescm

Have you tried the latest version (11.3.1) released today? There is a fix listed for a crash with the curves node:

 

https://substance3d.adobe.com/documentation/sddoc/all-changes-188973131.html

 

Dave

1 reply

davescm
Community Expert
davescmCommunity ExpertCorrect answer
Community Expert
December 14, 2021

Have you tried the latest version (11.3.1) released today? There is a fix listed for a crash with the curves node:

 

https://substance3d.adobe.com/documentation/sddoc/all-changes-188973131.html

 

Dave

Luca Giarrizzo
Community Manager
Community Manager
December 17, 2021

Hello @edward_woopie and @davescm,

 

Indeed, the fix in our latest bugfix release (11.3.1) mentioned by Dave fixes exactly this crash!

 

Best regards.

 

Luca Giarrizzo | Quality Engineer - Substance 3D Designer | Adobe