// Copyright (C) 2001 Leena L�hteenm�ki, Finland // Copyright (C) 2012 PatternMaker Software // 2011/11/04 double x[200], y[200]; object group_obj[200]; point current_point; object current_object; selection current_selection; double language, texts, grouping; double vy,aly,length,crotch,ylk,alk,cuff; double second_dart, first_dart, back_dart; double metric; double model,waist_model,raised, slit; double pocket; double zipper; double text; double test; double pleats; double siirtox, siirtoy; double ang, ang2; double sv, round_abdomen; double polvikorkeus; double ease, f_vy[3],f_aly[3]; double index, done, version; object marker_array[20]; double marker_count, loop; double result; main() { index = 0; done = 0; language=get_language(); if(language != 0) { language = 0; } if (language == 0) { check_reg(0, "Leena","L1macros", "This macro needs to be properly installed before running it."); } //Start Options while (!done) { if (index==0) { dialog_model(); } if (index==1) { dialog_ease(); } if (index==2) { dialog_waist_model(); } if (index==3) { dialog_Round_abdomen(); } if (index==4) { dialog_pocket(); } if (index==5) { dialog_pocket2(); } } //End Options vy=78; aly=102; alk=19; length=106; zipper=20; crotch=27.8; cuff=38; sv=1; ylk=9; crotch=crotch-1; if (is_function("unit_mode")==1) { metric = unit_mode(); if (!metric) { vy=vy/2.54; aly=aly/2.54; length=length/2.54; zipper=zipper/2.54; crotch=crotch/2.54; ylk=ylk/2.54; alk=alk/2.54; cuff=cuff/2.54; sv=sv/2.54; } } else { if (language == 0) { metric=2*pop_up("UNITS","Inches","Centimeters"); } if (metric<1) { vy=vy/2.54; aly=aly/2.54; length=length/2.54; zipper=zipper/2.54; crotch=crotch/2.54; ylk=ylk/2.54; alk=alk/2.54; cuff=cuff/2.54; sv=sv/2.54; } } if(metric==0) { sv=0.39; } double read; read = 0; if (is_function("measure_table")==1) { if (measure_table("default_women")==1) { read = 1; } } if (read==0) { if (is_function("start_picture_input")) { if (language == 0) { start_picture_input("LADIES' PANTS"); } if (language == 0) { add_picture_input("Waist circumference", vy, "w_meas_waistcirc"); } if (language == 0) { add_picture_input("Hip circumference", aly, "w_meas_hipcirc"); } if (language == 0) { add_picture_input("Waist - Hip", alk, "w_meas_waist-hip"); } if (language == 0) { add_picture_input("Crotch depth", crotch, "w_meas_crotch_dpt"); } run_picture_input(); } else { if (language == 0) { dialog_box( "LADIES' PANTS, 1 of 1", "Waist circumference", vy, "Hip circumference", aly, "Waist - Hip", alk, "Crotch depth", crotch); } } } if(model<3) { if (is_function("start_picture_input")) { if (language == 0) { start_picture_input("CUSTOM MEASUREMENTS"); } if (language == 0) { add_picture_input("Zipper length",zipper,"w_meas_zipper"); } if (language == 0) { add_picture_input("Outside seam length", length,"w_meas_outside"); } if (language == 0) { add_picture_input("Cuff circumference", cuff, "w_meas_cuffcirc"); } if (language == 0) { add_picture_input("Seam Allowance", sv, "meas_seamallow"); } run_picture_input(); } else { if (language == 0) { dialog_box( "CUSTOM MEASUREMENTS", "Outside seam length", length, "Zipper length",zipper, "Cuff circumference", cuff, "Seam Allowance",sv); } } } else { if (is_function("start_picture_input")) { if (language == 0) { start_picture_input("CUSTOM MEASUREMENTS"); } if (language == 0) { add_picture_input("Zipper length",zipper,"w_meas_zipper"); } if (language == 0) { add_picture_input("Outside seam length", length,"w_meas_outside"); } if (language == 0) { add_picture_input("Seam Allowance", sv, "meas_seamallow"); } run_picture_input(); } else { if (language == 0) { dialog_box( "CUSTOM MEASUREMENTS", "Outside seam length", length, "Zipper length",zipper, "Seam Allowance",sv); } } } if (is_function("unit_mode")==1) { metric = unit_mode(); if (!metric) { vy=vy*2.54; aly=aly*2.54; length=length*2.54; zipper=zipper*2.54; crotch=crotch*2.54; ylk=ylk*2.54; alk=alk*2.54; cuff=cuff*2.54; } } else { if (metric<1) { vy=vy*2.54; aly=aly*2.54; length=length*2.54; zipper=zipper*2.54; crotch=crotch*2.54; ylk=ylk*2.54; alk=alk*2.54; cuff=cuff*2.54; } } if(metric==2) { sv=sv/2.54; } f_vy[0]=vy+2; f_aly[0]=aly+4; f_vy[1]=vy+1; f_aly[1]=aly+2; f_vy[2]=vy+3; f_aly[2]=aly+6; vy=f_vy[ease]; aly=f_aly[ease]; if(waist_model==1) { aly=aly+2; } test=aly-vy; if (test<32) { second_dart=0; first_dart=3; back_dart=2.5; } else { second_dart=3; first_dart=3; back_dart=3; } polvikorkeus=80; x[0]=0; y[0]=0; coord(0,1,0,-ylk); coord(0,2,0,-alk); coord(0,3,0,-crotch); coord(0,5,0,-length); x[4]=x[5]; y[4]=y[5]+dist(5,3)/2+6; coord(0,6,-vy/8,0); coord(2,7,-(aly/8-2),0); coord(7,8,0,-(crotch-alk)); coord(8,9,-(aly/20-1)-1,0); cont(8,6,7,-zipper); coord(5,10,-(cuff/4-1),0); coord(5,11,(cuff/4-1),0); coord(3,12,aly/8+2,0); coord(2,13,aly/8+2,0); coord(13,14,0,alk/3*2); x[14]=x[13]+1; coord(0,18,-first_dart/2,0); coord(18,17,+first_dart/2,-ylk); coord(0,15,vy/8+second_dart+first_dart,1); coord(18,16,+first_dart,0); coord(16,43,+4,0); coord(43,42,second_dart/2,-ylk+2); coord(43,44,second_dart,0); coord(0,19,-1.5,(aly/20-1.5)); coord(2,20,-(aly/20+1),(aly/20-1.5)); coord(8,21,1,-1.5); coord(8,22,-(aly/20),-1.5); coord(22,23,-(aly/20)+1,0); if((alk==crotch)||(alk>crotch)) { cont(21,19,20,-19); } coord(10,24,-2,0); coord(11,25,+2,0); double a, b, c; a=aly/20-1.5; c=aly/4; b=sqrt(c*c-a*a); coord(20,26,b,a); double a, b, c; a=aly/20-1.5; if(waist_model==1) { c=aly/4; } else { c=vy/4+back_dart; } b=sqrt(c*c-a*a); coord(19,28,b,-a); center (26,28,27); if(model<3) { x[27]=x[27]+1; } cont(19,28,31,-dist(19,28)/2); cont(19,31,29,back_dart); coord(31,30,0,-14); center(9,10,38); cont(10,38,38,6); x[38]=x[38]+2; coord(38,39,2*dist(38,4),0); coord(38,45,-2,0); coord(39,32,2,0); center(38,9,40); x[40]=x[40]+2; center(45,23,33); x[33]=x[33]+2; x[4]=x[0]; y[4]=y[38]; x[41] = x[14]; y[41] = y[43]- interceptline(x[14],x[43],16.5); x[41]=x[41]-.4; cont(0,15,46,-9); cont(41,15,47,-12); x[47]=x[47]+1; x[48]=x[43]; y[48]=y[47]; cont(39,41,49,-12); cont(14,15,50,-2); cont(14,15,51,-18.5); if(waist_model==0) { x[50]=x[13]-1; x[51]=x[13]; } else { x[50]=x[13]; x[51]=x[13]; } coord(17,52,0,-30); line_intersect(17,52,49,40,53); coord(17,54,0,-30); line_intersect(17,54,49,40,55); coord(42,56,0,-30); line_intersect(17,56,49,40,57); if(waist_model==1) { x[58]=x[16]-2; y[58]=y[16]-3; } else { x[58]=x[15]-3; y[58]=y[15]-3; } coord(58,59,1,0); coord(58,60,2,0); coord(58,61,0,-16.5); coord(61,62,1,0); coord(61,63,2,0); coord(0,80,0,0); coord(0,80,0,0); if(round_abdomen==1) { y[15]=y[15]-1; y[16]=y[16]+3; y[0]=y[0]+3; y[18]=y[18]+2; y[6]=y[6]+3; y[99]=y[99]+2; y[98]=y[99]+2; y[112]=y[112]+2; y[113]=y[113]+2; y[114]=y[114]+2; y[115]=y[115]+2; y[118]=y[118]+2; y[18]=y[18]+1; y[43]=y[43]+1; y[109]=y[109]+2; y[28]=y[28]-1; } y[26]=y[13]; if(waist_model==1) { x[14]=x[13]; x[15]=x[13]; } if(model==0) { if(pocket>0) { draw_pocket(); } if(pocket==3) { draw_pocket_mouth_straight(); } if(pocket==4) { draw_pocket_mouth_round(); } //removed 2 draw_front_texts_and_grain(); draw_back_texts_and_grain(); if(waist_model==0) { draw_zipper_line(); } if(waist_model==0) { draw_first_dart(); if(test>32) { draw_second_dart(); } draw_back_dart(); } if(waist_model==0) { draw_waistband(); } if(waist_model==1) { draw_waistband_elastic(); } draw_basic_front(); draw_basic_back(); } if(model==1) { if(pocket>0) { draw_pocket(); } if(pocket==3) { draw_pocket_mouth_straight(); } if(pocket==4) { draw_pocket_mouth_round(); } draw_front_texts_and_grain(); draw_back_texts_and_grain(); draw_back_dart(); draw_pleated_front(); draw_waistband(); draw_basic_back(); } current_selection=newselection("OBJECT"); for (loop = 0; loop < 20; loop = loop + 1) { if (marker_array[loop] != 0) { select(current_selection, marker_array[loop]); } } check_overlap(current_selection); if (is_function("origin_arrange")==1) { origin_arrange(current_selection); } deselect(current_selection); if (is_function("set_marker")==1) { for (loop = 0; loop < 20; loop = loop + 1) { if (marker_array[loop] != 0) { set_marker(marker_array[loop], 0); } } } run_command("zoomall"); } draw_front_texts_and_grain() { if(pleats==2) { x[6]=x[6]-2; } if (language == 0) { current_object=newobject("text","CF, Front piece, Cut 2",0.0,0.2,0.2,"SIMP.CHR"); } if(pleats==2) { addpoint((x[6]-5+siirtox)/2.54, (y[6]-3+siirtoy)/2.54, "line"); } else { addpoint((x[6]+siirtox)/2.54, (y[6]-3+siirtoy)/2.54, "line"); } group_obj[23]=current_object; if(pleats==2) { x[6]=x[6]+2; } if(sv>0) { if (language == 0) { current_object=newobject("text","Check cuff seam allowance",0.0,0.2,0.2,"SIMP.CHR"); } if(model<3) { addpoint((x[10]+.2+siirtox)/2.54, (y[10]+1+siirtoy)/2.54, "line"); } else { addpoint((x[10]+.2+siirtox)/2.54, (y[75]+1+siirtoy)/2.54, "line"); } group_obj[79]=current_object; } if(model==0) { current_object=newobject("poly"); if(waist_model==0) { addpoint((x[17])/2.54, (y[17])/2.54, "line"); } else { addpoint((x[0])/2.54, (y[0]-1)/2.54, "line"); } addpoint((x[5])/2.54, (y[5]+.5)/2.54, "open"); group_obj[24]=current_object; } if(model==1) { current_object=newobject("poly"); addpoint((x[0])/2.54, (y[0])/2.54, "line"); addpoint((x[5])/2.54, (y[5])/2.54, "open"); group_obj[24]=current_object; } if (language == 0) { current_object=newobject("text","Front piece, Cut 2, Grainline",-1.570796,0.2,0.2,"SIMP.CHR"); } addpoint((x[0]+.2+siirtox)/2.54, (y[2]+siirtoy)/2.54, "line"); group_obj[115]=current_object; } draw_back_texts_and_grain() { if (language == 0) { current_object=newobject("text","CB, Back piece, Cut 2",0.0,0.2,0.2,"SIMP.CHR"); } addpoint((x[20]-aly/2+1)/2.54, (y[20])/2.54, "line"); group_obj[26]=current_object; if(sv>0) { if (language == 0) { current_object=newobject("text","Check cuff seam allowance",0.0,0.2,0.2,"SIMP.CHR"); } if(model<3) { addpoint((x[24]+.2-aly/2+1)/2.54, (y[24]+1)/2.54, "line"); } else { addpoint((x[24]+.2-aly/2+1)/2.54, (y[75]+1)/2.54, "line"); } group_obj[80]=current_object; } if((model==0)||(model==1)) { current_object=newobject("poly"); addpoint((x[5]-aly/2)/2.54, y[31]/2.54, "line"); addpoint((x[5]-aly/2)/2.54, (y[5]-0.5)/2.54, "open"); group_obj[27]=current_object; } if (language == 0) { current_object=newobject("text","Back piece, Cut 2, Grainline",-1.570796,0.2,0.2,"SIMP.CHR"); } addpoint((x[0]-aly/2+.2+siirtox)/2.54, (y[2]+siirtoy)/2.54, "line"); group_obj[72]=current_object; if (language == 0) { current_object=newobject("text","S t r e t c h",-1.213764,0.2,0.2,"SIMP.CHR"); } addpoint((x[9]-2.5-aly/2+1)/2.54, (y[9]-5)/2.54, "line"); group_obj[81]=current_object; } draw_zipper_line() { current_object=newobject("poly"); addpoint((x[6])/2.54, (y[6]+siirtoy)/2.54, "line"); addpoint((x[7])/2.54, (y[7]+siirtoy)/2.54, "open"); group_obj[75]=current_object; } draw_first_dart() { current_object=newobject("poly"); addpoint(x[16]/2.54, y[16]/2.54, "LINE"); addpoint(x[17]/2.54, y[17]/2.54, "LINE"); addpoint(x[18]/2.54, (y[18])/2.54, "open"); group_obj[76]=current_object; } draw_second_dart() { current_object=newobject("poly"); addpoint(x[44]/2.54, (y[44])/2.54, "LINE"); addpoint(x[42]/2.54, y[42]/2.54, "LINE"); addpoint(x[43]/2.54, (y[43])/2.54, "open"); group_obj[77]=current_object; } draw_back_dart() { current_object=newobject("poly"); addpoint((x[29]-aly/2)/2.54, (y[29])/2.54, "LINE"); addpoint((x[30]-aly/2)/2.54, y[30]/2.54, "LINE"); addpoint((x[31]-aly/2)/2.54, (y[31])/2.54, "open"); group_obj[116]=current_object; } draw_waistband_elastic() { siirtox=-aly/2; siirtoy=+crotch+10; current_object=newobject("poly"); addpoint((x[23]+siirtox-4)/2.54, (y[23]+siirtoy)/2.54, "LINE"); addpoint((x[23]+siirtox+dist(6,15)+dist(19,28))/2.54, (y[23]+siirtoy)/2.54, "LINE"); addpoint((x[23]+siirtox+dist(6,15)+dist(19,28))/2.54, (y[23]+6+siirtoy)/2.54, "LINE"); addpoint((x[23]+siirtox-4)/2.54, (y[23]+6+siirtoy)/2.54, "LINE"); group_obj[1]=current_object; if (language == 0) { current_object=newobject("text","Waistband, CF, Cut 1 on fold",0.0,0.2,0.2,"SIMP.CHR"); } addpoint((x[23]+1+siirtox)/2.54, (y[23]+3+siirtoy)/2.54, "line"); group_obj[78]=current_object; current_object=newobject("poly"); addpoint((x[23]+siirtox)/2.54, (y[23]+siirtoy)/2.54, "LINE"); addpoint((x[23]+siirtox)/2.54, (y[23]+6+siirtoy)/2.54, "open"); group_obj[2]=current_object; if (language == 0) { current_object=newobject("text","Center Back",0.0,0.2,0.2,"SIMP.CHR"); } addpoint((x[23]-5+siirtox+dist(6,15)+dist(19,28))/2.54, (y[23]+3+siirtoy)/2.54, "LINE"); group_obj[3]=current_object; if (language == 0) { current_object=newobject("text","If cut on fold remove CB seam allowance",0.0,0.2,0.2,"SIMP.CHR"); } addpoint((x[23]-20+siirtox+dist(6,15)+dist(19,28))/2.54, (y[23]+2+siirtoy)/2.54, "LINE"); group_obj[152]=current_object; if(sv>0) { offset_mark(1); select(current_selection,group_obj[78]); select(current_selection,group_obj[152]); select(current_selection,group_obj[2]); select(current_selection,group_obj[3]); group(current_selection); deselect(current_selection); } else { mark(1); current_selection=newselection("OBJECT"); select(current_selection,group_obj[1]); select(current_selection,group_obj[78]); select(current_selection,group_obj[2]); select(current_selection,group_obj[3]); group(current_selection); deselect(current_selection); } siirtox=0; } draw_waistband() { siirtoy=crotch+10; current_object=newobject("poly"); addpoint((x[23]+siirtox-4)/2.54, (y[23]+siirtoy)/2.54, "LINE"); addpoint((x[23]+siirtox+vy/2)/2.54, (y[23]+siirtoy)/2.54, "LINE"); addpoint((x[23]+siirtox+vy/2)/2.54, (y[23]+6+siirtoy)/2.54, "LINE"); addpoint((x[23]+siirtox-4)/2.54, (y[23]+6+siirtoy)/2.54, "LINE"); group_obj[4]=current_object; current_object=newobject("poly"); addpoint((x[23]+siirtox)/2.54, (y[23]+siirtoy)/2.54, "LINE"); addpoint((x[23]+siirtox)/2.54, (y[23]+6+siirtoy)/2.54, "open"); group_obj[6]=current_object; if (language == 0) { current_object=newobject("text","Wastband, CF, Cut 1 on fold",0.0,0.2,0.2,"SIMP.CHR"); } addpoint((x[23]+1+siirtox)/2.54, (y[23]+3+siirtoy)/2.54, "line"); group_obj[5]=current_object; if (language == 0) { current_object=newobject("text","Center Back",0.0,0.2,0.2,"SIMP.CHR"); } addpoint((x[23]-5+siirtox+vy/2)/2.54, (y[23]+3+siirtoy)/2.54, "LINE"); group_obj[7]=current_object; if (language == 0) { current_object=newobject("text","If cut on fold remove CB seam allowance",0.0,0.2,0.2,"SIMP.CHR"); } addpoint((x[23]-25+siirtox+dist(6,15)+dist(19,28))/2.54, (y[23]+2+siirtoy)/2.54, "LINE"); group_obj[152]=current_object; if(sv>0) { offset_mark(4); select(current_selection,group_obj[5]); select(current_selection,group_obj[152]); select(current_selection,group_obj[6]); select(current_selection,group_obj[7]); group(current_selection); deselect(current_selection); } else { mark(4); current_selection=newselection("OBJECT"); select(current_selection,group_obj[4]); select(current_selection,group_obj[5]); select(current_selection,group_obj[6]); select(current_selection,group_obj[7]); group(current_selection); deselect(current_selection); } siirtox=0; } draw_pocket() { siirtoy=50; current_object=newobject("poly"); if(waist_model==0) { addpoint((x[17]+siirtox)/2.54, (y[17]+siirtoy)/2.54, "LINE"); } else { addpoint((x[0]+siirtox)/2.54, (y[0]-1+siirtoy)/2.54, "LINE"); } addpoint(x[2]/2.54, (y[2]+2+siirtoy)/2.54, "open"); group_obj[84]=current_object; if (language == 0) { current_object=newobject("text","Pocket lining, Cut 2, Grainline",-1.570796,0.2,0.2,"SIMP.CHR"); } addpoint((x[0]+.2+siirtox)/2.54, (y[17]-1+siirtoy)/2.54, "line"); group_obj[89]=current_object; if(waist_model==0) { current_object=newobject("poly"); addpoint(x[16]/2.54, (y[16]+siirtoy)/2.54, "LINE"); addpoint(x[17]/2.54, (y[17]+siirtoy)/2.54, "LINE"); addpoint(x[18]/2.54, (y[18]+siirtoy)/2.54, "open"); group_obj[94]=current_object; if((test>32)&&(pocket<3)) { current_object=newobject("poly"); addpoint(x[44]/2.54, (y[44]+siirtoy)/2.54, "LINE"); addpoint(x[42]/2.54, (y[42]+siirtoy)/2.54, "LINE"); addpoint(x[43]/2.54, (y[43]+siirtoy)/2.54, "open"); group_obj[95]=current_object; } } current_object=newobject("poly"); if(pocket<3) { current_point=addpoint((x[13])/2.54, (y[13]+siirtoy)/2.54, "xarc_start"); notch_type(current_point,"NOTCH",1); addpoint((x[14])/2.54, (y[14]+siirtoy)/2.54, "xarc_corner"); addpoint((x[15]+siirtox)/2.54, (y[15]+siirtoy)/2.54, "line"); current_point=addpoint((x[43])/2.54, (y[43]+siirtoy)/2.54, "xarc_start"); } if(pocket==3) { current_point=addpoint((x[13])/2.54, (y[13]+siirtoy)/2.54, "line"); notch_type(current_point,"NOTCH",1); addpoint((x[41]-.5)/2.54, (y[41]+siirtoy)/2.54, "line"); current_point=addpoint((x[43])/2.54, (y[43]+siirtoy)/2.54, "xarc_start"); } if(pocket==4) { if(pocket==4) { current_point=addpoint((x[13])/2.54, (y[13]+siirtoy)/2.54, "line"); notch_type(current_point,"NOTCH",1); addpoint((x[41]-.5)/2.54, (y[41]+siirtoy)/2.54, "xarc_start"); addpoint((x[48])/2.54, (y[48]+siirtoy)/2.54, "xarc_corner"); addpoint((x[43])/2.54, (y[43]+siirtoy)/2.54, "xarc_start"); } } addpoint(x[0]/2.54, (y[0]+siirtoy)/2.54, "xarc_corner"); addpoint(x[6]/2.54, (y[6]+siirtoy)/2.54, "line"); cont(6,7,120,-dist(6,7)/2); addpoint((x[120])/2.54, (y[120]+siirtoy)/2.54, "xarc_start"); addpoint(x[0]/2.54, (y[120]+siirtoy)/2.54, "xarc_corner"); addpoint(x[0]/2.54, (y[13]+siirtoy)/2.54, "line"); addpoint((x[0])/2.54, (y[13]-5+siirtoy)/2.54, "xarc_start"); addpoint((x[0])/2.54, (y[0]-35+siirtoy)/2.54, "xarc_corner"); group_obj[71]=current_object; if(sv>0) { offset_mark(71); if(waist_model==0) { select(current_selection,group_obj[94]); if((test>32)&&(pocket<3)) { select(current_selection,group_obj[95]); } } select(current_selection,group_obj[84]); select(current_selection,group_obj[89]); group(current_selection); deselect(current_selection); } else { mark(71); current_selection=newselection("OBJECT"); select(current_selection,group_obj[71]); if(waist_model==0) { select(current_selection,group_obj[94]); if((test>32)&&(pocket<3)) { select(current_selection,group_obj[95]); } } select(current_selection,group_obj[84]); select(current_selection,group_obj[89]); group(current_selection); deselect(current_selection); } siirtox=aly/4; siirtoy=50; if(pocket==1) { current_object=newobject("poly"); addpoint((x[50]-.5+siirtox)/2.54, (y[50]+siirtoy)/2.54, "line"); addpoint((x[50]+.5+siirtox)/2.54, (y[50]+siirtoy)/2.54, "open"); group_obj[96]=current_object; current_object=newobject("poly"); addpoint((x[51]-.5+siirtox)/2.54, (y[51]+siirtoy)/2.54, "line"); addpoint((x[51]+.5+siirtox)/2.54, (y[51]+siirtoy)/2.54, "open"); group_obj[97]=current_object; } if(pocket==2) { current_object=newobject("poly"); addpoint((x[58]+siirtox)/2.54, (y[58]+siirtoy)/2.54, "line"); addpoint((x[60]+siirtox)/2.54, (y[60]+siirtoy)/2.54, "line"); addpoint((x[63]+siirtox)/2.54, (y[63]+siirtoy)/2.54, "line"); addpoint((x[61]+siirtox)/2.54, (y[61]+siirtoy)/2.54, "line"); group_obj[98]=current_object; current_object=newobject("poly"); addpoint((x[59]+siirtox)/2.54, (y[59]+siirtoy)/2.54, "line"); addpoint((x[62]+siirtox)/2.54, (y[62]+siirtoy)/2.54, "open"); group_obj[99]=current_object; } current_object=newobject("poly"); if(waist_model==0) { addpoint((x[17]+siirtox)/2.54, (y[17]+siirtoy)/2.54, "LINE"); } else { addpoint((x[0]+siirtox)/2.54, (y[0]-1+siirtoy)/2.54, "LINE"); } addpoint((x[2]+siirtox)/2.54, (y[2]+2+siirtoy)/2.54, "open"); group_obj[88]=current_object; if (language == 0) { current_object=newobject("text","Pocket bag, Cut 2, Grainline",-1.570796,0.2,0.2,"SIMP.CHR"); } addpoint((x[0]+.2+siirtox)/2.54, (y[17]-1+siirtoy)/2.54, "line"); group_obj[90]=current_object; if(waist_model==0) { current_object=newobject("poly"); addpoint((x[16]+siirtox)/2.54, (y[16]+siirtoy)/2.54, "LINE"); addpoint((x[17]+siirtox)/2.54, (y[17]+siirtoy)/2.54, "LINE"); addpoint((x[18]+siirtox)/2.54, (y[18]+siirtoy)/2.54, "open"); group_obj[125]=current_object; if(test>32) { current_object=newobject("poly"); addpoint((x[44]+siirtox)/2.54, (y[44]+siirtoy)/2.54, "LINE"); addpoint((x[42]+siirtox)/2.54, (y[42]+siirtoy)/2.54, "LINE"); addpoint((x[43]+siirtox)/2.54, (y[43]+siirtoy)/2.54, "open"); group_obj[126]=current_object; } } current_object=newobject("poly"); current_point=addpoint((x[13]+siirtox)/2.54, (y[13]+siirtoy)/2.54, "xarc_start"); notch_type(current_point,"NOTCH",1); addpoint((x[14]+siirtox)/2.54, (y[14]+siirtoy)/2.54, "xarc_corner"); addpoint((x[15]+siirtox)/2.54, (y[15]+siirtoy)/2.54, "line"); addpoint((x[43]+siirtox)/2.54, (y[43]+siirtoy)/2.54, "xarc_start"); addpoint((x[0]+siirtox)/2.54, (y[0]+siirtoy)/2.54, "xarc_corner"); addpoint((x[6]+siirtox)/2.54, (y[6]+siirtoy)/2.54, "line"); cont(6,7,120,-dist(6,7)/2); addpoint((x[120]+siirtox)/2.54, (y[120]+siirtoy)/2.54, "xarc_start"); addpoint((x[0]+siirtox)/2.54, (y[120]+siirtoy)/2.54, "xarc_corner"); addpoint((x[0]+siirtox)/2.54, (y[13]+siirtoy)/2.54, "line"); addpoint((x[0]+siirtox)/2.54, (y[13]-5+siirtoy)/2.54, "xarc_start"); addpoint((x[0]+siirtox)/2.54, (y[0]-35+siirtoy)/2.54, "xarc_corner"); group_obj[131]=current_object; if(sv>0) { offset_mark(131); if(waist_model==0) { select(current_selection,group_obj[125]); if(test>32) { select(current_selection,group_obj[126]); } } if(pocket==1) { select(current_selection,group_obj[96]); select(current_selection,group_obj[97]); } if(pocket==2) { select(current_selection,group_obj[98]); select(current_selection,group_obj[99]); } select(current_selection,group_obj[88]); select(current_selection,group_obj[90]); group(current_selection); deselect(current_selection); } else { mark(131); current_selection=newselection("OBJECT"); select(current_selection,group_obj[131]); if(waist_model==0) { select(current_selection,group_obj[125]); if(test>32) { select(current_selection,group_obj[126]); } } if(pocket==1) { select(current_selection,group_obj[96]); select(current_selection,group_obj[97]); } if(pocket==2) { select(current_selection,group_obj[98]); select(current_selection,group_obj[99]); } select(current_selection,group_obj[88]); select(current_selection,group_obj[90]); group(current_selection); deselect(current_selection); } siirtox=0; siirtoy=0; } draw_pocket_mouth_straight() { if(model==1) { ang=angle(x[5],y[5],x[0],y[0])-angle(x[5],y[5],x[0]+6,y[0]); rotate(0,5,-2*ang); rotate(43,5,-2*ang); rotate(41,5,-2*ang); rotate(44,5,-2*ang); } current_object=newobject("poly"); addpoint((x[41]-.5)/2.54, (y[41]+siirtoy)/2.54, "line"); if(round_abdomen==1) { current_point=addpoint((x[0]+4+first_dart/2)/2.54, (y[0]-2)/2.54, "open"); } else { current_point=addpoint((x[0]+4+first_dart/2)/2.54, (y[0])/2.54, "open"); } group_obj[123]=current_object; if(model==1) { ang=angle(x[5],y[5],x[0],y[0])-angle(x[5],y[5],x[0]+6,y[0]); rotate(0,5,2*ang); rotate(43,5,2*ang); rotate(41,5,2*ang); rotate(44,5,2*ang); } } draw_pocket_mouth_round() { if(model==1) { ang=angle(x[5],y[5],x[0],y[0])-angle(x[5],y[5],x[0]+6,y[0]); rotate(0,5,-2*ang); rotate(43,5,-2*ang); rotate(41,5,-2*ang); rotate(48,5,-2*ang); } current_object=newobject("poly"); addpoint((x[41]-.5)/2.54, (y[41]+siirtoy)/2.54, "xarc_start"); addpoint((x[48])/2.54, (y[48]+siirtoy)/2.54, "xarc_corner"); if(round_abdomen==1) { current_point=addpoint((x[0]+4+first_dart/2)/2.54, (y[0]-1)/2.54, "open"); } else { current_point=addpoint((x[0]+4+first_dart/2)/2.54, (y[0])/2.54, "open"); } group_obj[136]=current_object; if(model==1) { ang=angle(x[5],y[5],x[0],y[0])-angle(x[5],y[5],x[0]+6,y[0]); rotate(0,5,2*ang); rotate(43,5,2*ang); rotate(41,5,2*ang); rotate(48,5,2*ang); } } draw_basic_front() { siirtox=0; siirtoy=0; current_object=newobject("poly"); if(length0) { offset_mark(22); select(current_selection,group_obj[115]); select(current_selection,group_obj[23]); select(current_selection,group_obj[24]); select(current_selection,group_obj[79]); if(waist_model==0) { select(current_selection,group_obj[75]); } if(waist_model==0) { select(current_selection,group_obj[76]); if(test>32) { select(current_selection,group_obj[77]); } } if(pocket==3) { select(current_selection,group_obj[123]); } if(pocket==4) { select(current_selection,group_obj[136]); } group(current_selection); deselect(current_selection); } else { mark(22); current_selection=newselection("OBJECT"); select(current_selection,group_obj[22]); select(current_selection,group_obj[115]); select(current_selection,group_obj[23]); select(current_selection,group_obj[24]); if(waist_model==0) { select(current_selection,group_obj[75]); } if(waist_model==0) { select(current_selection,group_obj[76]); if(test>32) { select(current_selection,group_obj[77]); } } if(pocket==3) { select(current_selection,group_obj[123]); } if(pocket==4) { select(current_selection,group_obj[136]); } group(current_selection); deselect(current_selection); } } draw_pleated_front() { current_object=newobject("poly"); addpoint(x[6]/2.54, (y[6])/2.54, "LINE"); addpoint(x[7]/2.54, (y[7])/2.54, "open"); group_obj[74]=current_object; if (language == 0) { current_object=newobject("text","Pleat",0.0,0.2,0.2,"SIMP.CHR"); } addpoint((x[0]+2)/2.54, (y[0]-1+.2)/2.54, "line"); group_obj[101]=current_object; current_object=newobject("poly"); addpoint((x[0])/2.54, (y[0])/2.54, "LINE"); addpoint((x[6])/2.54, (y[6])/2.54, "LINE"); addpoint((x[6]-4)/2.54, (y[6])/2.54, "LINE"); addpoint((x[7]-4)/2.54, (y[7]+1)/2.54, "LINE"); addpoint((x[7])/2.54, (y[7])/2.54, "xarc_start"); addpoint((x[8])/2.54, (y[8])/2.54, "xarc_corner"); if(length0) { offset_mark(40); select(current_selection,group_obj[101]); select(current_selection,group_obj[117]); select(current_selection,group_obj[115]); select(current_selection,group_obj[23]); select(current_selection,group_obj[24]); select(current_selection,group_obj[79]); select(current_selection,group_obj[74]); if(pocket==3) { select(current_selection,group_obj[123]); } if(pocket==4) { select(current_selection,group_obj[136]); } select(current_selection,group_obj[118]); select(current_selection,group_obj[119]); select(current_selection,group_obj[120]); select(current_selection,group_obj[127]); select(current_selection,group_obj[121]); group(current_selection); deselect(current_selection); } else { mark(40); current_selection=newselection("OBJECT"); select(current_selection,group_obj[40]); select(current_selection,group_obj[101]); select(current_selection,group_obj[117]); select(current_selection,group_obj[115]); select(current_selection,group_obj[23]); select(current_selection,group_obj[24]); select(current_selection,group_obj[74]); if(pocket==3) { select(current_selection,group_obj[123]); } if(pocket==4) { select(current_selection,group_obj[136]); } select(current_selection,group_obj[118]); select(current_selection,group_obj[119]); select(current_selection,group_obj[120]); select(current_selection,group_obj[127]); select(current_selection,group_obj[121]); group(current_selection); deselect(current_selection); } } draw_basic_back() { current_object=newobject("poly"); current_point=addpoint((x[19]-aly/2)/2.54, y[19]/2.54, "line"); notch_type(current_point,"NOTCH",1); addpoint((x[20]-aly/2)/2.54, y[20]/2.54, "XARC_START"); addpoint((x[21]-aly/2)/2.54, y[21]/2.54, "XARC_CORNER"); addpoint((x[22]-aly/2)/2.54, y[22]/2.54, "LINE"); if(length0) { offset_mark(25); select(current_selection,group_obj[26]); select(current_selection,group_obj[27]); select(current_selection,group_obj[72]); select(current_selection,group_obj[81]); select(current_selection,group_obj[80]); if (group_obj[116]) { select(current_selection,group_obj[116]); } if(waist_model==0) { select(current_selection,group_obj[116]); } group(current_selection); deselect(current_selection); } else { mark(25); current_selection=newselection("OBJECT"); select(current_selection,group_obj[25]); select(current_selection,group_obj[26]); select(current_selection,group_obj[27]); select(current_selection,group_obj[72]); select(current_selection,group_obj[81]); if (group_obj[116]) { select(current_selection,group_obj[116]); } if(waist_model==0) { select(current_selection,group_obj[116]); } group(current_selection); deselect(current_selection); } } dialog_model() { if (language == 0) { start_pict_dialog("PANTS STYLE"); add_pict_item("Pants with Darts","L1_pant_darts.jpg"); add_pict_item("Pants with Pleats","L1_pant_pleats.jpg"); run_pict("Next"); model=get_pict_result(); Forward(); } } dialog_ease() { if (language == 0) { start_pict_dialog("HIP EASE"); add_pict_item("Normal (+1.5in/+4cm)"," "); add_pict_item("Minimum (+0.75in/+2 cm)"," "); add_pict_item("Maximum (+2.5in/+6 cm)"," "); if (run_pict("Back","Next")) { ease=get_pict_result(); Forward(); } else { ease=0; Backward(); } } } dialog_waist_model() { if (language == 0) { start_pict_dialog("WAISTBAND TYPE"); add_pict_item("Normal Waistband","L1_pant_darts.jpg"); add_pict_item("Elastic Waistband","L1_pant_waist_elastic.jpg"); if (run_pict("Back","Next")) { waist_model=get_pict_result(); Forward(); } else { waist_model=0; Backward(); } } } dialog_Round_abdomen() { if (language == 0) { start_pict_dialog("WAISTLINE CUT"); add_pict_item("Normal","L1_pant_darts.jpg"); add_pict_item("Round abdomen","L1_pant_waist_round.jpg"); if (run_pict("Back","Next")) { Round_abdomen=get_pict_result(); Forward(); } else { Round_abdomen=0; Backward(); } } } dialog_pocket() { if (language == 0) { start_pict_dialog("CHOICE OF POCKETS"); add_pict_item("No pockets","L1_pant_pkt_none.jpg"); add_pict_item("In-seam pockets","L1_pant_pkt_sideseam.jpg"); add_pict_item("Double-welt pockets","L1_pant_pkt_welt.jpg"); if (run_pict("Back","Next")) { pocket=get_pict_result(); Forward(); } else { pocket=0; Backward(); } } } dialog_pocket2() { if (language == 0) { start_pict_dialog("CHOICE OF POCKETS"); add_pict_item("No pockets","L1_pant_pkt_none.jpg"); add_pict_item("In-seam pockets","L1_pant_pkt_sideseam.jpg"); add_pict_item("Double-welt pockets","L1_pant_pkt_welt.jpg"); add_pict_item("Straight hip pockets","L1_pant_pkt_straight.jpg"); add_pict_item("Round hip pocket","L1_pant_pkt_round.jpg"); if (run_pict("Back","Next")) { pocket=get_pict_result(); Forward(); } else { pocket=0; Backward(); } } } Forward() { index = index + 1; if ((index == 4) && (model ==0)) { index = index + 1; } if ((index == 5) && (model !=0)) { index = index + 1; } if (index == 6) { done = 1; } } Backward() { index = index - 1; if ((index == 5) && (model !=0)) { index = index - 1; } if ((index == 4) && (model ==0)) { index = index - 1; } } coord(double orig, double dest, double xxx, double yyy) { x[dest]=x[orig]+xxx; y[dest]=y[orig]+yyy; } center(double one, double two, double result) { x[result]=(x[one]+x[two])/2; y[result]=(y[one]+y[two])/2; } dist(double p1, double p2) { return distance(x[p1],y[p1],x[p2],y[p2]); } line_intersect(double start1, double end1, double start2, double end2, double dest) { double tempx; double tempy; intersect(x[start1],y[start1],x[end1],y[end1],x[start2],y[start2],x[end2],y[end2],0); x[dest]=getresultx(); y[dest]=getresulty(); } cont(double cstart, double cend, double cdest, double cdistance) { double ang; ang=angle(x[cstart], y[cstart], x[cend], y[cend]); polar(x[cend], y[cend], ang, cdistance); x[cdest]=getresultx(); y[cdest]=getresulty(); } right_ang(double start, double end, double to_point, double dest) { double m,b; if (x[start]==x[end]) { x[dest]=x[end]; y[dest]=y[to_point]; } else { if (y[start]==y[end]) { x[dest]=x[to_point]; y[dest]=y[end]; } else { m=(y[start]-y[end])/(x[start]-x[end]); m=-1/m; b=y[to_point]-m*x[to_point]; intersect(x[start],y[start],x[end],y[end],x[to_point],y[to_point],0,b,0); x[dest]=getresultx(); y[dest]=getresulty(); } } } shift(double orig, double xxx, double yyy) { x[orig]=x[orig]+xxx; y[orig]=y[orig]+yyy; } rect (double x1, double y1, double x2, double y2) { newobject("poly"); addpoint( x1/2.54, y1/2.54, "LINE"); addpoint( x2/2.54, y1/2.54, "LINE"); addpoint( x2/2.54, y2/2.54, "LINE"); addpoint( x1/2.54, y2/2.54, "LINE"); } dot (double x, double y) { newobject("poly"); addpoint( x/2.54, y/2.54, "LINE"); } rotate(double rpoint,double rcenter, double rangle) { double vdistance, vang; vdistance=dist(rpoint, rcenter); vang=angle(x[rcenter],y[rcenter],x[rpoint],y[rpoint]); polar(x[rcenter],y[rcenter],vang+rangle,vdistance); x[rpoint]=getresultx(); y[rpoint]=getresulty(); } newobj_dot(double x, double y) { object temp; line("CENTER_LINE"); temp = newobject("POLY"); addpoint(x, y, "line"); line("SOLID_LINE"); return temp; } linecirc(double PA,double PB,double PC,double dradius,double which, double PD) { double mslope, dist0, dist1, dist2, xtemp; double tx, ty; xtemp = (x[PB]-x[PC])*(x[PB]-x[PC]); if (xtemp > 0) { xtemp = (y[PB]-y[PC])*(y[PB]-y[PC]); if ( xtemp > 0) { mslope = (y[PC] - y[PB])/(x[PC] - x[PB]); tx = x[PA] + 1; ty = y[PA] - 1/mslope; intersect(x[PA], y[PA], tx, ty, x[PB], y[PB], x[PC], y[PC], 0); tx = getresultx(); ty = getresulty(); dist1 = distance(x[PA], y[PA], tx, ty); dist2 = interceptline(0, dist1, dradius); dist0 = sqrt(1+mslope*mslope); xtemp = dist2/dist0; if (which) { x[PD] = tx+xtemp; y[PD] = ty+ xtemp*mslope; } else { x[PD] = tx-xtemp; y[PD] = ty- xtemp*mslope; } } else { x[PD] = x[PB]; if (which) { y[PD] = y[PA] + interceptline(x[PA], x[PB], dradius); } else { y[PD] = y[PA] - interceptline(x[PA], x[PB], dradius); } } } else { y[PD] = y[PB]; if (which) { x[PD] = x[PA] + interceptline(y[PA], y[PB], dradius); } else { x[PD] = x[PA] - interceptline(y[PA], y[PB], dradius); } } } mark(double pass_index) { group_obj[pass_index]=marker_piece(group_obj[pass_index],1); marker_array[marker_count] = group_obj[pass_index]; marker_count = marker_count + 1; } offset_mark(double pass_index) { point pnt, test; double save_x, save_y; current_selection=newselection("OBJECT"); select(current_selection,group_obj[pass_index]); sel_push(current_selection); var_push(sv); run_command("OFFSET"); deselect(current_selection); current_object=last_obj(); marker_array[marker_count] = marker_piece(current_object,1); current_selection=newselection("OBJECT"); select(current_selection, marker_array[marker_count]); select(current_selection, group_obj[pass_index]); marker_count = marker_count + 1; } /* ColorSelect() { object loop; while (loop_sel(current_selection)) { loop = get_sel_obj(); set_obj_color(loop, 254); } } */