Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
On 24/05/2013 at 09:18, xxxxxxxx wrote:
I want to create a polygon object, but it won't display (or create, I don't know) Anything I should change to make it work?
if (doc.SearchObject('R_Leg') == None) : global R_Leg R_Leg = c4d.BaseObject(Opolygon) R_Leg.__init__(12, 10) doc.InsertObject(R_Leg) R_Leg.SetPoint(0, (-18.0, 2.0, -7.0)) R_Leg.SetPoint(1, (-18.0, 21.0, -7.0)) R_Leg.SetPoint(2, (-18.0, 40.0, -7.0)) R_Leg.SetPoint(3, (-4.0, 2.0, -7.0)) R_Leg.SetPoint(4, (-4.0, 21.0, -7.0)) R_Leg.SetPoint(5, (-4.0, 40.0, -7.0)) R_Leg.SetPoint(6, (-4.0, 2.0, 7.0)) R_Leg.SetPoint(7, (-4.0, 21.0, 7.0)) R_Leg.SetPoint(8, (-4.0, 40.0, 7.0)) R_Leg.SetPoint(9, (-18.0, 2.0, 7.0)) R_Leg.SetPoint(10, (-18.0, 21.0, 7.0)) R_Leg.SetPoint(11, (-18.0, 40.0, 7.0)) R_Leg_Polygon_0.__init__(t_a = 0, t_b = 3, t_c = 4, t_d = 1) R_Leg.SetPolygon(0, R_Leg_Polygon_0) R_Leg_Polygon_1.__init__(t_a = 1, t_b = 2, t_c = 5, t_d = 4) R_Leg.SetPolygon(1, R_Leg_Polygon_1) R_Leg_Polygon_2.__init__(t_a = 3, t_b = 4, t_c = 7, t_d = 6) R_Leg.SetPolygon(2, R_Leg_Polygon_2) R_Leg_Polygon_3.__init__(t_a = 4, t_b = 5, t_c = 8, t_d = 7) R_Leg.SetPolygon(3, R_Leg_Polygon_3) R_Leg_Polygon_4.__init__(t_a = 6, t_b = 7, t_c = 10, t_d = 9) R_Leg.SetPolygon(4, R_Leg_Polygon_4) R_Leg_Polygon_5.__init__(t_a = 7, t_b = 8, t_c = 11, t_d = 10) R_Leg.SetPolygon(5, R_Leg_Polygon_5) R_Leg_Polygon_6.__init__(t_a = 9, t_b = 10, t_c = 1, t_d = 0) R_Leg.SetPolygon(6, R_Leg_Polygon_6) R_Leg_Polygon_7.__init__(t_a = 10, t_b = 11, t_c = 2, t_d = 1) R_Leg.SetPolygon(7, R_Leg_Polygon_7) R_Leg_Polygon_8.__init__(t_a = 0, t_b = 3, t_c = 6, t_d = 9) R_Leg.SetPolygon(8, R_Leg_Polygon_8) R_Leg_Polygon_9.__init__(t_a = 2, t_b = 5, t_c = 8, t_d = 11) R_Leg.SetPolygon(9, R_Leg_Polygon_9) R_Leg.Message(c4d.MSG_UPDATE) R_Leg.SetName('R_Leg') c4d.EventAdd()
Greetz
On 24/05/2013 at 09:24, xxxxxxxx wrote:
Maybe I can help you if you describe your problem. It's not that I can't see it from your code, but please show at least some effort. Do you really expect that everyone that is willing to help you, is at the same time willing to analyze your code and guess your problem? There are about dozens of possibilites why your code fails or does not work the way you want it. I can see some of them directly from your code, others rely on the context that you are not explaining. And I'm not going to list up all those possibilities just because you were to lazy to explain your problem, nor show the error message or describe the desired/undesired result.
On 24/05/2013 at 09:34, xxxxxxxx wrote:
Ok, your right. I'll try to remember to allways explain it properly
But in fact, I don't know how to further describe it.
It's just a creation of a polygon-object (with the creation of some CPolygons) that won't display in Cinema 4D.
On 24/05/2013 at 09:47, xxxxxxxx wrote:
Are you getting an error message? It looks like you should, since I don't see where you have set any value to R_Leg_Polygon_0. From what I see in your code, that, and other variables, should not exist and therefore result in an exception.
On 24/05/2013 at 09:57, xxxxxxxx wrote:
you do init your cpoly object multiple times. that is not a good idea. i am not sure how cinema 4d does treat the cpoly instanced passed to SetPolygon(), but reusing the same instance seems to be a bad idea. also calling important methods explicitly is a bit awkward.
R_Leg = c4d.BaseObject(Opolygon) R_Leg.__init__(12, 10) better : myobj = c4d.PolygonObject(12,10) R_Leg_Polygon_0.__init__(t_a = 0, t_b = 3, t_c = 4, t_d = 1) R_Leg.SetPolygon(0, R_Leg_Polygon_0) better: R_Leg.SetPolygon(0, c4d.CPolygon(0,3,4,1))
On 24/05/2013 at 10:12, xxxxxxxx wrote:
CPolygon is stored by value in the PolygonObject, so reusing it should not be a problem. But I don't see him reusing it anyway. There is R_Leg_Polygon_0 to R_Leg_Polygon_9, littledevil.
I agree with you on the bad style using __init__() directly. He should really be doing it the way you have shown.
On 24/05/2013 at 10:15, xxxxxxxx wrote:
ah, you are right, got confused by wall of text
On 26/05/2013 at 08:46, xxxxxxxx wrote:
Thanks guys!