Geometry working range - Python

I typically use the Function.Apply node to bury the Geometry working range warning.

image

Is there a way to accomplish the same thing if I call a function (like Point.ByCoordinates) from within a python node?
image
The Function.Apply node does not seem to be compatible with Python nodes.
image

What does your python code look like? Your input is only 0.5 mil but Dynamo thinks you’re working above 1 mil. Seems like there’s some sort of conversion or math function adjusting your values.

@Nick_Boyts

My geometry working range is set to Medium (.0001 - 10000), so 500000 is out of that range.

import sys
import clr

clr.AddReference('ProtoGeometry')

import Autodesk.DesignScript.Geometry as DS

x = IN[0]
y = IN[1]

OUT = DS.Point.ByCoordinates(x,y)

Ah gotcha. I missed that. I’m guessing it’s a difference between the Dynamo geometry engine and the Python one. You might just be getting lucky with Dynamo because it’s a nice round number. Can you not change your working range?

Under advisement from @Paolo_Emilio_Serra1, I cannot change the working range to anything but medium.

@keith.sowinski unfortunately I’m not aware of a solution for Python

That’s okay. As a workaround I just output the point x,y,z out of the python node and then create the Dynamo points from there. Just thought it would be cleaner to do it all in the python node.

Can you compose a function via a string node containing your python code and a Python From String node, and then use the function apply work around?

Nice thought, but it results in the same thing.
image

Hi,
does anyone know why it doesn’t work for me??

The Point node is not in a function state. Disable the default values for the X and Y inputs and you should be all set.

2 Likes

python node does not return a function directly anymore (dynamo .8ish) - put it into a custom node, but the performance will be poor.