使用蚱蜢:如果我将一个https://rhino.github.io/components/mathematics/constructDomain.html传递给Python组件,python将其视为一个间隔。我可以对它做手术,如下所示:
print x
x.Grow(x[0]-y)
x.Grow(x[1]+y)
print x
print type(x)
print dir(x)其中的指纹:
20.3596657850938,87.5596657850938
19.3596657850938,88.5596657850938
<type 'Interval'>
['CompareTo', 'EpsilonEquals', 'Equals', 'FromIntersection', 'FromUnion', 'GetHashCode', 'GetObjectData', 'GetType', 'Grow', 'IncludesInterval', 'IncludesParameter', 'IsDecreasing', 'IsIncreasing', 'IsSingleton', 'IsValid', 'Item', 'Length', 'MakeIncreasing', 'Max', 'MemberwiseClone', 'Mid', 'Min', 'NormalizedIntervalAt', 'NormalizedParameterAt', 'ParameterAt', 'ParameterIntervalAt', 'ReferenceEquals', 'Reverse', 'Swap', 'T0', 'T1', 'ToString', 'Unset', '__add__', '__class__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__ne__', '__new__', '__radd__', '__reduce__', '__reduce_ex__', '__repr__', '__rsub__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__sub__', '__subclasshook__']然而,我想不出如何建造一个新的。它们看起来很有用,我想更多地使用它们。
我已经尝试导入间隔模块(Runtime error (ImportException): No module named interval)。我尝试将列表转换为一个间隔:Interval([1,2])→Runtime error (UnboundNameException): name 'Interval' is not defined。
我不知道interval是属于Python、Iron Python还是蚱蜢。
我怎么做一个新的间隔?
发布于 2019-05-27 09:52:28
在一些帮助下,我最终得到了:
print "x is sent in as a domain from the input to this function"
print x, type(x)
print x.GetType().FullName
print x.GetType().Assembly.Location
print "\nThere seem to be two types of intervals, Rhino and grasshopper. Now sure why you'd use a Grasshopper interval, but here it is anyway:"
import Grasshopper as gh
y = gh.Kernel.Types.GH_Interval()
print y, type(y)
print y.GetType().FullName
print y.GetType().Assembly.Location
print "\nTo make a Rhino interval get it from the Rhino.Geometry module"
import Rhino.Geometry.Interval as interval
z = interval(0,1)
print z, type(z)
print z.GetType().FullName
print z.GetType().Assembly.Location
print "\nz is the same as x:", z == x这意味着:
x is sent in as a domain from the input to this function
0,1 <type 'Interval'>
Rhino.Geometry.Interval
C:\Program Files\Rhinoceros 5 (64-bit)\System\RhinoCommon.dll
There seem to be two types of intervals, Rhino and grasshopper. Now sure why you'd use a Grasshopper interval, but here it is anyway:
0.0 To 0.0 <type 'GH_Interval'>
Grasshopper.Kernel.Types.GH_Interval
C:\Program Files\Common Files\McNeel\Rhinoceros\5.0\Plug-ins\Grasshopper (b45a29b1-4343-4035-989e-044e8580d9cf)\0.9.76.0\Grasshopper.dll
To make a Rhino interval get it from the Rhino.Geometry module
0,1 <type 'Interval'>
Rhino.Geometry.Interval
C:\Program Files\Rhinoceros 5 (64-bit)\System\RhinoCommon.dll
z is the same as x: True如果我们打开它:IronPython的type()函数实际上返回一个PythonType,它包装了.NET类型。.GetType()直接获取.NET类型。所以,type(x)给了<type 'Interval'>,这不是很有帮助,而x.GetType().FullName给了Rhino.Geometry.Interval,Rhino.Geometry.Interval告诉了我如何做到这一点。
这是在这里的犀牛医生中讨论的,它有许多有用的属性和方法。
https://stackoverflow.com/questions/56289313
复制相似问题