I want to know how to find the shortest distance between each point relative to the center.
There will be more than 140 such bends, so the we should be able to find them automatically.
For reference, the program version : PCDMIS 2019 R2 CAD++

Your Products have been synced, click here to refresh
SCN1 =FEAT/SCAN,FREEFORM,NUMBER OF HITS=8261,SHOW HITS=NO,SHOWALLPARAMS=NO MEAS/SCAN BASICSCAN/FREEFORM,NUMBER OF HITS=8261,SHOW HITS=NO,SHOWALLPARAMS=NO ENDSCAN ENDMEAS/ CIR1 =FEAT/CIRCLE,CARTESIAN,IN,MAX_INSC,NO THEO/<-0.0011,0.0001,0>,<0,0,1>,37.9887 ACTL/<-0.0011,0.0001,0>,<0,0,1>,37.9887 CONSTR/CIRCLE,BF,3D,SCN1,, OUTLIER_REMOVAL/OFF,3 FILTER/OFF,UPR=0 C1 =COMMENT/INPUT,NO,FULL SCREEN=NO, Enter number of tooth ASSIGN/V1=360/C1.INPUT ASSIGN/V2=SQRT(DOT(SCN1.HIT[1..SCN1.NUMHITS].XYZ-CIR1.XYZ,SCN1.HIT[1..SCN1.NUMHITS].XYZ-CIR1.XYZ)) ASSIGN/V3=SCN1.HIT[MININDEX(V2)].XYZ F1 =GENERIC/POINT,DEPENDENT,CARTESIAN,$ NOM/XYZ,<V3.X,V3.Y,V3.Z>,$ MEAS/XYZ,<V3.X,V3.Y,V3.Z>,$ NOM/IJK,<0,0,1>,$ MEAS/IJK,<0,0,1> A1 =ALIGNMENT/START,RECALL:STARTUP,LIST=YES ALIGNMENT/LEVEL,ZPLUS,PLN1 ALIGNMENT/ROTATE_CIRCLE,XPLUS,TO,CIR1,AND,F1,ABOUT,ZPLUS ALIGNMENT/TRANS,ZAXIS,PLN1 ALIGNMENT/TRANS,XAXIS,CIR1 ALIGNMENT/TRANS,YAXIS,CIR1 ALIGNMENT/END ASSIGN/ANG_HIT=RAD2DEG(ATAN(SCN1.HIT[1..SCN1.NUMHITS].Y/SCN1.HIT[1..SCN1.NUMHITS].X)) ASSIGN/COR_HIT=((SCN1.HIT[1..SCN1.NUMHITS].X-ABS(SCN1.HIT[1..SCN1.NUMHITS].X))/(SCN1.HIT[1..SCN1.NUMHITS].X-ABS(SCN1.HIT[1..SCN1.NUMHITS].X)))*180 ASSIGN/ANG_COR=ANG_HIT+COR_HIT V4 =LOOP/START,ID=YES,NUMBER=C1.INPUT,START=1,SKIP=, OFFSET:XAXIS=0,YAXIS=0,ZAXIS=0,ANGLE=0 ASSIGN/ANG1=V1*(V4-1) ASSIGN/V5=MININDICES(ABS(ANG_COR-ANG1)) ASSIGN/V6=ARRAY(V2[V5[1]],V2[V5[2]],V2[V5[3]],V2[V5[4]],V2[V5[5]],V2[V5[6],V2[V5[7]]) ASSIGN/V7=MININDEX(V6) ASSIGN/V8=SCN1.HIT[V5[V7]].XYZ F2 =GENERIC/POINT,DEPENDENT,CARTESIAN,$ NOM/XYZ,<V8.X,V8.Y,V8.Z>,$ MEAS/XYZ,<V8.X,V8.Y,V8.Z>,$ NOM/IJK,<0,0,1>,$ MEAS/IJK,<0,0,1> LOOP/END ASSIGN/V9="F2[1.."+C1.INPUT+"]" CIR2 =FEAT/CIRCLE,CARTESIAN,IN,LEAST_SQR,NO THEO/<0.0498,-0.1209,0>,<0,0,1>,38.142 ACTL/<0.0498,-0.1209,0>,<0,0,1>,38.142 CONSTR/CIRCLE,BF,2D,V9,, OUTLIER_REMOVAL/OFF,3 FILTER/OFF,UPR=0
SCN1 =FEAT/SCAN,FREEFORM,NUMBER OF HITS=8261,SHOW HITS=NO,SHOWALLPARAMS=NO MEAS/SCAN BASICSCAN/FREEFORM,NUMBER OF HITS=8261,SHOW HITS=NO,SHOWALLPARAMS=NO ENDSCAN ENDMEAS/ CIR1 =FEAT/CIRCLE,CARTESIAN,IN,MAX_INSC,NO THEO/<0,-0.0005,0>,<0,0,1>,77.9904 ACTL/<0,-0.0005,0>,<0,0,1>,77.9904 CONSTR/CIRCLE,BF,3D,SCN1,, OUTLIER_REMOVAL/OFF,3 FILTER/OFF,UPR=0 C1 =COMMENT/INPUT,NO,FULL SCREEN=NO, Enter number of tooth ASSIGN/V1=360/C1.INPUT ASSIGN/V2=SQRT(DOT(SCN1.HIT[1..SCN1.NUMHITS].XYZ-CIR1.XYZ,SCN1.HIT[1..SCN1.NUMHITS].XYZ-CIR1.XYZ)) ASSIGN/V3=SCN1.HIT[MININDEX(V2)].XYZ F1 =GENERIC/POINT,DEPENDENT,CARTESIAN,$ NOM/XYZ,<V3.X,V3.Y,V3.Z>,$ MEAS/XYZ,<V3.X,V3.Y,V3.Z>,$ NOM/IJK,<0,0,1>,$ MEAS/IJK,<0,0,1> A1 =ALIGNMENT/START,RECALL:STARTUP,LIST=YES ALIGNMENT/LEVEL,ZPLUS,PLN1 ALIGNMENT/ROTATE_CIRCLE,XPLUS,TO,CIR1,AND,F1,ABOUT,ZPLUS ALIGNMENT/TRANS,ZAXIS,PLN1 ALIGNMENT/TRANS,XAXIS,CIR1 ALIGNMENT/TRANS,YAXIS,CIR1 ALIGNMENT/END ASSIGN/ANG_HIT=RAD2DEG(ATAN(SCN1.HIT[1..SCN1.NUMHITS].Y/SCN1.HIT[1..SCN1.NUMHITS].X)) ASSIGN/COR_HIT1=((SCN1.HIT[1..SCN1.NUMHITS].X-ABS(SCN1.HIT[1..SCN1.NUMHITS].X))/(SCN1.HIT[1..SCN1.NUMHITS].X-ABS(SCN1.HIT[1..SCN1.NUMHITS].X))) ASSIGN/COR_HIT2=((SCN1.HIT[1..SCN1.NUMHITS].Y-ABS(SCN1.HIT[1..SCN1.NUMHITS].Y))/(SCN1.HIT[1..SCN1.NUMHITS].Y-ABS(SCN1.HIT[1..SCN1.NUMHITS].Y))) ASSIGN/ANG_COR=ANG_HIT+180*(COR_HIT1)+360*(COR_HIT2*(1-COR_HIT1)) V4 =LOOP/START,ID=YES,NUMBER=C1.INPUT,START=1,SKIP=, OFFSET:XAXIS=0,YAXIS=0,ZAXIS=0,ANGLE=0 ASSIGN/ANG1=V1*(V4-1) ASSIGN/V5=MININDICES(ABS(ANG_COR-ANG1)) ASSIGN/V6=ARRAY(V2[V5[1]],V2[V5[2]],V2[V5[3]],V2[V5[4]],V2[V5[5]],V2[V5[6]]) ASSIGN/V7=MININDEX(V6) ASSIGN/V8=SCN1.HIT[V5[V7]].XYZ F2 =GENERIC/POINT,DEPENDENT,CARTESIAN,$ NOM/XYZ,<V8.X,V8.Y,V8.Z>,$ MEAS/XYZ,<V8.X,V8.Y,V8.Z>,$ NOM/IJK,<0,0,1>,$ MEAS/IJK,<0,0,1> LOOP/END ASSIGN/V9="F2[1.."+C1.INPUT+"]" CIR2 =FEAT/CIRCLE,CARTESIAN,IN,LEAST_SQR,NO THEO/<0.0001,0.0004,0>,<0,0,1>,78.0006 ACTL/<0.0001,0.0004,0>,<0,0,1>,78.0006 CONSTR/CIRCLE,BF,2D,V9,, OUTLIER_REMOVAL/OFF,3 FILTER/OFF,UPR=0
© 2024 Hexagon AB and/or its subsidiaries. | Privacy Policy | Cloud Services Agreement |