[Closed] paintInterface problem
hi, ive been trying to get the pressure when painting something in the viewport but for some odd reason i cant figure out it always crashes max (2010 and 11)
scene: empty scene with only one plane called Plane001
testScript:
(
local tPlane = $Plane001
fn startStroke =
(
print "Handle start stroke here"
)
fn paintStroke =
(
try(
local localHit = Point3 0 0 0
local localNormal = Point3 0 0 0
local worldHit = Point3 0 0 0
local worldNormal = Point3 0 0 0
local str = 0.0f
local radius = 0.0f
local shift = true
local ctrl = true
local alt = true
local pressure = 0.0
thePainterInterface.getHitPointData &localHit &localNormal &worldHit &worldNormal &radius &str 0
thePainterInterface.getHitPressureData &shift &ctrl &alt &pressure 0
local hit = thePainterInterface.getIsHit 0
if hit do
(
print "Handle paint stroke here"
thePainterInterface.getHitPointData &localHit &localNormal &worldHit &worldNormal &radius &str 0
format "pos:% zDepth:%
" worldHit pressure
--thePainterInterface.clearStroke()
)
)catch(print (getcurrentException()) )
)
fn endStroke =
(
print "Handle end stroke here"
)
fn cancelStroke =
(
print "Handle cancel stroke here"
)
fn systemEnd =
(
print "Handle system end here"
)
if isValidNode tPlane do
(
thePainterInterface.ScriptFunctions startStroke paintStroke endStroke cancelStroke systemEnd
thePainterInterface.initializeNodes 0 #(tPlane)
-- thePainterInterface.pressureEnable = true
-- thePainterInterface.pressureAffects = 2
thePainterInterface.startPaintSession()
)
)
anyone got an idea as to why this is crashing and/or how to make it work? :shrug:
quick question: in x64 version !?
i noticed that scripts in x64 crash where in x86 they show the error
yeah 64 bit, so whats the error msg say?
yeah ; calc (something), freeze, crash
and the print stuff is taken directly as the whole test code is from the helpFiles so it should work… theoretically
paul, did you btw find another way to get the pressure data of a pen tablet? might there be a way in c (or whatever it is you and pete are always messing around with )?
your code crashes on format function for pressure. If a device doesn’t support Pressure Sensitivity the painter interface might return infinite data for pressure.
thePainterInterface.getHitPointData &localHit &localNormal &worldHit &worldNormal
format "pressure:%
" (if not [b]bit.isFinite[/b] pressure then pressure else "infinite")
try to set thePainterInterface.pressureEnable to OFF to solve the problem.
wow weird, might be when your hovering with the pen cuz i got an intuos3 and its got pressure support
and disableing the pressure in the paintInterface is kinda the wrong direction for me as thats the only reason i use it
if i knew of another way to get the pressure data (when supplied) id use that.
infinite pressure, thx, wouldnt have thought that
i was talking in general… scripts crash in x64 and in x86 it shows the error
(since i wasn’t home to test it… still not home until next year )