CN1027053C - 可编程控制进料和速度的透镜磨边系统 - Google Patents

可编程控制进料和速度的透镜磨边系统 Download PDF

Info

Publication number
CN1027053C
CN1027053C CN91101319.9A CN91101319A CN1027053C CN 1027053 C CN1027053 C CN 1027053C CN 91101319 A CN91101319 A CN 91101319A CN 1027053 C CN1027053 C CN 1027053C
Authority
CN
China
Prior art keywords
lens
edging
print
workpiece
radius
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN91101319.9A
Other languages
English (en)
Other versions
CN1055688A (zh
Inventor
戴维·L·布赖昂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bausch and Lomb Inc
Original Assignee
Bausch and Lomb Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=23928127&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=CN1027053(C) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Bausch and Lomb Inc filed Critical Bausch and Lomb Inc
Publication of CN1055688A publication Critical patent/CN1055688A/zh
Application granted granted Critical
Publication of CN1027053C publication Critical patent/CN1027053C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/182Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by the machine tool function, e.g. thread cutting, cam making, tool direction control
    • G05B19/184Generation of cam-like surfaces
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B24GRINDING; POLISHING
    • B24BMACHINES, DEVICES, OR PROCESSES FOR GRINDING OR POLISHING; DRESSING OR CONDITIONING OF ABRADING SURFACES; FEEDING OF GRINDING, POLISHING, OR LAPPING AGENTS
    • B24B49/00Measuring or gauging equipment for controlling the feed movement of the grinding tool or work; Arrangements of indicating or measuring equipment, e.g. for indicating the start of the grinding operation
    • B24B49/02Measuring or gauging equipment for controlling the feed movement of the grinding tool or work; Arrangements of indicating or measuring equipment, e.g. for indicating the start of the grinding operation according to the instantaneous size and required size of the workpiece acted upon, the measuring or gauging being continuous or intermittent
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B24GRINDING; POLISHING
    • B24BMACHINES, DEVICES, OR PROCESSES FOR GRINDING OR POLISHING; DRESSING OR CONDITIONING OF ABRADING SURFACES; FEEDING OF GRINDING, POLISHING, OR LAPPING AGENTS
    • B24B9/00Machines or devices designed for grinding edges or bevels on work or for removing burrs; Accessories therefor
    • B24B9/02Machines or devices designed for grinding edges or bevels on work or for removing burrs; Accessories therefor characterised by a special design with respect to properties of materials specific to articles to be ground
    • B24B9/06Machines or devices designed for grinding edges or bevels on work or for removing burrs; Accessories therefor characterised by a special design with respect to properties of materials specific to articles to be ground of non-metallic inorganic material, e.g. stone, ceramics, porcelain
    • B24B9/08Machines or devices designed for grinding edges or bevels on work or for removing burrs; Accessories therefor characterised by a special design with respect to properties of materials specific to articles to be ground of non-metallic inorganic material, e.g. stone, ceramics, porcelain of glass
    • B24B9/14Machines or devices designed for grinding edges or bevels on work or for removing burrs; Accessories therefor characterised by a special design with respect to properties of materials specific to articles to be ground of non-metallic inorganic material, e.g. stone, ceramics, porcelain of glass of optical work, e.g. lenses, prisms
    • B24B9/148Machines or devices designed for grinding edges or bevels on work or for removing burrs; Accessories therefor characterised by a special design with respect to properties of materials specific to articles to be ground of non-metallic inorganic material, e.g. stone, ceramics, porcelain of glass of optical work, e.g. lenses, prisms electrically, e.g. numerically, controlled

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Inorganic Chemistry (AREA)
  • Human Computer Interaction (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Chemical & Material Sciences (AREA)
  • Ceramic Engineering (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • Grinding And Polishing Of Tertiary Curved Surfaces And Surfaces With Complex Shapes (AREA)
  • Eyeglasses (AREA)
  • Non-Portable Lighting Devices Or Systems Thereof (AREA)
  • Wire Bonding (AREA)
  • Optical Couplings Of Light Guides (AREA)
  • Constituent Portions Of Griding Lathes, Driving, Sensing And Control (AREA)

Abstract

一种用于对透镜磨边的计算机数控机系统根据存在存储器中的透镜形状控制透镜工件相对于磨边工具的旋转和位移。该系统将透镜工件连续轴向平移过磨边轮的表面以便使磨损均匀分布在磨边轮表面,从而减少对磨边轮修整的要求。该系统将透镜尺寸与预定尺寸相比较并通过在对连续透镜工件磨边期间自动调整透镜轨迹来补偿其任何差值,从而允许磨边轮磨损而没有明显的透镜尺寸误差。该系统在整个透镜磨边操作期间的每个离散点上控制磨边工具的速度、透镜旋转速度、透镜轴向进料速度和透镜工件与磨边轮间的力以优化产量而避免透镜工件过热。

Description

本发明涉及将玻璃毛坯加工成形为透镜磨边机领域。
在该工艺中透镜磨边机是熟知的,例如在授予Ramos等人的美国专利第4,870,784号中所描述的一种。一般,透镜由毛坯形成,该毛坯根据所希望的光焦度而具有一定的曲率。验眼透镜的曲率提供矫正光焦度。深色眼镜或太阳镜的透镜曲率一般不提供矫正光焦度。形成具有所希望的曲率的透镜毛坯后,必须将该透镜“加工”(“Cut”out)成适合眼镜框架的形状。这可通过“磨边”或用诸如研磨轮的磨边工具研磨透镜的边缘直到达到所希望的透镜形状来完成。如果透镜是眼用的,磨边过程可由在上述参考的授予Rames等人的专利中所描述的透镜磨边机来完成,该磨边机在研磨轮中使用刻槽对透镜边缘倒边。另一种一般用来制造非眼用透镜的透镜磨边机在研磨轮中使用顶尖对透镜边缘倒边。透镜边缘的斜边能使透镜与眼镜或太阳镜的框架紧密配合。两种透镜磨边机都使透镜毛坯相对于研磨轮旋转。同时,当透镜毛坯旋转时,磨边机根据将要从该透镜毛坯所形成的透镜形状改变透镜毛坯中心与磨研轮间的位移。在上面讨论的两种透镜磨边机中,如在该工艺中所熟知的,所述位移借助于具有所希望的透镜形状相对于固定表面随透镜毛坯旋转的凸轮来变化。这个特点的一个问题是每次制造不同的透镜形状必须暂停磨边机的运转并改变凸轮。由透镜毛坯形成透镜后,如前所述,它被切削成斜边。然后将透镜边缘进行细磨或抛光以完成该加工。
现有透镜磨边的方法被透镜间所表现的如超差情况的质量不一致 和非均匀性所困扰。有几个原因。第一,一般是象金刚石一样的材料或任何适合于研磨透镜的材料的研磨轮在使用中不断磨损并逐渐变小,从而导致透镜尺寸增大。第二,凸轮和相对其必须移动和摩擦的表面不断磨损,导致更大的滑动和振动,这使由凸轮运动所决定的透镜形状畸变。现行方法也为高的维修成本和停机时间所困扰。这是由于研磨轮以非均匀方式磨损,必须定期加以修整。也如前所述,研磨轮随着使用变小,因此必须在透镜尺寸增大超过容许极限前定期更换。每次对研磨轮整形或更换,磨边机都要停机而不再生产。
这样的透镜研磨机不能始终如一地生产出同样尺寸的透镜,这是由于各块透镜是在同一磨边机中当研磨轮、凸轮和磨边机其它磨损表面寿命的不同时期形成的结果。另外,不同磨边机的相同元件磨损点不同,因此,在不同磨边机上制造出的透镜必然有稍微不同的尺寸。这样的不一致在试图将透镜安装到框架中时便会产生困难。
另一个问题是透镜的磨边速度必须充分放慢以避免损坏玻璃透镜材料。如果试图提高产量将研磨轮的速度和(或)透镜的旋转速度增大到在研磨过程中可观察到电火花,则玻璃材料会受到损坏并使高质量护目镜变得无用。即使没有观察到火花或小玻璃粒子的燃烧,作为磨边太快的结果,可能使透镜表面太粗糙而不能接受。由于这些原因,透镜研磨速度必须放慢以避免损坏玻璃透镜材料的任何冒险。不利的是这样慢的生产速度使生产透镜的成本提高。
如在上述参考的授予Ramos等人的专利中所公开的,已使用计算机来辅助透镜磨边工艺。具体地说,使用计算机根据透镜大小将透镜边缘直接定位在Ramos等人的研磨轮中的倒边槽上,不同大小透镜相对于该槽需要不同的定位。Ramos等人专利中的计算机也控制操作序列。
本发明是一种可预编程透镜磨边机系统,该系统在微处理机的控 制下与编程在存储器中的透镜边缘形状相适应地对透镜边缘研磨和倒边。该系统通过由微处理机控制的象机器人一样的手臂夹持透镜毛坯。根据编程在存储器中的透镜边缘形状,由手臂使透镜的旋转以及手臂相对于研磨轮的运动决定了透镜的形状和大小。通过简单地修正微处理机存储器中不同透镜边缘形状,可容易地改变透镜边缘形状和大小,这样节省了在以前透镜磨边机中更换凸轮所需的时间。
该系统包括一个透镜尺寸传感器,在通过微处理机的自校正反馈回路中,该反馈回路自动补偿研磨轮的磨损收缩。所述自校正反馈回路根据对透镜尺寸的监测频率允许该磨边机使用同一研磨轮且磨损到几乎为一核心而透镜大小仍没有明显的变化。
本发明也包括一种将磨损至少分配到近乎全部研磨轮表面的方法,从而在大体整个透镜边缘研磨操作期间透镜毛坯连续沿轴向移动过研磨轮表面,以致于使研磨轮表面磨损均匀分布。这种均匀磨损工艺避免了在研磨轮中形成空隙或槽,这在先前的磨边机中需要通过经常对该轮子修整来消除。在本发明中,借助于自校正反馈回路研磨轮不需更换直到它完全磨损,借助于均匀磨损工艺研磨轮不需修整,这样消除了在以前的透镜磨边机中由于经常留心研磨轮的维修而需要的经常性中断。
根据本发明的一个方面,在通过研磨轮柱面部分的研磨形成透镜边缘形状后,将透镜边缘在研磨轮顶尖部分上通过相对研磨轮顶点的对侧连续对旋转透镜边缘对侧进行倒边。在本发明这一方面中,透镜的旋转运动以及顶尖透镜的象机器人一样的手臂的运动,根据从透镜的形状和曲率和研磨轮顶尖形状计算出的存储在存储器中的轨迹由微处理机予以控制。作为使用在本说明书中的术语“轨迹”同时指(a)透镜关于其上固定中心点的旋转路径,(b)垂直于研磨轮旋转轴的透镜的径向运动路径和(c)平行于研磨轮旋转轴的透镜的横向运动路径。 对于同一种透镜可将不同的倒边轮廓编程到存储器中,而对许多不同透镜可将同一倒边轮廓编程到存储器中。
根据本发明,将透镜或透镜毛坯的运动在整个透镜边缘研磨和倒边过程时间中分为N点。例如N为64,000量级。透镜相对研磨轮的旋转速度、研磨轮的旋转速度、透镜沿轴平移过研磨轮表面的速度以及将透镜压靠在研磨轮上的力对于N点中每一点都确定在存储器中。微处理机对于每个要制造的不同透镜形状需要将一整套这样的定义存储在存储器中。
在本发明的另一方面中,该组透镜旋转速度、研磨轮速度、轴向透镜进料速度以及研磨压力在N点的每一点上优化以使透镜研磨速度(产量)最大到稍低于玻璃透镜材料过热的速度。根据本发明的试凑法在N点的每一点上决定每个参数(旋转速度、速度、进料速度和研磨压力)的优化值,在该方法中将所有参数的各种组合在N点的每一点上试过并将结果存储在存储器中。在该方法的一个实施例中,微处理机在监测安装用来检测玻璃透镜材料过热的火花传感器时系统地变化所有参数(旋转速度、速度、进料速度和研磨压力)。对于透镜运动中N点的每一点,微处理机注意所有参数在传感器没有检测到过热时的研磨轮最高速度时的值。微处理机将注意到的值存储在存储器中。在所有N个点上执行该过程后,就完成了试凑过程,存储器对给定透镜形状的整个研磨过程含有一组优化研磨参数。然后将这组参数永久性存储(例如存储在硬盘上或只读存储器中)并在生产同样设计的透镜中一次又一次重复使用。该学习过程只需要充分容量的存储器。
将玻璃从透镜上磨掉的优化速度至少部分取决于被磨掉的玻璃粒子从工件或透镜毛坯上带来热量的能力。为了保持一定的散热速率,当研磨过程中工件(透镜毛坯)尺寸减小时应防止玻璃切消速度的降 低。因此,在许多场合本发明的试凑学习法在研磨过程中透镜毛坯的尺寸减小时可逐渐增大研磨轮速度。在这个意义上,由本发明试凑学习法产生的一组优化研磨参数将执行熟知的、有时称之为“恒定表面磨削”的金属车床技术原理。
下面将参照附图详细说明本发明最佳实施例,附图中:
图1a和1b示出研磨透镜边缘的现有技术的装置;
图2a和2b分别示出透镜毛坯和由图1a的装置从该毛坯生产出的透镜;
图3是简单示出本发明透镜磨边系统的关键元件的示意图;
图4是示出图3的系统中使用的透镜伺服臂的图;
图5a和5b示出图3中系统的完整型式;
图6是一个示范性透镜边缘外形的极坐标图;
图7描绘了一个没有曲率的透镜以恒定的透镜旋转速度在磨边期间在研磨轮柱面部分(实线)和研磨轮顶尖部分(点线)上透镜轨迹的极坐标;
图8描绘了一个具有球面弯曲的透镜的与图7相对应的透镜轨迹的极坐标;
图9a、9b和9c是分别描绘作为时间的函数相对于研磨轮的透镜运动的垂直位置、水平位置和水平(进料)速度的示范性透镜轨迹极坐标;
图10描绘了在透镜磨边过程中对于每个随时间递增点存储在图3系统的存储器中的所有研磨工艺参数的图表;以及
图11是示出本发明为获悉将写入图10表中参数优化值的编程学习过程的流程图。
图1a示出了现有技术透镜磨边过程中的基本步骤。研磨轮10包括柱面部分12和顶尖部分14,两部分都具有如图1b所示的同心圆形状。 研磨轮10由金刚石似的材料制造而成。将图2a所示的透镜毛坯16沿其边18在图1a的柱面部分12上研磨形成图2b中的透镜20。然后分别将透镜边缘18的“左”角18a在顶尖部分14的“右”边14a上研磨,将透镜边缘18的“右”角18b在顶尖部分14的“左”边14b上研磨分别形成倒边的透镜表面22a和22b。所述倒边表面22a和22b的几何形状符合将要把透镜20安装在其中的护目镜框架形状。
研磨过程中透镜的运动由旋转凸轮(未示出)相对固定表面的运动所控制,该凸轮具有与图2b所示的透镜20同样的形状。现有技术的方法和装置具有许多如前讨论的缺点,这些缺点是由于研磨轮10表面的磨损、凸轮表面的磨损和由于磨损不均匀在研磨轮10表面中形成的空隙,以及每次对于不同的透镜设计必需更换凸轮所引起的。
在图3所示的本发明透镜磨边系统中解决了所有这些问题。由安装在伺服控制臂30上的伺服控制手28将每块透镜毛坯从含有许多透镜毛坯的圆盘传送带26中取出,该伺服控制臂30由臂伺服控制器32控制,而中央微处理机34控制臂伺服控制器32。旋转圆盘传送带26的位置由微处理机34通过圆盘传送带旋转控制器25应用熟知数字伺服控制技术进行控制。在一个执行过程中,手28沿臂30轴向运动以至其将本身延伸到圆盘传送带26(虚线位置)并通过在手指35、36间压紧其相对边缘夹持透镜毛坯16。手指36可向另一手指35移动将透镜16牢牢夹紧。然后手28将透镜毛坯16取出,臂30围绕转轴38旋转到实线位置。手28然后沿臂30轴向运动将透镜插入安装在旋转心轴44、46上的相对主动盘40、42(图4)之间。心轴44、46支承在由透镜伺服控制器54操纵的透镜伺服臂52的相对梁48、50上。透镜伺服控制器54由微处理机34控制。一旦将透镜毛坯16置于该对主动盘40和42之间,透镜伺服控制器54就使相对梁48、50相互朝对方移动以将透镜毛坯16紧握在两个主动盘40、42之间,如图4所示。然后微处理机34指挥透镜伺 服控制器54将臂52移动到研磨轮10并将透镜毛坯16的边缘顶在轮10上,借助于由透镜伺服控制器54控制的心轴马达58使心轴44、46旋转。
透镜伺服控制器54在透镜毛坯绕着心轴44、46的轴旋转时变化透镜毛坯16中心(即心轴44、46的轴)到研磨轮10轴的距离R以获得所希望的透镜边缘轮廓或形状。透镜伺服控制器54由微处理机34根据存储在透镜形状轨迹存储器60中的透镜轨迹表控制这样做。该透镜轨迹表根据透镜将要形成的形状对透镜毛坯16围绕心轴44、46的轴的每个递增旋转位置θ定义透镜毛坯中心和研磨轮10间的距离r。应用现有技术熟知的计算机数控机床技术,微处理机34使用存储在透镜伺服控制器程序存储器62中的伺服控制器程序从存储在透镜形状轨迹存储器60的数据中计算出伺服控制信号。产生伺服控制器程序在该领域中是普通的。微处理机34依次传送这样产生的控制信号,该信号决定了透镜边缘研磨步骤的顺序。
一旦完成透镜磨边过程,就由透镜伺服臂保持透镜边缘18的角18a贴着旋转的边缘间歇(break-dege)轮61对透镜边缘进行细磨。
透镜形状轨迹存储器60可包含对不同轨迹大范围的选择表,用于制造具有不同边缘轮廓的不同透镜。这样,透镜设计可通过指示微处理机34到存储器60中不同的表而得以迅速改变,这是一个显著的优点。
随着研磨轮10的磨损,它变得越来越小,这在现有技术中将使透镜尺寸增大。解决的办法曾是经常更换研磨轮10使在透镜接连被磨边时透镜尺寸的增大为最小。在本发明中通过使用一个经探头输出电路66连接到微处理机34的尺寸探头64解决了这个问题。该探头64是例如英国Gloucester,Renishaw    Metrology有限公司生产的那种类型。由图3的系统形成透镜20后,透镜伺服臂52把透镜旋转到预定的旋转位 置、然后沿边缘将透镜20朝探头64移动。微处理机34记录探头64第一次测定与透镜边缘接触时透镜伺服臂52的位置点。这个位置表示在旋转位置θ处透镜20的半径r。正确位置可容易地从希望的透镜边缘轮廓中确定。微处理机34对实际位置与正确位置进行比较并计算其差值。微处理机34通过调整(减小)下一个将要磨边的透镜与研磨轮10的轴间的距离来补偿这个误差。基本上,微处理机34对整个磨边过程调整透镜轨迹使它向轮10的旋转轴靠近相等于计算出的位置误差的数据。这个特点将在下面描述。因此,只要足够频繁地监测透镜半径,就可允许研磨轮10在接连透镜磨边期间磨损到几乎到其轴而不产生透镜尺寸方面的误差。
现有技术的另一问题是大部分透镜磨边发生在研磨轮10的柱面部分12上,非均匀磨损在研磨轮中产生空隙或不希望的槽。因此,研磨轮10必须经常修整。本发明包括解决该问题的方法,在该方法中微处理机34使透镜伺服臂52在整个透镜磨边操作期间连续将透镜毛坯16沿轴平移过研磨轮10的表面,同时控制从轮10的一端到另一端透镜的轴向进料速度,从而使磨损均匀地分布在轮10的整个表面。当透镜接触研磨轮10的顶尖部分时在倒边操作期间继续该轴向运动。
根据本发明的均匀磨损分布方法,透镜伺服臂52必须执行一个复合作业,即在根据要求的透镜形状变化透镜毛坯16到研磨轮10的距离的同时使该透镜毛坯16旋转,并同时以连续运动方式将透镜轴向平移过轮10的表面。如将在下面讨论的,这个作业在轮10的顶尖部分14对该透镜倒边时将更复杂。
参照图5,本发明的最佳方法需要同一微处理机34来控制由使用一对透镜伺服臂52、53的一对研磨轮10、11对一对透镜同时研磨。对于两个研磨轮10、11中的每一个都有一个卸料臂30(如图3中所示)和一个装料臂31,一个卸料圆盘传送带26(如图3中所示)和一个装 料圆盘27。对于一个透镜伺服臂52,卸料臂30将透镜毛坯16从卸料圆盘传送带26取出并将其交给透镜伺服臂52进行研磨。在研磨过程结束时,装料臂31将透镜从透镜伺服臂52中取下并将其放入装料圆盘传送带27中。使每个圆盘传送带进行旋转,将圆盘传送带中的当前槽定位到下一个槽,以便对应下个周期的装料或卸料臂。最好是,对微处理机34编程,使其操作圆盘传送带以及装料和卸料臂,以致于当将一个已完成的透镜放入装料圆盘传送带时,便从卸料圆盘传送带中取出下一个透镜毛坯,从而没有浪费的动作。一个优点是同一周期可用来同时生产一对有待装入同一护目镜框架的透镜,因此增大了每对透镜紧密配合的可能性。
图6以极坐标示出一个示范性的透镜边缘形状。图6中半径r相当于图4中透镜20中心(心轴44、46的轴)与研磨轮10的表面间的距离r。在这里定义:透镜中心是指透镜20在研磨过程中围绕其旋转的点。图4中的距离R是透镜中心与研磨轮10中心间的位移。r和R之间的差是研磨轮10的半径。图7中的实线曲线是作为对应于图6的极坐标图的透镜旋转角θ的函数R的曲线图。该实线曲线是存储在透镜轨迹存储器60中的数据所确定的轨迹,其控制透镜毛坯16在研磨轮10的(仅仅)柱面部分12上的运动。
在倒边操作期间透镜20的轨迹更加复杂并取决于研磨轮10顶尖部分14的斜度以及透镜20本身的曲率。假设图6的极坐标图中所描绘的透镜形状没有曲率-最好是平面-在倒边操作过程中透镜轨迹可通过将图7的倾斜虚线叠加到实线曲线上并将两者加到一起来获得。所得复杂的透镜轨迹(点线)描绘了在倒边期间当根据本发明将磨损均匀地分布在整个研磨轮表面的方法以恒定速度将透镜轴向平移过顶尖部分14的表面时相对于研磨轮10的透镜轨迹。该点线曲线描绘了透镜轨迹的部分,其中透镜爬升上顶尖14的一侧、然后下落到另一侧,以便 将磨损均匀分布横过顶尖部分14的表面。因此,图7的点线曲线对应于存储在存储器60中用于透镜研磨过程的倒边部分的数据。
在大部分情况下,透镜轨迹在倒边期间甚至更为复杂,这是因为透镜一般都具有球面曲率(如图1a中透镜20的侧视图所示)。这种复杂的透镜轨迹可在图8的曲线图中通过将定义透镜边缘形状的实线曲线与非线性虚线曲线相加来获得。图8的非线性虚线曲线的形状由透镜曲率和研磨轮10的顶尖部分14的夹角α所控制。不象图7,对图8更复杂的情况没有示出在倒边期间所得的透镜轨迹,但是通过将图8的两条曲线相加在理论上获得所得透镜轨迹。通过改变透镜20与顶尖14中心间的距离R,透镜边缘的倒边深度可按要求加以改变。
一种在倒边期间获得透镜轨迹的更实际的方法是使用球面三角法根据熟知的原理来计算它。用于完成这项工作的计算机程序作为附录A附加在本文中。这样的计算机程序可由微处理机34执行并可存储在透镜运动程序存储器66中。这样的程序仅需要使用者输入包括透镜形状(如图6的极坐标所代表)、透镜曲率(例如可在图1a的透镜侧视图所见)的透镜设计数据和研磨轮10的顶尖部分14的夹角α。这样的输入数据可存储或进入图3所示的外部设备66中。该外部设备可以是存储器或诸如调制解调器的通讯设备。因此,可从距离远的地方通过调制解调器(68)输入新的透镜设计并使用存储器66中的透镜运动程序由微处理机34迅速自动计算出完整的透镜运动。由微处理机34与别的透镜设计相对应的表一道将所得透镜轨迹表存储在存储器60中。改变或更新透镜设计的整个过程在图3的系统中实际上不需要人工干预,这是一个显著的优点。
R和r间的差值是研磨轮10的半径,当轮磨损时它就减少。如前所述,由微处理机34执行的自校正反馈方法周期性地在一些预定的透镜旋转角θ的理想透镜半径与该角度时如图6的曲线图所确定的正确半 径相比较。任何差异表示研磨轮半径由于磨损而减少的数据。微处理机34通过从(例如)图7的图表中所有R值中减去在一些预定角度θ检测出的实际和理想透镜半透之差值来简单地改变轨迹。
结果由图7的点划线所示。图7中实线和点划线间的位移E是由微处理机34检测到的理想和实际透镜半径间的误差或差值。因此,随着研磨轮半径减小,微处理机34通过减小必要的R而将作为透镜旋转角θ的函数的透镜半径r保持在正确值上。
所有控制透镜磨边过程的参数都定义在存储于存储器60的表中。这里已讨论过透镜形状参数r和θ以及由本发明的均匀磨损分布方法所要求的连续轴向进料速度。剩下的参数包括透镜的旋转速度(dθ/dt)、研磨轮速度和透镜边缘贴压在研磨轮上的力。
为通过微处理机34执行离散控制,将由矢量(r,θ)所定义的透镜的移动分为N个离散段。在下面的例子中,N=64,000,尽管应该认识到本领域的熟练技术人员可对N选择任何合适的值。这些段可认为是覆盖整个磨边过程期间的N个时间点t0、t1、t2、…tN。距离轮10轴的透镜中心的位移Y作为时间的函数如图9a所示。图9a中的三角形凸峰对应该过程的倒边部分。图9b与图9a属于同一时期并示出透镜中心作为时间的函数沿研磨轮轴的位置X。在图9b的个别例子中,透镜的进料速度(dx/dt)在该过程的倒边部分期间变小。这图示在图9c中。然而,应该理解进料速度的任何顺序或变化是可能的。
图9a、9b和9c对应图4中所表明的透镜轨迹,其中透镜毛坯16不间断地轴向横过研磨轮10。前面提到的所有参数可以同样的方式图示。将这样的图分为N个点(以图9a、9b和9c的方式)并数字化代表存储在存储器60中的数据。
图10以表的形式示出存储在存储器60中的数据格式。在将该过程分为图10的表中的64,000个点的每一点(标号为t0、t1、t2等)上确 定透镜轴向进料速度、研磨轮速度、透镜旋转速度、研磨力、位移r和透镜旋转角θ。在该过程的每一点ti,微处理机34从图10的表(存储在存储器60中)取出上述参数每一个的对应值并从中确定送到透镜伺服控制器54、研磨轮马达70和透镜旋转马达58的伺服控制信号中的任何变化。通过控制透镜伺服臂52的运动,透镜伺服控制器54控制透镜沿轮10轴的轴向平移速度、透镜的旋转速度以及透镜中心离研磨轮10表面的距离r。
本领域的熟练技术人员可以作出图10中表的各种实际实施例,其中某些前述参数如前面提到的作为多余或不必要部分而省去。例如,在N个时间点的每一点规定透镜的旋转角度θ可避免要求在N点的每一点规定透镜旋转速度dθ/dt。
没有已知的方法用于在将透镜磨边过程分为图10表中的N=64,000点的每一点上对所有前述参数计算优化值。根据本发明,将N点的每一点上的所有参数的优化值数组定义为导致最大产量而不损伤玻璃透镜材料的数组。这种损伤由在磨边或磨边过程后在透镜边缘上的粗劣表面抛光期间可见的火花(玻璃粒子的燃烧)来表现。
本发明用图10表中的参数优化值对存储器60编程并操作图3系统的方法是从图11所示的流程图中的初步学习步骤开始的。基本上,在将该过程分为图10的表中的N点的每一点上所有参数都要进行变化,并且将具有被研磨轮去除掉的玻璃透镜材料的去除速度最高而不致损伤该材料的参数值的组合选择为该过程中那一点的优化数组。将该作业执行N次以便在N点的每一点上找到参数值的优化组合。
在图11的实施例中,该方法使用了一个图3中所示的火花传感器72(诸如红外传感器),安置来探测任何由研磨轮10从透镜毛坯16磨掉的玻璃粒子火花。微处理机34在透镜研磨过程(图11的块80到108)中N点的每一点上使该系统自动地系统地逐步通过图10表中所有参数 的所有可能组合。对于参数值的每一组合,微处理机34询问火花传感器72以决定该组合是否被准许。在将所有数据存储后,微处理机34找到最大的允许的研磨轮速度并将其与别的参数值一起同时存入存储器60中的图10的表中(图11的块110)。这样微处理机34通过对透镜磨边和倒边过程分成N点的每一点执行前述作业将所有记录项目填入图10的表中。
在图11的简化实例中,为指导清楚起见,假设透镜毛坯16轴向平移过研磨轮10表面的线进料速度在整个磨边过程期间为恒定的,并在倒边期间降低为另一较小的恒定速度。然而,应该认识到这个简化不是必要的,并在执行本发明中大都不被使用。对于这个简化,每个时间点t易于根据图9a和9b的图与透镜毛坯16的某一确定位置X、Y相联系。对图10表中的每一参数(研磨轮速度等)选择一个实际范围。
该学习过程由将每个参数设置到其范围的起点并将标号i初始化为零开始(图11的块80)。然后将透镜毛坯16的位置Xi、Yi增量到下一个位置(i+1st),微处理机34询问火花传感器72,如果火花传感器72没有检测出玻璃透镜材料过热则将所有参数的当前值存储在图10的表中(图11的块82)。然后将研磨轮速度递坛,微处理机34重复如前同样的询问和存储作业(块84)。下一步,将透镜旋转速度增递坛,微处理机34重复如前同样的询问和存储作业(块86)。然后将研磨力递坛,微处理机34重复如前同样的询问和存储作业(块90)。
在内循环中连续重复块90的步骤直到研磨力到达其范围的终端(块92),在该点将其重置到其范围的起点(块94)。然后,在外循环中连续重复块86的步骤,每个这样的重复包括一个完整的内循环周期性工作直到透镜旋转速度到达其范围的终点(块100),在该点将其重置到其范围的起点(块102)。下一步,连续重复块84的步骤,每个这样的重复以前述方式包括一个完整的内部和外部循环周期性工 作直到研磨轮速度达到其范围的终点(块104),在该点将其重置到其范围的起点(块106)。
如果透镜毛坯没有到达其移动的终点(块108),该过程返回到块82的步骤并重复有关步骤。否则(进入块108的YES分支),微处理机34开始分析在先前步骤中存储的数据(块110)。在块110的步骤中,微处理机34重查对于透镜毛坯16的轨迹中N个位置Xi、Yi的每一个位置所记录的所有参数组合。在每个位置处,微处理机确定哪个组合具有最高的研磨轮速度,并(仅仅)将该组合记录在图10表中ti的对应值处。
图11的流程图示出根据本发明可实现的许多可能的试凑学习过程之一。在图11的过程中,按照最大研磨轮速度简单地确定参数值的最佳组合,并使用了火花传感器。另外,也可使用其它方法来定义参数值的优化组合。作为另一替换,可用对表面光洁度的检测替代火花传感器72。当然,某些前述参数可取消或用别的等效参数替换。
图11编程学习过程的一个优点是增大研磨轮10从玻璃透镜毛坯16中磨掉材料的速度从而增大了从毛坯16中带走热量的速度,因此研磨速度优化值的上限可比希望的高得多。然而,通常以32到250的透镜边缘的表面光洁度均方根为特征的可接受结果由约2,500RPM的研磨轮速度、20RPM的透镜旋转速度和30英寸/分的轴向透镜进料速度来获得。最好是,轮10的顶尖部分14的夹角为113°。
最好是,微处理机34是熟知型号的AT计算机系统的一部分,其中微处理机通过一个盘驱动控制器82控制20兆字节的硬盘存储器80,通过一个视频控制器86控制监视器84。可通过AT键盘终端88将命令送入微处理机。存储器60、62和66是硬盘存储器80中单独的存储器单元。操作者可使用键盘终端88使微处理机34在监视器上显示关于图3系统执行的透镜磨边过程的信息。操作者也可使用键盘终端88开始或中断 或修改该过程,例如允许通过调制解调器68接收新的透镜设计数据并存储在存储器80中,操作者也可使用键盘终端88命令微处理机开始图11的编程学习过程。最好是,图11的过程以存储在存储器80中的软件程序执行。
尽管本发明已通过参照其特定的最佳实施例进行了详细说明,但应理解在不违背本发明的实质精神和范围的前提下可对其进行各种变型和改进。
附录A
'    This    program    prompts    user    for    radii    and    radii    locations
'    Written    by    Jim    Pickett    December,1989
'    Modified    by    Rory    Flemmer    November/December    1989.
DEFINT    I-N
DEFDBL    A-H,O-Z
max=300
DIM    x(max),y(max),r(max)
CLS
LOCATE    1,35:PRINT    "PROGRAM    NEWFILE"
LOCATE    2,35:PRINT    "-"
FOR    i=1    TO    8
READ    f$
LOCATE    3+2*i,15
PRINT    f$
NEXT    i
DATA    "This    program    prompts    the    user    to    input    lens    shape    information."
DATA    "The    data    is    read    from    B&L    style    blueprints    as    co-ordinates"
DATA    "for    the    center    of    each    arc    and    then    its    radius"
DATA    "Up    to    one    hundred    radii    can    be    used."
DATA    "The    program    creates    a    file    with    a    name    selected    by    the    user"
DATA    "The    program    adds    the    suffix    <.len>    to    the    filename    and    stores"
DATA    "the    data    on    disc    in    the    current    directory."
DATA    "The    program    provides    an    on-screen    editor"
LOCATE    23,30:PRINT    "Hit    Any    Key    to    Continue."
a$=""
WHILE    a$=""
a$=INKEY$
WEND
CLS
LOCATE    2,5
PRINT    "Number    X-Location    Y-
Location    Radius"
LOCATE    21,1
PRINT    "Enter    999,999,999    to    quit."
i=0
100
i=i+1
IF    i>max    THEN
PRINT    "TOO    MANY    RADII    FOR    PROGRAM    MEMORY"
GOTO    1000
END    IF
LOCATE    22,1
IF    i<10    THEN
PRINT    USING    "Enter    values    for    the    following:X(#),Y(#),Radius(#)";i;i;i
ELSE
FOR    i=0    TO    4095    STEP    10
k=i+offset
IF    k>4095    THEN    k=k-4096
IF    k<0    THEN    k=k+4096
j=i+t
IF    j>4095    THEN    j=j-4096
IF    j<0    THEN    j=j+4096
x=r(j)    *    COS(theta(k))
y=r(j)    *    SIN(theta(k))
PSET(x,y)
IF    i    MOD    10=0    THEN
x=rprs(i)    *    COS(thetaprs(i))
y=rprs(i)    *    SIN(thetaprs(i))
PSET(x,y)
END    IF
NEXT    i
LOCATE    12,40:PRINT    CINT(t    *    360/4096);"degrees"
LOCATE    23,1:PRINT"Input    desired    rotation    in    degrees-
999    to    quit";
INPUT    z
IF    z=999    THEN    STOP
WHILE    z<-360
z=z+360
WEND
WHILE    z>360
z=z-360
WEND
t=t+z    *    4095/360
IF    t<0    THEN    t=t+4096
IF    t>4095    THEN    t=t-4096
GOTO    redraw
iendswitch=1
END    IF
ict=0
FOR    N=istart    TO    iend
ict=ict+1
LOCATE    ict+3,2
PRINT    USING    "    ###    ###.########    ###.########    ###.########";N;x(N);y(N);r(N)
NEXT    N
IF    iendswitch=1    THEN    GOTO    401
VIEW    PRINT    21    TO    25
LOCATE    21,1
801    PRINT    "Enter    'C'    to    continue    display,'E'    to    edit    this    data,or    'Q'    to    quit."
a$=""
WHILE    a$=""
a$=INKEY$
WEND
IF    UCASE$(a$)="C"THEN    GOTO    501
IF    UCASE$(a$)="E"THEN    GOTO    401
IF    UCASE$(a$)="Q"THEN    GOTO    601
CLS    2
GOTO    801
501    istart=iend+1
iend=iend+15
IF    iend>=i    THEN
iend=i
iendswitch=1
END    IF
VIEW    PRINT    1    TO    25
CLS    2
LOCATE    2,5
PRINT    "Number    X-Location
Y-Location    Radius"
ict=0
FOR    N=istart    TO    iend
ict=ict+1
LOCATE    ict+3,2
PRINT    USING    "    ###
###.########    ###.########    ###.########";N;
x(N);y(N);r(N)
NEXT    N
IF    iendswitch=1    THEN    GOTO    401
LOCATE    21,1
701    PRINT    "Enter    'C'    to    continue    display,'E'    to    edit    this    data,or    'Q'    to    quit."
a$=""
WHILE    a$=""
a$=INKEY$
WEND
IF    UCASE$(a$)="C"THEN    GOTO    501
IF    UCASE$(a$)="E"THEN    GOTO    401
IF    UCASE$(a$)="Q"THEN    GOTO    601
GOTO    701
Orient
'    Written    by    Bill    Long    November/December    1989
'    Modified    by    Rory    Flemmer    November/December    1989
OPTION    BASE    0
n=4095
DIM    r(n),theta(n),rprs(n),thetaprs(n)
SCREEN    2
WINDOW    (-2.66,-2)-(2.66,2)
CLS
LOCATE    5,10:PRINT    "This    program    establishes    the
Orientation    of    the    Lens    in    the    Pressing"
LOCATE    6,10:PRINT"-
-"
LOCATE    10,10:PRINT    "The    program    requires    the    selection    of    a    known    lens    style"
LOCATE    12,10:PRINT    "such    as    <style002>    and    a    pressing
style    such    as    <p55>"
LOCATE    14,10:PRINT    "The    program    will    then    draw    the    lens    and    the    pressing    and    invite    the"
LOCATE    16,10:PRINT    "user    to    specify    the    number    of    degrees    of    rotation,positive    or    negative"
LOCATE    18,10:PRINT    "The    program    will    re-draw    the    lens    until    a    value    of    999    is    entered"
LOCATE    22,10:PRINT    "Hit    any    key    to    continue    or    Q    to    quit"
a$=""
WHILE    a$=""
a$=INKEY$
WEND
IF    a$="q"    OR    a$="Q"    THEN    STOP
CLS
LOCATE    10,20:INPUT    "lens    style    please",s$
CLS
LOCATE    10,20:INPUT    "pressing    style    please",p$
s$="style002"
f$="p55"
CLS
LOCATE    12,20:PRINT    "Reading    and    manipulating    data"
LOCATE    16,20:PRINT    "Please    be    patient    this    is    a    major    computational    effort"
OPEN    s$+".cds"    FOR    INPUT    AS    #1
OPEN    f$+".prs"    FOR    INPUT    AS    #2
FOR    i=0    TO    4095
INPUT    #1,r(i),theta(i),z
INPUT    #2,rprs(i),thetaprs(i)
NEXT    i
FOR    i=0    TO    4095
IF    theta(i)=0    THEN    offset=i
NEXT    i
redraw:
CLS
WINDOW(-2.66,-2)-(2.66,2)
IF    i<100    THEN
PRINT    USING    "Enter    values    for    the
following:X(##),Y(##),Radius(##)";i;i;i
ELSE
PRINT    USING    "Enter    values    for    the
following:X(###),Y(###),Radius(###)";i;i;i
END    IF
END    IF
VIEW    PRINT    23    TO    25
LOCATE    23,2
INPUT;"",x(i),y(i),r(i)
PRINT
IF    x(i)=999    OR    y(i)=999    OR    r(i)=999    THEN
i=i-1
GOTO    200
END    IF
VIEW    PRINT    1    TO    25
CLS
LOCATE    2,5
PRINT    "Number    X-Location    Y-Location    Radius"
istart=1
IF    i>16    THEN    istart=i-16+1
ict=0
FOR    N=istart    TO    i
ict=ict+1
LOCATE    ict+3,2
PRINT    USING"    ###    ###.########
###.########    ###.########";N;x(N);y(N);r(N)
NEXT    N
LOCATE    21,1
PRINT    "Enter    999,999,999    to    quit."
GOTO    100
200    PRINT    "Is    all    data    correct(Y    or    N)?(Y)"
a$=""
WHILE    a$=""
a$=INKEY$
WEND
VIEW    PRINT    21    TO    25
101    CLS    2
LOCATE    21,2
IF    UCASE$(a$)="N"THEN
VIEW    PRINT    1    TO    25
CLS
LOCATE    2,5
PRINT    "Number    X-Location    Y-Location    Radius"
istart=1
iend=i
900    IF    i>16    THEN
iend=16
ELSE
END    IF
GOTO    601
401    iendswitch=0
VIEW    PRINT    21    TO    25
CLS    2
LOCATE    21,2
PRINT    "ENTER    CHOICE"
PRINT    "1-INSERT    A    LINE    3-
DELETE    A    LINE"
PRINT    "2-CHANGE    A    LINE    4-QUIT    EDITING"
PRINT    "*    ANY    OTHER    ENTRY    WILL    RETURN    DISPLAY    TO    TOP    OF    FILE    *"
iselect$=""
WHILE    iselect$=""
iselect$=INKEY$
WEND
IF    iselect$="1"    OR    iselect$="2"    OR    iselect$="3"    OR    iselect$="4"    THEN    GOTO    103
GOTO    101
103    IF    iselect$="1"THEN    GOSUB    insert
IF    iselect$="2"THEN    GOSUB    change
IF    iselect$="3"THEN    GOSUB    delete
IF    iselect$="4"THEN    GOTO    102
IF    iendswitch=1    THEN    GOTO    401
IF    UCASE$(a$)="C"THEN    GOTO    501
IF    UCASE$(a$)="E"THEN    GOTO    401
IF    UCASE$(a$)="Q"THEN    GOTO    601
a$="N"
GOTO    101
102    CLS    2
PRINT
PRINT    "Is    all    data    correct(Y    or    N)?(Y)"
a$=""
WHILE    a$=""
a$=INKEY$
WEND
IF    UCASE$(a$)="N"    THEN    GOTO    101
601    VIEW    PRINT    21    TO    25
CLS    2
PRINT    "Enter    filename    under    which    to    save    data    or    RETURN    to    quit."
INPUT;"",a1$
'a$=""
'WHILE    a$=""
'a$=INKEY$
'WEND
IF    a1$=""THEN
PRINT    "Are    you    sure    you    wish    to    abort    edit    (Y    or    N)?(N)"
a$=""
WHILE    a$=""
a$=INKEY$
WEND
IF    UCASE$(a$)="Y"    THEN    GOTO    1000
GOTO    200
END    IF
OPEN    "c:\buf\"+a1$+".len"    FOR    OUTPUT    AS    #1
WRITE    #1,i
FOR    n1=1    TO    i
WRITE    #1,x(n1),y(n1),r(n1)
NEXT    n1
CLOSE    #1
1000    CLS
CLEAR
VIEW    PRINT    1    TO    25
'    CHAIN    "pulldwnl"
END
'-
-
insert:
301    CLS    2
LOCATE    21,2
PRINT    "Line    to    be    inserted?"
INPUT;"",iline
IF    iline<1    THEN    GOTO    301
IF    i+1>max    THEN
PRINT    "TOO    MANY    RADII    FOR    PROGRAM    MEMORY"
PRINT    "CHANGES    NOT    SAVED"
a$=""
WHILE    a$=""
a$=INKEY$
WEND
GOTO    1000
END    IF
IF    iline>i    THEN
iline=i+1
ELSE
FOR    n2=i    TO    iline    STEP-1
SWAP    x(n2+1),x(n2)
SWAP    y(n2+1),y(n2)
SWAP    r(n2+1),r(n2)
NEXT    n2
'    iswitch=1
'    number=i
'    i=iline
END    IF
i=i+1
LOCATE    22,1
IF    iline<10    THEN
PRINT    USING    "Enter    values    for    the    following:X(#),Y(#),Radius(#)";iline;iline;iline
ELSE
IF    iline<100    THEN
PRINT    USING    "Enter    values    for    the    following:X(##),Y(##),Radius(##)";iline;iline;iline
ELSE
PRINT    USING    "Enter    values    for    the    following:X(###),Y(###),Radius(###)";iline;iline;iline
END    IF
END    IF
VIEW    PRINT    23    TO    25
LOCATE    23,2
INPUT;"",x(iline),y(iline),r(iline)
VIEW    PRINT    1    TO    25
CLS
LOCATE    2,5
PRINT    "Number    X-Location    Y-Location    Radius"
IF    iline<istart    THEN    istart=iline
iend=iend+1
IF    iline>iend    THEN    istart=iline
iend=istart+15
IF    iend>=i    THEN
iend=i
iendswitch=1
END    IF
ict=0
FOR    N=istart    TO    iend
ict=ict+1
LOCATE    ict+3,2
PRINT    USING"    ###    ###.########    ###.########    ###.########";N;x(N);y(N);r(N)
NEXT    N
VIEW    PRINT    21    TO    25
LOCATE    21,1
IF    iendswitch=1    THEN    RETURN
751    PRINT    "Enter    'C'    to    continue    display,'E'    to    edit    this    data,or    'Q'    to    quit."
a$=""
WHILE    a$=""
a$=INKEY$
WEND
CLS    2
IF    UCASE$(a$)<>    "Q"    AND    UCASE$(a$)    <>    "C"    AND
UCASE$(a$)<>    "E"    THEN    GOTO    751
RETURN
'-
-
change:
CLS    2
331    LOCATE    21,2
PRINT    "Line    to    be    changed    ?"
INPUT;"",iline
IF    iline<1    OR    iline>i    THEN
PRINT    "That    line    does    not    exist."
GOTO    331
END    IF
CLS    2
LOCATE    21,2
PRINT    "Number    X-Location    Y-Location    Radius"
PRINT    USING"###    ###.########    ###.########    ###.########";iline;x(iline);y(iline);r(iline)
IF    iline<10    THEN
PRINT    USING"Enter    values    for    the    following:X(#),Y(#),Radius(#)";iline;iline;iline
ELSE
IF    iline    <    100    THEN
PRINT    USING"Enter    values    for    the    following:X(##),Y(##),Radius(##)";iline;iline;iline
ELSE
PRINT    USING"Enter    values    for    the    following:X(###),Y(###),Radius(###)";iline;iline;iline
END    IF
END    IF
LOCATE    25,2
INPUT;"",x(iline),y(iline),r(iline)
VIEW    PRINT    1    TO    25
CLS    2
LOCATE    2,5
PRINT    "Number    X-Location    Y-Location    Radius"
IF    iline=iend    THEN
istart=iend-15
IF    istart<0    THEN    istart=0
GOTO    222
END    IF
IF    iline<istart    THEN    istart=iline
IF    iline>iend    THEN    istart=iline
iend=istart+15
IF    iend>=i    THEN
iend=i
iendswitch=1
END    IF
222    ict=0
FOR    N=istart    TO    iend
ict=ict+1
LOCATE    ict+3,2
PRINT    USING"    ###    ###.########    ###.########    ###.########";N;x(N);y(N);r(N)
NEXT    N
VIEW    PRINT    21    TO    25
LOCATE    21,1
IF    iendswitch=1    THEN    RETURN
771    PRINT    "Enter    'C'    to    continue    display,'E'    to    edit    this    data,or    'Q'    to    quit."
a$=""
WHILE    a$=""
a$=INKEY$
WEND
CLS    2
IF    UCASE$(a$)<>"Q"    AND    UCASE$(a$)<>"C"    AND    UCASE$(a$)<>"E"    THEN    GOTO    771
RETURN
'-
-
delete:
CLS    2
351    LOCATE    21,2
PRINT    "Line    to    be    deleted    ?"
INPUT;"",iline
IF    iline<1    OR    iline    >i    THEN
PRINT    "That    line    does    not    exist."
GOTO    351
END    IF
x(iline)=0
y(iline)=0
r(iline)=0
FOR    n2=iline    TO    i
SWAP    x(n2+1),x(n2)
SWAP    y(n2+1),y(n2)
SWAP    r(n2+1),r(n2)
NEXT    n2
i=i-1
VIEW    PRINT    1    TO    25
CLS    2
LOCATE    2,5
PRINT    "Number    X-Location    Y-Location    Radius"
IF    iline=iend    THEN    istart=iend-15
IF    iline<istart    THEN    istart=iline
IF    iline>iend    THEN    istart=iline
iend=istart+15
IF    iend>=i    THEN
iend=i
iendswitch=1
END    IF
ict=0
FOR    N=istart    TO    iend
ict=ict+1
LOCATE    ict+3,2
PRINT    USING"    ###    ###.########    ###.########    ###.########";N;x(N);y(N);r(N)
NEXT    N
VIEW    PRINT    21    TO    25
LOCATE    21,1
IF    iendswitch=1    THEN    RETURN
761    PRINT"Enter    'C'    to    continue    display,'E'    to    edit    this    data,or    'Q'    to    quit."
a$=""
WHILE    a$=""
a$=INKEY$
WEND
CLS    2
IF    UCASE$(a$)<>"Q"    AND    UCASE$(a$)<>"C"    AND    UCASE$(a$)<>"E"    THEN    GOTO    761
RETURN
'-
-
'Compute    pressing    data
Written    by    Rory    Flemmer,November/December    1989.
304-864    5568
DEFSNG    A-Z
OPTION    BASE    0
CLS
LOCATE    1,25:PRINT    "Program    PRESSING"
LOCATE    2,25:PRINT    "-"
FOR    i=1    TO    4
READ    f$
LOCATE    4+2*i,10
PRINT    f$
NEXT    i
DATA    "This    program    requests    dimensions    of    the    pressing    in    inches"
DATA    "It    uses    these    to    create    a    data    file    on    the    default    disc    in"
DATA    "the    current    directory    called    <filename.prs>"
DATA    "<filename>    is    a    name    with    not    more    than    8    letters,supplied    by    the    user"
LOCATE    22,50:PRINT    "Hit    any    key    to    continue-Q    to    quit"
a$=""
WHILE    a$=""
a$=INKEY$
WEND
IF    a$="q"    OR    a$="Q"    THEN    STOP
nn=4095
pi=3.141593
theta=0
zinc=(pi+pi)/4096
DIM    r(nn),theta(nn)
CLS
LOCATE    10,20:INPUT    "Enter    diameter    of    pressing-in.",z
radius=z/2
LOCATE    15,20:INPUT    "Enter    width    of    pressing-in.",z
widt=z/2
LOCATE    20,20:INPUT    "Please    enter    file    name,without    suffix-999    to    quit";f$
IF    f$="999"    THEN    STOP
OPEN    f$+".prs"    FOR    OUTPUT    AS    #1
SCREEN    2
WINDOW    (-2.66,-2)-(2.66,2)
theta=-zinc
FOR    i=0    TO    4095
theta=theta+zinc
IF    theta>pi/2    AND    theta<3    *    pi/2    THEN
widt=-ABS(widt)
ELSE
widt=ABS(widt)
END    IF
yval=widt*TAN(theta)
length=SQR(yval*yval+widt*widt)
IF    length>radius    THEN    length=radius
y=length*SIN(theta)
x=length*COS(theta)
PSET(x,y)
WRITE    #1,length,theta
NEXT    i
LOCATE    23,1:PRINT"Pressing    data    computed    and    stored    as";f$+".PRS"
'    Lensedge-written    by    Jim    Pickett,May    and    December,1989.
'    Modified    by    R.L.C.Flemmer,Jan    1990.
'    builds    an    object    from    radii    and    centre    locations    in    *.len    file
'    puts    edge    data    in    *.cds    file
CLEAR
'    $DYNAMIC
DEFINT    I-N
DEFDBL    A-H,O-Z
CLS
LOCATE    1,25:PRINT"Program    LENSEDGE"
LOCATE    2,25:PRINT"-"
FOR    i=1    TO    9
READ    f$
LOCATE    2+2*i,1
PRINT    f$
NEXT    i
DATA    "This    program    reads    data    from    the    file    <filename.len>,created    by    NEWFILE."
DATA    "It    prompts    the    user    for    <filename>    and    adds    the    suffix    <.len>.Its    function"
DATA    "is    to    create    a    data    file    which    specifies    information    for    the    edge    of    the"
DATA    "style    under    consideration.The    file    is    stored    on    the    default    disc"
DATA    "in    the    current    directory"
DATA    ""
DATA    "<filename>.cds    contains    4096    data    triples.Each    of    the    4096    triples    gives"
DATA    "values    for    the    angle    (radians),radius    at    that    angle    (thousandths    of    an    inch"
DATA    "and    offset    due    to    the    6    diopter    curvature(thousandths    of    an    inch"
LOCATE    23,20:PRINT    "Hit    any    key    to    continue-q    to    quit"
a$=""
WHILE    a$=""
a$=INKEY$
WEND
IF    a$="q"    OR    a$="Q"    THEN    STOP
CLS
FOR    i=1    TO    5
READ    f$
LOCATE    5+2*i,5:PRINT    f$
NEXT    i
DATA    "The    program    initially    calculates    the    lens    edge    from    the    data    in"
DATA    "<filename.len>.During    this    process    it    draws    out    the    lens    on    the    screen."
DATA    ""
DATA    "Thereafter    it    interpolates    this    data    to    provide    data    at    4096    equal"
DATA    "increments    of    angle.During    this    process,it    re-draws    the    lens."
LOCATE    23,20:PRINT    "Hit    any    key    to    continue-q    to    quit"
a$=""
WHILE    a$=""
a$=INKEY$
WEND
IF    a$="q"    OR    a$="Q"    THEN    STOP
CLS
PRINT    "Input    lens    style    file.(Include    directory    and    path)":PRINT
INPUT:"",a1$:PRINT
OPEN    a1$+".len"    FOR    INPUT    AS    #1
GOTO    20
10    CLS
PRINT    "There    is    no    lens    file";a1$;"found."
PRINT    "Please    input    a    file    which    is    present.(Include    directory    and    path)":PRINT
INPUT;"",a1$:PRINT
OPEN    a1$+".len"    FOR    INPUT    AS    #1
20    'OPEN    a1$+".cnc"    FOR    OUTPUT    AS    #2
dioptres=6
diop=(1000#/6)/25.4#
pi=3.141592653589793#
pid2=pi*.5
pi2=pi*2
pid180=pi/180
ipts=4096
igain=20000
offset=-2.5
INPUT    #1,num
n=5200
DIM    x(num),y(num),rad(num),xstart(num),ystart(num),xx(n),yy(n),xxx(n),yyy(n)
CLS
FOR    i=1    TO    num
INPUT    #1,x(i),y(i),rad(i)
NEXT    i
CLOSE    #1
SCREEN    2
WINDOW    (-1.5,-1.2)-(1.5,1.2)
LOCATE    1,36
PRINT    a1$
LINE    (-10,0)-(10,0)
LINE    (0,-10)-(0,10)
a1=x(num)
b1=y(num)
r1=rad(num)
aa1=a1
bb1=b1
rr1=r1
FOR    i=1    TO    num
a2=x(i)
b2=y(i)
r2=rad(i)
aa1=a2
bb1=b2
rr1=r2
GOSUB    findintersection
xstart(i)=xmin
ystart(i)=ymin
CIRCLE    (xmin    *    70,ymin    *    70),1,12
a1=a2
b1=b2
r1=r2
aa1=a1
bb1=b1
rr1=r1
NEXT    i
count=0
ymin=.1
FOR    i=1    TO    num
xbegin=xstart(i)
ybegin=ystart(i)
IF    i+1>num    THEN
xend=xstart(1)
yend=ystart(1)
ELSE
xend=xstart(i+1)
yend=ystart(i+1)
END    IF
zcrement=.001
IF    xbegin>xend    THEN    zcrement=-.001
FOR    zj=xbegin    TO    xend    STEP    zcrement
count=count+1
arg=rad(i)*rad(i)-(zj-x(i))*(zj-x(i))
IF    arg<0    THEN
PRINT    arg
IF    arg<-.001    THEN
LOCATE    2,1
PRINT    "flag2"
GOTO    111
ELSE
arg=0
END    IF
END    IF
root=SQR(arg)
y1=y(i)+root
y2=y(i)-root
IF    ABS(y1-yend)<ABS(y2-yend)THEN
yy=y1
ELSE
yy=y2
END    IF
IF    zj=xbegin    AND    ABS(yy-ybegin)>.05
THEN
GOSUB    interpolate
count=count+1
xi=zj
yi=yy
PSET(zj,yy),i
xx(count)=zj:yy(count)=yy
ELSE
xi=zj
yi=yy
PSET(zj,yy),i
xx(count)=zj:yy(count)=yy
END    IF
111    NEXT    zj
NEXT    i
CLOSE    #1
PAINT    (0,0),1
GOSUB    getlensdata
1    LOCATE    23,1
PRINT    "PRESS    ANY    KEY    TO    CONTINUE"
a$=""
WHILE    a$=""
a$=INKEY$
WEND
CLS
SCREEN    2
CLEAR
VIEW    PRINT    1    TO    25
END
'-
-
findintersection:
slope=(b2-b1)/(a2-a1)
bcept=b2-slope*a2
aaa=1+slope*slope
bbb=2*slope*(bcept-b1)-2*a1
ccc=a1*a1+(bcept-b1)*(bcept-b1)-r1*r1
arg=bbb*bbb-4*aaa*ccc
denom=1/(2*aaa)
root=SQR(arg)
x1=(-bbb+root)*denom
x2=(-bbb-root)*denom
y1=x1*slope+bcept
y2=x2*slope+bcept
diff1=(x1-a1)*(x1-a1)+(y1-b1)*(y1-b1)-r1*r1
diff2=(x2-a1)*(x2-a1)+(y2-b1)*(y2-b1)-r1*r1
diff3=(x1-a2)*(x1-a2)+(y1-b2)*(y1-b2)-r2*r2
diff4=(x2-a2)*(x2-a2)+(y2-b2)*(y2-b2)-r2*r2
IF    ABS(diff1-diff3)>ABS(diff2-diff4)    THEN
xmin=x2
ymin=y2
ELSE
xmin=x1
ymin=y1
END    IF
RETURN
'-
-
interpolate:
count=count-1
xend1=xend
ybegin1=ystart(i)
yend1=yy
zcrement2=.001
IF    ybegin1>yend1    THEN    zcrement2=-.001
FOR    zjj=ybegin1    TO    yend1    STEP    zcrement2
count=count+1
arg=rad(i)*rad(i)-(zjj-y(i))*(zjj-y(i))
IF    arg<0    THEN
IF    arg<-.001    THEN
PRINT    "flag2"
GOTO    112
ELSE
arg=0
END    IF
END    IF
root=SQR(arg)
x1=x(i)+root
x2=x(i)-root
IF    ABS(x1-xend1)<ABS(x2-xend1)    THEN
xx=x1
ELSE
xx=x2
END    IF
xi=xx
yi=zjj
'GOSUB    calangle
'radius=rad(i)+wheel
'xx(count)=x(i)+radius*COS(angle)
'yy(count)=y(i)+radius*SIN(angle)
'PSET(xx(count)*70,yy(count)*70)
'xx(count)=zj:yy(count)=yy
y11=yy(count)
IF    y11<ymin    AND    y11>0    AND    xx(count)>0
THEN
ymin=y11
ipos=count
END    IF
PSET(xx,zjj),i
xx(count)=xx:yy(count)=zjj
xend1=xx
112
NEXT    zjj
RETURN
'-
-
calangle:
x2i=x(i)
y2i=y(i)
IF    xi=x2i    THEN
IF    yi<y2i    THEN
angle=pid2+pi
ELSE
angle=pid2
END    IF
GOTO    30
END    IF
angle=ATN((y2i-yi)/(x2i-xi))
IF    xi<x2i    THEN
angle=pi+angle
END    IF
IF    xi>x2i    AND    yi<y2i    THEN
angle=2*pi+angle
END    IF
30    RETURN
'-
-
getcncdata:
iwatch=0
IF    ipos+1>count    THEN
y2=yy(1)
x2=xx(1)
ELSE
y2=yy(ipos+1)
x2=xx(ipos+1)
END    IF
IF    y2<yy(ipos)    THEN
x3=xx(ipos)-yy(ipos)*(xx(ipos)-x2)/(yy(ipos)-y2)
ELSE
IF    ipos-1<1    THEN
y2=yy(count)
x2=xx(count)
ELSE
y2=yy(ipos-1)
x2=xx(ipos-1)
END    IF
x3=xx(ipos)-yy(ipos)*(xx(ipos)-x2)/(yy(ipos)-y2)
END    IF
radius=x3
y3=0
theta=0
newradius=(radius+offset)*igain
WRITE    #2,newradius
dtheta=360/4096*pid180
theta=0
ict=ipos
angle=0
FOR    irad=2    TO    ipts
IF    irad=4094    THEN    STOP
theta=theta+dtheta
WHILE    angle<theta
ict=ict+1
IF    ict>count    THEN
ict=1
iwatch=1
END    IF
angle2=angle
radius2=radius
GOSUB    calangle2
WEND
rad=radius+((theta-angle)/(angle2-angle))*(radius2-radius)
x3=rad*COS(theta)
y3=rad*SIN(theta)
newradius=(rad+offset)*igain
'WRITE    #2,newradius
''    LINE(0,0)-(x3*70,y3*70),14
NEXT    irad
'close    #2
RETURN
'-
-
calangle2:
xict=xx(ict)
yict=yy(ict)
IF    xict=0    THEN
IF    yict<0    THEN
angle=pid2+pi
ELSE
angle=pid2
END    IF
GOTO    330
END    IF
angle=ATN(yict/xict)
IF    xict<0    THEN
angle=pi+angle
END    IF
IF    xict>0    AND    yict<0    THEN
angle=2*pi+angle
END    IF
IF    irad=ipts    THEN
IF    xiot>0    AND    yict>0    THEN
angle=2*pi+angle
END    IF
END    IF
IF    iwatch=1    THEN    angle=angle+pi2
radius=SQR(yict*yict+xict*xict)
330    RETURN
'-
-
getlensdata:
CLS
OPEN    a1$+".cds"    FOR    OUTPUT    AS    #3
LOCATE    1,36
PRINT    a1$
WINDOW    (-1.5,-1.2)-(1.5,1.2)
LINE    (-1.5,0)-(1.5,0)
LINE    (0,-1.2)-(0,1.2)
'(1.11,.35)-(1.14,.4)
n=1:zinc=2*pi/4096:iflag=0
ng=1:GOSUB    gettan
zlastangle=angle
zn=angle
xxx(1)=xx(1);yyy(1)=yy(1)
rad=SQR(xxx(1)*xxx(1)+yyy(1)*yyy(1))
altitude=diop-SQR(diop*diop-rad*rad)
WRITE    #3,CSNG(rad),CSNG(angle),CSNG(altitude)
nguess=1
top:
n=n+1
IF    n>4096    THEN    RETURN
IF    n>2000    THEN    iflag=1
znextangle=zlastangle+zinc
angle=zn
WHILE    angle<znextangle
nguess=nguess+1
IF    nguess>5008    THEN    nguess=nguess-5008
ng=nguess
GOSUB    gettan
WEND
'IF    angle>pi+pi    THEN    angle=angle-pi-pi
'    LOCATE    1,1:PRINT    nguess,zlastangle,znextangle,angle
zn=angle
yyy:
ng=nguess-1:GOSUB    gettan
WHILE    angle=zn
ng=ng-1
GOSUB    gettan
WEND
z1=angle
ngless=nguess-1
IF    ngless<1    THEN    ngless=ngless+5008
xxx(n)=xx(ngless)+(znextangle-zl)/(zn-zl)*(xx(nguess)-xx(ngless))
yyy(n)=yy(ngless)+(znextangle-zl)/(zn-z1)*(yy(nguess)-yy(ngless))
rad=SQR(xxx(n)*xxx(n)+yyy(n)*yyy(n))
theta=znextangle
altitude=diop-SQR(diop*diop-rad*rad)
WRITE    #3,CSNG(rad),CSNG(theta),CSNG(altitude)
'LOCATE    1,1:PRINT    rad,theta,altitude
zlastangle=znextangle
'PRINT    n,znextangle*360/2/pi
PSET    (xxx(n),yyy(n))
GOTO    top
RETURN
'-
gettan:
'IF    ng>5003    THEN    STOP
IF    ng>5008    THEN    ng=ng-5008
IF    ng<1    THEN    ng=ng+5008
IF    xx(ng)>=0    AND    yy(ng)>=0    THEN    quad=1
IF    xx(ng)<=0    AND    yy(ng)>=0    THEN    quad=2
IF    xx(ng)<=0    AND    yy(ng)<=0    THEN    quad=3
IF    xx(ng)>=0    AND    yy(ng)<=0    THEN    quad=4
SELECT    CASE    quad
CASE    1
angle=ATN(yy(ng)/xx(ng))
CASE    2
angle=pi-ABS(ATN(yy(ng)/xx(ng)))
CASE    3
angle=pi+ATN(yy(ng)/xx(ng))
CASE    4
angle=pi+pi-ABS(ATN(yy(ng)/xx(ng)))
END    SELECT
IF    angle<0    THEN    STOP
IF    iflag=1    AND    angle<1    THEN    angle=angle+2*pi
RETURN

Claims (9)

1、一种用于对光学透镜工件的边缘轮廓加工成形的透镜磨边系统,包括用于夹持该透镜工件的夹持装置和用于对该透镜工件的边缘轮廓加工成形的磨边工具,其特征在于包括:
存储器装置,用于存储代表与该磨边工具相关的透镜边缘研磨轨迹的数据;
伺服装置,用于移动该夹持装置从而将该透镜工件围绕该夹持装置的轴线旋转过一系列的透镜旋转角,以及将该透镜工件的边缘朝向着该磨边工具而一直压至与该一系列旋转角相对应的一系列透镜半径;和
可编程微处理机,与该存储器装置相连,用于控制该伺服装置,从而根据存储在该存储器中的代表透镜边缘研磨轨迹的数据调整所述一系列透镜旋转角和一系列透镜半径。
2、权利要求1所述的系统,其特征在于:所述伺服装置包括用来使所述夹持装置将透镜工件轴向平移过所述磨边工具表面的装置,所述微处理机装置使所述夹持装置将透镜工件连续地平移过所述磨边工具表面,从而使磨边工具需要修整的频度减为最小。
3、权利要求1所述的系统,其特征在于还包括用于检测由磨边工具对其边缘进行研磨的透镜工件的半径的透镜尺寸传感器装置,并且所述微处理机装置包括:
用于将所述传感器装置探测到的实际透镜半径与预定值相比较并计算其差值的装置,
用于修正所述一系列透镜半径以补偿所述差值,从而允许磨边工具磨损而不会致使在磨边工具上磨边的一系列透镜的实际透镜半径引起相应误差的装置。
4、权利要求1所述的系统,其特征在于:
所述存储器装置包含在沿透镜轨迹N个点上规定透镜半径和透镜旋转角的表,该表包含透镜轨迹数据,该表还在N点的每一个点上至少规定下列参数之一的对应值:(a)透镜工件相对于磨边工具轴的平移速度,(b)透镜旋转速度,(c)磨边工具速度,以及(d)将透镜工件夹持贴靠于磨边工具的力,从而规定一系列参数值,以及
所述伺服装置包含由微处理机装置控制的、用于根据存储器中该表的内容至少控制所述参数之一的装置。
5、权利要求4所述的系统,其特征在于:存储器中的一系列参数值由试凑法确定,该方法包括:
在磨边工具上研磨透镜工件的边缘,同时至少改变参数之一,以便在监测透镜工件过热的同时获得许多参数的组合,
除去监测步骤探测到透镜工件过热的那些组合,以及
将具有最高磨边工具速度而未观察到过热的组合存储在所述表中。
6、权利要求5所述的系统,其特征在于:在一系列透镜半径和透镜旋转角的每一个上执行该方法从而产生所述表的一组对应的连续记录项目。
7、权利要求1所述的系统,其特征在于还包含:
用于存储多个将在磨边工具上磨边的透镜毛坯的卸料圆盘传送带装置,
用于存储多个在磨边工具上由磨边透镜毛坯形成的透镜的装料圆盘传送带装置,
由微处理机装置控制的用于从卸料圆盘传送带装置中抓取一系列透镜毛坯中一个并将其放在夹持装置之间的卸料臂伺服装置,
由微处理机控制用于将由透镜毛坯研磨成的透镜从夹持装置取出并将其放入装料圆盘传送带装置的装料臂伺服装置。
8、权利要求1所述的系统,其特征在于还包括:
用于接收透镜设计数据的输入装置,
用于从透镜设计数据计算代表透镜边缘研磨轨迹的数据并将透镜轨迹数据存入存储器的可编程装置。
9、权利要求8所述的系统,其特征在于:磨边工具包括一个柱面部分和一个用于对透镜边缘倒边的顶尖部分,用于计算透镜轨迹数据的该可编程装置包括用于接收加到透镜设计数据上的下列规范的装置,所述规范为:(a)磨边工具顶尖部分的夹角,和(b)磨边工具柱面部分的半径。
CN91101319.9A 1990-02-27 1991-02-27 可编程控制进料和速度的透镜磨边系统 Expired - Fee Related CN1027053C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US48542690A 1990-02-27 1990-02-27
US495,426 1990-02-27
US485,426 1990-02-27

Publications (2)

Publication Number Publication Date
CN1055688A CN1055688A (zh) 1991-10-30
CN1027053C true CN1027053C (zh) 1994-12-21

Family

ID=23928127

Family Applications (1)

Application Number Title Priority Date Filing Date
CN91101319.9A Expired - Fee Related CN1027053C (zh) 1990-02-27 1991-02-27 可编程控制进料和速度的透镜磨边系统

Country Status (8)

Country Link
EP (1) EP0444902B2 (zh)
JP (1) JP3061428B2 (zh)
CN (1) CN1027053C (zh)
AT (1) ATE125182T1 (zh)
CA (1) CA2037106C (zh)
DE (1) DE69111265T3 (zh)
ES (1) ES2077162T3 (zh)
IE (1) IE67140B1 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0789787A1 (de) * 1992-05-26 1997-08-20 Wernicke &amp; Co. GmbH Vorrichtung zur bearbeitung des randes von brillengläsern
US5512004A (en) * 1993-06-08 1996-04-30 Coburn Optical Industries, Inc. Lens edging machine bevel control process
JP4046789B2 (ja) * 1996-10-31 2008-02-13 株式会社ニデック 眼鏡レンズ研削加工機及び眼鏡レンズ研削加工方法
JPH10138108A (ja) * 1996-10-31 1998-05-26 Nidek Co Ltd 眼鏡レンズ研削加工機及び眼鏡レンズ研削加工方法
DE69713161T2 (de) 1997-11-20 2003-01-16 Essilor Int Verfahren zum ausbessern von brillengläsern und zugehörige vorrichtung
FR2771665B1 (fr) * 1997-12-03 2000-02-18 Briot Int Procede et systeme de controle du fonctionnement d'une machine de taille d'une ebauche de verre optique
US7448938B2 (en) 2003-11-05 2008-11-11 Hoya Corporation Method for supplying spectacle lens
CN1306352C (zh) * 2004-12-11 2007-03-21 东方汽轮机厂 一种四轴联动数控加工后置处理方法及其控制系统
CN100542743C (zh) * 2005-04-15 2009-09-23 鸿富锦精密工业(深圳)有限公司 滚圆预处理设备及滚圆方法
FR2904703B1 (fr) * 2006-08-04 2008-12-12 Essilor Int Paire de lunettes ophtalmiques et procede de formation d'une nervure peripherique d'emboitement sur le chant d'une lentille
EP2184132B1 (en) * 2008-11-07 2013-05-08 Essilor International (Compagnie Générale D'Optique) A method of and an apparatus for manufacturing an optical lens
EP2263831A1 (en) * 2009-06-15 2010-12-22 Essilor International (Compagnie Générale D'Optique) Method for Machining a Surface of an Optical Lens.
WO2013086137A1 (en) 2011-12-06 2013-06-13 1-800 Contacts, Inc. Systems and methods for obtaining a pupillary distance measurement using a mobile computing device
US9378584B2 (en) 2012-05-23 2016-06-28 Glasses.Com Inc. Systems and methods for rendering virtual try-on products
US9483853B2 (en) 2012-05-23 2016-11-01 Glasses.Com Inc. Systems and methods to display rendered images
US9286715B2 (en) 2012-05-23 2016-03-15 Glasses.Com Inc. Systems and methods for adjusting a virtual try-on
CN115383545B (zh) * 2022-08-09 2024-04-16 北京中致科技开发有限公司 打磨装置及打磨方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5321146B2 (zh) * 1973-01-16 1978-06-30
JPS5567003U (zh) * 1978-10-30 1980-05-08
US4233784A (en) * 1979-03-12 1980-11-18 Ait Industries, Inc. Lens edging apparatus
JPS55150959A (en) * 1979-05-10 1980-11-25 Tenryu Seiki Kk Material supplying and ejecting device for curve generator
JPS5771768A (en) * 1980-10-15 1982-05-04 Shonan Kogaku Kogyosho:Kk Centering machine for lens
EP0092364A1 (en) * 1982-04-14 1983-10-26 The Hanwell Optical Co. Limited A method of and apparatus for dimensioning a lens to fit a spectacle frame
DE3316619A1 (de) * 1983-05-06 1984-11-08 Otto 4010 Hilden Helbrecht Schleifmaschine fuer die raender von brillenglaesern
US4493168A (en) * 1983-06-16 1985-01-15 Coburn Optical Industries, Inc. Calibration gauge for computer-controlled lens generator, or the like
US4870784A (en) * 1983-11-14 1989-10-03 Ait Industries, Inc. Lens edging machine and method
JPH0659612B2 (ja) * 1983-11-29 1994-08-10 株式会社トプコン レンズ研削装置
US4656590A (en) * 1984-11-07 1987-04-07 Ronald Ace Method and apparatus for making patterns for eyeglasses
EP0236182B1 (en) * 1986-01-30 1991-11-27 Kabushiki Kaisha TOPCON Lens grinding method and apparatus
JPH0632892B2 (ja) * 1986-02-10 1994-05-02 株式会社トプコン レンズ研削装置
US4989316A (en) * 1987-03-09 1991-02-05 Gerber Scientific Products, Inc. Method and apparatus for making prescription eyeglass lenses
JP2943809B2 (ja) * 1987-12-29 1999-08-30 株式会社トプコン 玉摺機
JPH0295543A (ja) * 1988-09-30 1990-04-06 Omron Tateisi Electron Co 研削盤制御装置
JP2654816B2 (ja) * 1988-11-18 1997-09-17 株式会社エヌテック レンズ加工機のレンズ搬送テーブル

Also Published As

Publication number Publication date
DE69111265T2 (de) 1996-03-28
IE67140B1 (en) 1996-03-06
EP0444902A3 (en) 1992-04-08
CN1055688A (zh) 1991-10-30
EP0444902B1 (en) 1995-07-19
EP0444902A2 (en) 1991-09-04
CA2037106C (en) 1999-05-04
DE69111265D1 (de) 1995-08-24
DE69111265T3 (de) 2003-05-28
JPH07256547A (ja) 1995-10-09
IE910628A1 (en) 1991-08-28
CA2037106A1 (en) 1991-08-28
ES2077162T3 (es) 1995-11-16
JP3061428B2 (ja) 2000-07-10
ATE125182T1 (de) 1995-08-15
EP0444902B2 (en) 2002-06-05

Similar Documents

Publication Publication Date Title
CN1027053C (zh) 可编程控制进料和速度的透镜磨边系统
CN1146866C (zh) 浮起式磁头的冠顶形成方法及冠顶形成装置
CN1153082C (zh) 头戴式显示装置以及该装置所使用的显示光学系统
CN1845021A (zh) 指令生成装置
CN1286407A (zh) 用于光学拾取的物镜和光学拾取装置
CN1721904A (zh) 内窥镜的物镜系统
CN1596376A (zh) 可变焦距透镜及利用它的摄像机
CN1274839A (zh) 透镜的评价方法及其装置、光学单元和透镜的调整方法及装置
CN1437156A (zh) 图像补正装置,图像补正方法,及图像形成装置
CN1690757A (zh) 摄像透镜
CN1645241A (zh) 摄影装置、图像处理装置、摄影装置的图像处理方法
CN101052929A (zh) 倒立二轮行走型机器人及其控制方法
CN1684491A (zh) 图像处理装置、图像投影装置、图像处理方法和程序
CN1599419A (zh) 视频处理装置、视频处理方法和计算机程序
CN1927543A (zh) 平台表面调整用磨石及表面调整方法
CN1886749A (zh) 记录装置
CN1213992A (zh) 成形方法及成形设备
CN1223435C (zh) 镜片研削加工用的镜片布置设定装置及其显示装置
CN1270320C (zh) 滑块的加工装置及加工方法和滑块加工用负荷施加装置
CN101067664A (zh) 一种在光学透镜上加工非回转l型缺口的方法及夹具
CN1609969A (zh) 光头装置和光学式信息记录或再现装置
CN1274858A (zh) 可变焦距透镜
CN1822201A (zh) 信息记录/再生装置
CN1197062C (zh) 集成光学元件及光学拾波器以及光盘装置
CN1842846A (zh) 信息记录方法、信息记录装置以及信息记录介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C53 Correction of patent of invention or patent application
COR Change of bibliographic data

Free format text: CORRECT: PATENTEE; FROM: BAUSCH + LOMB INC. TO: LAYKERSODCA CO., LTD.

CP03 Change of name, title or address

Address after: Italy - Arco

Patentee after: Leke Sodi C Co.

Address before: American New York

Patentee before: Bausch & Lomb

C15 Extension of patent right duration from 15 to 20 years for appl. with date before 31.12.1992 and still valid on 11.12.2001 (patent law change 1993)
OR01 Other related matters
C19 Lapse of patent right due to non-payment of the annual fee
CF01 Termination of patent right due to non-payment of annual fee