svxAxis axis;
axis.Pnt = { 0.0,0.0,0.0 };
axis.Dir = { 0.0,0.0,1.0 };
svxPoint center = { 0.0,0.0,0.0 };
double edgelen[3] = { 10.0,10.0,10.0 };
char boxname[32] = "box1";
int idShape = ZW_MODL_create_box(axis, center, edgelen, boxname);
evxPatternType ptnType = VX_PATTERN_LINEAR;
svxPtnData ptn;
cvxPtnDataInit(ptnType, &ptn);
std::vector<int> vGeoms;
vGeoms.push_back(idShape);
ptn.ptnData.linear.num[0] = 5;
ptn.ptnData.linear.spacing[0] = 30;
ptn.ptnData.linear.dir[0] = { 1,0,0 };
ptn.ptnData.linear.useSecondDir = 1;
ptn.ptnData.linear.num[1] = 3;
ptn.ptnData.linear.spacing[1] = 50;
ptn.ptnData.linear.dir[1] = { 0,1,0 };
svxPtnGeom ptnGeom = { 0 };
ptnGeom.inpData = &ptn;
ptnGeom.nonAssoCopy = 0;
int idPattern = 0;
cvxPartPatternGeom((int)vGeoms.size(), vGeoms.data(), &ptnGeom, &idPattern);