Can you explain what exactly is going wrong? I’ve never used openNURBS explicitly, but a cursory look at the source leads me to believe that you’re overwriting xform each time you call one of its methods, not compounding them; i.e. your call to xform.Translation is making the matrix you’re transforming with a translation ONLY. I would try something like the following: