RT 需要一个程序将3b代码转换成坐标以便画图
****************************************
CAXAWEDM -Version 2.0 , Name : 21.3B
Conner R=   0.00000    , Offset F=    1.00000 ,Length=     171.582 mm
****************************************
Start Point  =   -9.19326 ,  -74.48417   ;        X   ,       Y
N   1: B   8285 B   9213 B   9213 GY   L2 ;   -17.478 ,    -65.271
N   2: B   5178 B   5758 B   4730 GY  NR4 ;   -14.981 ,    -60.541
N   3: B   5064 B   5256 B  18432 GX  NR3 ;    -8.688 ,    -48.091
N   4: B   2111 B   7007 B  16896 GX  NR4 ;   -15.170 ,    -35.214
N   5: B   7487 B    178 B  14484 GY  NR1 ;   -30.139 ,    -35.076
N   6: B   3832 B   6320 B  15347 GX  NR1 ;   -37.238 ,    -48.026
N   7: B   2571 B   6838 B  16404 GX  NR2 ;   -30.303 ,    -60.722
N   8: B   7647 B   1206 B  12825 GX  NR3 ;   -17.478 ,    -65.271
N   9: B   8284 B   9213 B   9213 GY   L4 ;    -9.194 ,    -74.484
N  10: DD
例如上面是3b代码将它转换成坐标
代码是随机的

解决方案 »

  1.   

    弧线就要自己画出来,再采点...比如在一个1000X1000的区域画一个弧,而这个区域对应的物理关系是10X10mm,则每个绘图区域代表了0.01mm.然后你扫描这个区域,有点的地方的坐标记下来.这样就有了这个弧的坐标点.区域越大,精度越高.
      

  2.   

    3B编程 BX BY BJ GX(GY) 指令代码 如 B1000 B1000 B10000 GX L1 数值为微米单位!! 以上是标准格式.B是间隔符号而已!GX GY 指的是计数长度方向.指令代码有L1,L2,L3,L4.这几个代表1-4象限直线且L1为X正向,L2为Y正向,L3为X负向,L4为Y负向.SR1,SR2,SR3,SR4,NR1,NR2,NR3,NR4,表示四个象限顺圆逆圆.直线编程X,Y代表以起点为原点的终点坐标, J为计数长度,计数长度方向为直线在X,Y轴投影大的为计数方向投影为 J值.计数长度在编圆是反之.编圆是以起点为原点,X,Y为圆心坐标,投影长度为所有圆弧投影总和,取小值!指令按起点的算!以上所有值为绝对值!注意坐标原点是变化的这里有个相对坐标绝对坐标的问题,每个线段都对应一个坐标!以上为代码格式,具体操作时还得考虑补偿问题,就不说了只是用三角函数而已! 
      

  3.   

    Circle 方法
          在对象上画圆、椭圆或弧。语法object.Circle [Step] (x, y), radius, [color, start, end, aspect]Circle 方法的语法有如下的对象限定符和部分:部分 描述 
    object 可选的。 对象表达式,其值为“应用于”列表中的对象。如果object 省略,具有焦点的窗体作为object。 
    Step 可选的。关键字 ,指定圆、椭圆或弧的中心,它们相对于当前 object 的 CurrentX 和 CurrentY 属性提供的坐标。 
    (x, y) 必需的。 Single (单精度浮点数),圆、椭圆或弧的中心坐标。object 的 ScaleMode 属性决定了使用的度量单位。 
    radius 必需的。Single (单精度浮点数),圆、椭圆或弧的半径。 object 的 ScaleMode 属性决定了使用的度量单位。 
    color 可选的。Long (长整型数),圆的轮廓的 RGB 颜色。如果它被省略,则使用 ForeColor 属性值。可用 RGB 函数或 QBColor 函数指定颜色。 
    start, end 可选的。 Single (单精度浮点数),当弧、或部分圆或椭圆画完以后,start 和 end 指定(以弧度为单位)弧的起点和终点位置。其范围从 -2 pi 到 2 pi 。起点的缺省值是0; 终点的缺省值是2 * pi。 
    aspect 可选的。 Single (单精度浮点数),圆的纵横尺寸比。缺省值为 1.0,它在如何屏幕上都产生一个标准圆(非椭圆)。 
    说明想要填充圆,使用圆或椭圆所属对象的 FillColor 和 FillStyle 属性。只有封闭的图形才能填充。封闭图形包括圆、椭圆、或扇形。画部分圆或椭圆时,如果 start 为负,Circle 画一半径到 start,并将角度处理为正的;如果 end 为负,Circle 画一半径到 end,并将角度处理为正的。Circle 方法总是逆时针(正)方向绘图。画圆、椭圆或弧时线段的粗细取决于 DrawWidth 属性值。在背景上画圆的方法取决于 DrawMode 和 DrawStyle 属性值。画角度为 0 的扇形时,要画出一条半径(向右画一水平线段),这时给 start 规定一很小的负值,不要给 0。.可以省略语法中间的某个参数,但不能省略分隔参数的逗号。您指定的最后一个参数后面的逗号是可以省略的。Circle 执行时,CurrentX 和 CurrentY 属性被参数设置为中心点。这个方法不能用在 With匛nd With 语句块中。Circle 方法示例
    这个示例用Circle 方法在窗体中央画许多同心圆。要运行这个示例,将此代码放入窗体的 General 部分。按 F5 并单击窗体。Sub Form_Click ()
       Dim CX, CY, Radius, Limit   ' Declare variable.
       ScaleMode = 3   ' 以像素为单位。
       CX = ScaleWidth / 2   ' X 位置。
       CY = ScaleHeight / 2   ' Y 位置。
       If CX > CY Then Limit = CY Else Limit = CX
       For Radius = 0 To Limit   ' 半径。
          Circle (CX, CY), Radius,RGB(Rnd * 255, Rnd * 255, Rnd * 255)
       Next Radius
    End Sub