An exemplary embodiment of the invention is a method of providing an executable program from an executable program provider to a customer for use in a controller of a three dimensional coordinate measurement system. The method includes receiving a request to create an executable program from a customer and obtaining information related to the executable program. The executable program is developed which guides an operator through a number of measurement steps to be performed with the three dimensional coordinate measuring system. The executable program is delivered to the customer over a network.
|
38. A system for providing an executable program from an executable program provider to a customer for use in a controller of a three dimensional coordinate measurement system, the system comprising:
an executable program provider system coupled to a customer system by a network, the executable program provider system receiving a request to create an executable program and receiving incarnation related to the executable program from the customer system, the information including a description of at least one feature of a part to be measured with the coordinate measurement system; the executable program provider system submitting the executable program to the customer system over the network.
1. A method of providing an executable program from an executable program provider to a customer for use in a controller of a three dimensional coordinate measurement system, the method comprising:
receiving a request to create an executable program from a customer; obtaining information related to the executable program, the information including a customer description of at least one feature of a part to be measured with the coordinate measurement system; developing the executable program in response to the information, the executable program guiding an operator through a number of measurement steps to be performed with the three dimensional coordinate measuring system to measure the at least one feature; and, delivering the executable program to the customer.
4. The method of
the request to create an executable program is received over the network.
5. The method of
the executable program prompts the operator for an experience level; and the executable program generates varying content in response to the experience level.
6. The method of
providing an expiration code to the customer for installation in the controller, the expiration code enabling operation of the coordinate measurement system for a predetermined period of time.
7. The method of
receiving a request from the customer for an updated expiration code; providing art updated expiration code to the customer.
8. The method of
the updated expiration code is provided to the customer over a network.
9. The method of
the request for an updated expiration code is provided to the executable program provider over the network.
10. The method of
allowing the customer to view execution of the executable program over a network; and obtaining a customer approval of the executable to am over the network.
11. The method of
obtaining information related to the executable program includes obtaining engineering drawings of a part to be measured.
12. The method of
obtaining information related to the executable program includes obtaining a description of features of a part to be measured.
13. The method of
obtaining information related to the executable program includes obtaining a description of reference features of a part to be measured.
14. The method of
obtaining information related to the executable program includes obtaining a description of the measurement environment.
15. The method of
obtaining information related to the executable program includes obtaining a a description of a report to be generated by the executable program.
16. The method of
the executable program provides an inspection procedure to an operator of the coordinate measurement system having a display, the executable program implementing a process comprising: prompting the operator to select an experience level; selecting one of a plurality of executable programs in response to the experience level to define a selected executable program; and, executing the selected executable program, wherein for a first experience level, the selected executable program consists essentially of audio and video to direct the operator through the inspection procedure. 17. The method of
18. The method of
19. The method of
presenting to the operator through the display a digital image of the part and a measurement indicator, the measurement indicator directing the operator to position a measurement portion of the coordinate measurement system adjacent the measurement location on the part.
20. The method of
21. The method of
22. The method of
23. The method of
24. The method of
25. The method of
measuring a feature of a part at a measurement location on the part; displaying an image of the part, the image of the part including a representation of the measurement location; and displaying adjacent to the image of the part an indication of the feature, the indication of the feature being positioned proximate to the representation of the measurement location.
27. The method of
28. The method of
29. The method of
30. The method of
31. The method of
storing a plurality of executable programs on a server, the executable programs guiding an operator through a number of measurement steps to be performed with the coordinate measurement system; receiving a request at the server from the coordinate measurement system for delivery of an executable program, the request including an operator identifier identifying the operator using the coordinate measurement system, the server restricting access or providing access to at least one executable program based on the operator identifier; and the server delivering the executable program to the coordinate measurement system if access is available to the operator.
32. The method of
storing a plurality of executable programs on a server, the executable programs guiding an operator through a number of measurement steps to be performed with the coordinate measurement system; receiving a request at the server from the coordinate measurement system for delivery of an executable program, the request including a coordinate measurement system identifier identifying the coordinate measurement system requesting the executable program, the server restricting access or providing access to at least one executable program based on the coordinate measurement system identifier; and the server delivering the executable program to the coordinate measurement system if access is available to the coordinate measurement system.
33. The method of
providing an executable program toolkit, the executable program toolkit generating an executable program for execution by the coordinate measurement system, the executable program toolkit inserting a site identifier in an executable program generated using the executable program toolkit; the coordinate measurement system including a coordinate measurement system site identifier; wherein the coordinate measurement system executes the executable program in response to a comparison of the executable program site identifier and the coordinate measurement system site identifier.
34. The method of
36. The method of
the three dimensional coordinate measuring system includes an articulated arm.
40. The system of
the request to create an executable program is received over the network.
41. The system of
the executable program prompts the operator for an experience level; and the executable program generates varying content in response to the experience.
42. The system of
the executable program provider system provides an expiration code to the customer system for installation in the controller, the expiration code enabling operation of the coordinate measurement system car a predetermined period of time.
43. Tho system of
the executable program provider system receives a request from the customer system for an updated expiration code; and, the executable program provider system provides an updated expiration code to the customer system.
44. Tho system of clam 43 wherein:
the updated expiration code is provided to the customer system over the network.
45. The system of
the request for an updated expiration code is provided to the executable program provider system over the network.
46. The system of
the executable program provider system provides allows the customer system to view execution of the executable program over the network; and the executable program provider system receives approval of the executable program from the customer system over the network.
47. The system of
obtaining information related to the executable program includes obtaining engineering drawings of a part to be measured.
48. The system of
obtaining information related to the executable program includes obtaining a description of features of a part to be measured.
49. The system of
obtaining information related to the executable program includes obtaining a description of reference features of a part to be measured.
50. The system of
obtaining information related to the executable program includes obtaining a description of the measurement environment.
51. The system of
obtaining information related to the executable program includes obtaining a a description of a report to be generated by the executable program.
52. The system of
a controller for prompting the operator to select an experience level; the controller selecting one of a plurality of executable programs in response to the experience level to define a selected executable program; and, the controller executing the selected executable program, wherein for a first experience level, the selected executable program consists essentially of audio and video to direct the operator through the inspection procedure.
53. The coordinate measurement system of
54. The coordinate measurement system of
55. The system of
a measurement portion to measure a feature associated with the part; a controller executing an executable program directing the operator through a procedure; a display coupled to the controller, the display presenting a digital image of the part and a measurement indicator, the measurement indicator directing the operator to position the measurement portion adjacent a measurement location on the part.
56. The coordinate measurement system of
57. The coordinate measurement system of
58. The coordinate measurement system of
59. The coordinate measurement system of
60. The coordinate measurement system of
61. The system of
a measurement portion for measuring a feature of a pad at a measurement location on the part; a controller receiving the measurement of the feature; and a display coupled to the controller, the display displaying an image of the part, the image of the part including a representation of the measurement location; the displaying adjacent to the image of the part an indication of the feature, the indication of the feature being positioned proximate to the representation of the measurement location.
65. The system of
66. The system of
67. The system of
the coordinate measurement system including a measurement portion for measuring the feature of the part, the coordinate measurement system including a controller for executing executable programs, the coordinate measurement system including a network interface; a further network coupled to the network interface; a server coupled to the further network, the server receiving a request from the coordinate measurement system for an executable program, the request including an operator identifier identifying the operator using the coordinate measurement system, the server restricting access or providing access to the executable program based on the operator identifier; the server delivering the executable program to the coordinate measurement system if access is available to the coordinate measurement system.
68. The system of
the coordinate measurement system including a measurement portion for measuring the feature of the part, the coordinate measurement system including a controller for executing executable programs, the coordinate measurement system including a network interface; a further network coupled to the network interface; a server coupled to the further network, the sewer receiving a request from the coordinate measurement system for an executable program, the request including a coordinate measurement system identifier identifying the coordinate measurement system requesting the executable program, the server restricting access or providing access to the executable program based on the coordinate measurement system identifier; the server delivering the executable program to the coordinate measurement system if access is available to the coordinate measurement system.
69. The system of
an executable program toolkit, the executable program toolkit generating an executable program for execution by the coordinate measurement system, the executable program toolkit inserting a site identifier in an executable program generated using the executable program toolkit; and the coordinate measurement system including a coordinate measurement system site identifier; wherein the coordinate measurement system executes the executable program in response to a comparison of the executable program site identifier and the coordinate measurement system site identifier.
70. The system of
72. The system of
the three dimensional coordinate measuring system includes an articulated arm.
|
This application claims the benefit of U.S. provisional patent application Ser. No. 60/178,926 filed Feb. 1, 2000, the entire contents of which are incorporated herein by reference, and claims the benefit of U.S. provisional patent application Ser. No. 60/229,423 filed Sep. 5, 2000, the entire contents of which are incorporated herein by reference.
The invention relates in general to coordinate measurement machines (CMMs) and in particular to method and system for providing an executable program to a controller for use in coordinate measuring system.
The manufacturing/industrial marketplace took on a new face during the 1980's with the introduction of computer-aided design (CAD) and computer-aided manufacturing (CAM). While CAD allowed engineers to produce 3-D images in the front end of the design process, which shortened the production cycle and led to tremendous gains in productivity, CAM software and equipment increased the efficiency and quality of machined single parts. In essence, these new technologies revolutionized the marketplace by increasing productivity, improving quality and reducing costs.
Despite these technological advances in design and manufacturing, something important was missing from the production cycle: a highly accurate, efficient, and convenient measurement methodology for ensuring that the products and components--both on and off the production line--met the original CAD specifications. The design process, with the help of CAD, had become innovative and sophisticated; so too, had the machining process through CAM. Yet measuring the assemblies made of these parts against the CAD model, for the most part, has continued to remain unwieldy, expensive and unreliable. Traditionally, the measurement and quality inspection function in the manufacturing process has been time-consuming and limited in size, scope, and effectiveness for a number of reasons. Manual measurement tools, such as calipers and scales may be slow, imprecise, and always one-dimensional. Analog test fixtures are costly and inflexible. Standard, non-portable coordinate measurement machines (CMM), while providing a high degree of precision, are generally located in quality control labs or inspection departments at a distance from the manufacturing floor. Parts must be removed one at a time and transported to the lab for inspection. As a result, these CMMs measure only small, readily-moved subassemblies and components--which often translates into significant "down time" for the production line. In essence, traditional measurement techniques--also known as metrology--have lagged far behind in the technological advance of the production process.
The CAD/CAM and metrology markets, as well as a worldwide emphasis on quality in all aspects of the manufacturing process, are driving the need for an extension of the CAD/CAM techniques which is referred to as computer-aided manufacturing measurement. Computer-aided manufacturing measurement is CAD-based total quality assurance technology. This last phase of the CAD revolution has remained incomplete because of the significant technical demands for adaptive measurement hardware and usable CAD-based measurement software for the difficult manufacturing environment. Computer-aided manufacturing measurement takes conventional metrology from a single-parts-only, high-level precision testing methodology--behind the door of the quality control lab--to a whole products, intermediate-level precision measurement system at every step of the manufacturing process--at any location on the factory floor. Measurements of part dimensions and/or characteristics may be made on the production floor to determine compliance with specifications and ensure quality.
An improvement to the three dimensional coordinate measuring system of FIG. 1 is described in U.S. Pat. No. 5,978,748, the contents of which are incorporated herein by reference. This patent discloses a system in which a controller is mounted to the arm and runs an executable program which directs the user through a process such as an inspection procedure. In such a system, a host computer may be used to generate the executable program. The controller mounted to the arm is used to run the executable program but cannot be used to create executable programs or modify executable programs. By way of analogy to video gaming systems, the host computer serves as the platform for writing or modifying a video game and the arm mounted controller serves as the platform for playing a video game. The controller (e.g., player) cannot modify the executable program. As described in U.S. Pat. No. 5,978,748, this results in a lower cost three dimensional coordinate measurement system by eliminating the need for a host computer for each articulated arm. There is a need, however, for a method and system for delivering executable programs to users of coordinate measurement systems. Such a method and system would render the coordinate measurement system more versatile and readily adaptable to computer-aided manufacturing measurement.
An exemplary embodiment of the invention is a method of providing an executable program from an executable program provider to a customer for use in a controller of a three dimensional coordinate measurement system. The method includes receiving a request to create an executable program from a customer and obtaining information related to the executable program. The executable program is developed which guides an operator through a number of measurement steps to be performed with the three dimensional coordinate measuring system. The executable program is delivered to the customer.
The above-discussed and other features and advantages of the present invention will be appreciated and understood by those skilled in the art from the following detailed description and drawings.
Referring now to the drawings wherein like elements are numbered alike:
The controller 40 includes a processor 26 and static random access memory (SRAM) 28 for storing instructions to be executed by processor 26. One or more executable programs may be stored in memory 28. An exemplary executable program is an inspection protocol that directs the operator through an inspection procedure. Another type of executable program is a tutorial for introducing an operator to the arm 12 and its operation. It is understood that other types of executable programs (calibration, diagnostic, etc.) may be stored in memory 28. The executable programs typically direct a human operator to manipulate the arm 12 to record certain measurements. The user can select a particular executable program from a menu presented on the user interface 20 as described herein. Controller 40 also stores reference (e.g. CAD) data. The reference data may be an entire CAD file corresponding to an entire object to be measured or just portions of the CAD data. As described in further detail, the controller 40 compares measurements from the arm 12 to reference data to generate reports.
A communication device 30 (for example a universal asynchronous receiver/transmitter) enables communication from the controller 40 to outside devices such as a computer storing an executable program for upload onto controller 40. This allows the executable programs to be uploaded into the controller 40 through communication device 30. In addition, the actual measurement data and the results of the comparisons of the actual data to reference data can be downloaded to a host computer and stored. Flash memory 32 stores program instructions and arm parameters permanently. A lattice complex programmable logic device (CPLD) 36 and associated electrically erasable programmable read only memory (EEPROM) 34 are also included in the controller 24. The CPLD 36 contains interconnection logic between the components of controller 24. The particular memory devices shown in
As shown in
A storage device 50 is coupled to the controller 40 for multiple functions. The storage device 50 may be any type of storage device including a floppy disc drive, compact disc drive, etc. The storage device 50 may be used to upload executable programs and/or reference data to the memory 28 in controller 40. In addition, the controller 40, in performing an executable program, may access the storage device 50 to present video and/or audio to the operator. This reduces the amount of memory required in controller 40 due the large memory requirements for video.
The user interface 20 includes a visual display 62, an input device 64 and an audio output device 66. The visual display 62 may be any type of display device such as a CRT (including flat CRT's), an LCD display, etc. The input device 64 may be any type of known input peripheral such as a keyboard, mouse, track ball, etc. Alternatively, the input device 64 can be implemented in conjunction with the visual display 62 by using a touch screen which provides visual information to the operator and receives input from the operator. The audio output device 66 may include a speaker and associated components such as a sound card.
To operate the arm through an inspection process, the controller 40 runs an executable program stored in memory 28. The controller 40 presents the operator with instructions through the user interface 20. To perform such a process, an executable program needs to be provided in the controller 40.
Once the provider of the executable program has received the request, the executable program is developed at step 102. The executable program provider may be the supplier of the coordinate measuring system 10 or a third party commissioned solely to generate executable programs. A variety of information may be used to create the executable program. Exemplary information includes engineering drawings (e.g., blueprints, CAD drawings, etc.) of the part to be measured. Additional information includes a description of the features of the part to be measured and a description of reference features, both provided by diagrams, sketches, digital images or a list of features. A description of the measurement environment (i.e., where the arm is to be used) may be provided through drawings, sketches or digital images. The executable program will also generate a report indicating the result of the measurement. Thus, a description of the report or a list of features contained in the report may also be used to generate the executable program. It is understood that the information used to generate the executable program will vary depending on the application of the coordinate measuring system 10.
To generate the executable program, an individual may travel to the customer's site, review the application in which the arm is to be used and develop an executable program. This may involve obtaining video, still images (e.g., from a digital camera), audio, engineering drawings and text to be used in the executable program. For example, if the coordinate measuring system is to be used to inspect an automobile panel, the executable program would be developed to present the operator with a series of images and audio instructing the operator to measure predefined points on the panel. The executable program may initiate comparison of the actual data provided by the arm 12 to reference data stored in the controller 40 to generate a report indicating whether the panel meets specification. The individual may use a portable host computer to generate the executable program at the customer's site.
Generation of the executable program may also be done remotely from the customer site. In this scenario, the customer will acquire the information described above and provide this information to the executable program provider. The transfer of the information may be implemented using a user system 200 coupled to an executable program provider system 202 via network 204 as shown in FIG. 5. The executable program provider will then generate the executable program based on this information and deliver the executable program to the user system 202 as described herein with reference to FIG. 5.
Once the executable program is generated, flow proceeds to step 104 where the customer views the execution of the executable program and approves the executable program. If the executable program provider is at the customer's site, the customer can view the executable using the coordinate measurement system 10 into which the executable has been loaded in memory 28. Alternatively, the executable program can be run on a general-purpose computer at the customer's site for review by the customer. If the executable program is generated at a location remote from the customer's site, the customer can review the executable program remotely via a network such as the Internet.
Once the customer has approved the executable program, flow proceeds to step 106 where it is determined whether the customer already has a coordinate measurement system 10 at its facility. If not, flow proceeds to step 108 where the executable program is installed in a coordinate measurement system 10 and the system 10 is delivered to the customer site at step 110. If the customer has a coordinate measurement system 10 at its facility, step 106 leads to step 112 where the executable program is delivered to the customer. Delivery may occur electronically over a network or by physically delivering a storage medium (e.g., CD ROM) to the customer. The customer then installs the executable program in the controller 40 at step 114. Referring to
Once the executable program is installed in the controller 40, an operator may use the coordinate measurement system 10 to measure points in three-dimensional space. When the coordinate measurement system 10 is initiated, the operator is prompted to select an executable program for execution. Controller 40 may include a tutorial executable program which familiarizes the operator with operation of the arm 12. The tutorial executable program guides the operator though a series of steps in which the operator takes measurements with the arm 12. Once the operator has completed the tutorial, the operator selects an executable program and performs the steps dictated by the executable program. This may include measuring points in three-dimensional space on an object by placing a measurement portion of the arm in contact with the object. Alternatively, the measuring may include measuring a characteristic. For example, the measurement portion may include a sensor (e.g., light, oxygen, heat, etc.) and the operator is prompted to measure this characteristic at one or more locations. The term feature is used herein to generally refer to any measurable quantity such as coordinates, dimensions, characteristics, etc. A feature may also include sensed parameters such as presence of oxygen, heat, etc. Additional details regarding measurement of a feature are found in U.S. Pat. No. 5,412,880, the entire contents of which are incorporated herein by reference.
The operator may also select an experience level for the executable program. For example, the operator may be prompted to specify whether the operator is novice, intermediate or advanced with respect to the tasks to be completed in accordance with the executable program. A separate executable program can be generated for each level of operator experience. Alternatively, a portion of the executable program may be executed based on the level of operator experience. For example, a novice operator may be provided with video and sound (e.g., the operator is audibly instructed to measure the location of a bolt and is presented with a video depicting measurement of the bolt location). An intermediate operator may be provided with still images and sound (e.g., the operator is audibly instructed to measure the location of a bolt and is presented a still picture of the bolt). An advanced operator may be presented with just sound (e.g., the operator is audibly instructed to measure the location of a bolt).
Once the operator has initiated the executable program, the operator takes measurements pursuant to instructions presented on the user interface 20. As described above, the measurements may be three-dimensional coordinates of points or may be a characteristic (e.g., temperature) and a three dimensional location. As described in U.S. Pat. No. 5,978,748, the actual data produced by the arm and any sensor (if used) is compared to reference data stored in the controller 40. A report can then be generated indicating whether the actual data meets specified criteria and provide statistical information regarding the measurements. The report can be saved in memory 28 or storage device 50 for subsequent transfer to a host computer. In addition, the report can be displayed immediately to the operator at user interface 20.
In an exemplary implementation, the coordinate measurement system 10 will be rented by a customer. The controller 40 includes an expiration code in, for example, memory 28 which indicates when the rental period expires (e.g., the final day of a one year lease). Once the lease period has ended the coordinate measurement system 10 will not operate. The controller 40 may compare the current date to the date contained in the expiration code. The expiration code may be encrypted so that a customer cannot generate unauthorized expiration codes. The controller 40 notifies the customer a predetermined time period prior to expiration of the lease period that a new code should be obtained. The customer can purchase an updated expiration code over a network as shown in
As described above with respect to
Users can log in and access more features of the executable program provider system 202 through login area 320. As known in the art, a user system 200 submits a user name and password to the executable program provider system 202 over network 204 to gain access to the executable program provider system 202. The user name and password controls the level of access as described herein. The user can review their transaction history and review/edit their user information and company information through a user information area 330.
A technical interview area 340 is used to gather information relating to the executable program or tool to be generated. The user is lead through a series of questions concerning the user's application. Such questions may include a description of the features to be measured, part dimensions, part datum's, CAD data format, etc.
Once the user has defined the requirements for the new tool, the user uploads the tool description along with any associated information (CAD files, images, drawings, etc.) to the executable program provider system 202 through a tools utilities area 350. As shown in tools utility area 350, a user can upload tool construction materials to the executable program provider system 202. An executable program provider (e.g., an applications engineer or A.E.) downloads the tool construction materials from the executable program provider system 202 and creates the tool as described herein. The executable program provider then uploads the completed tool to the executable program provider system 202 and the user can then download the tool. The user can also obtain expiration codes for tools to enable functionality of the tool as described herein.
Once a user has a tool at its site, the tool can be saved in a storage device and executed by controller 40.
Once the operator logs in, the operator needs to select a tool or executable program for execution. The tool may guide the operator through an inspection procedure.
Once the part serial number is entered, the part can then be inspected.
Once measurements have been taken, a number of reports can be generated.
Selecting an SPC report icon in the SPC report window 510 provides the user with an SPC report such as that shown in FIG. 14. An SPC report 532 may be generated for each feature measured on a plurality of parts to detect trends. A representation of the measurement location 530 for the measured feature is shown on the image 531 of the part. The SPC report 532 is displayed adjacent to the image 531 of the part and is positioned proximate to the representation of the measurement location. Report parameters may be changed through drop down menus 540. The SPC report may include high limits, low limits and a plot of prior measurements for a feature. The feature may be a dimension (a diameter of a hole) or a characteristic (e.g., circularity of a hole, planarity of a surface). The SPC reports can be enlarged to a full screen display by selecting the report. The SPC report allows a user to view trends in measurements which may require corrective action.
Selecting a table report icon in the table report window 520 provides the user with a tabular report such as that shown in FIG. 15. The tabular report 534 may be generated for each feature measured on a single part. A representation of the measurement location 530 for the measured feature is shown on the image 531 of the part. The tabular report 534 is displayed adjacent to the image of the part and is positioned proximate to the representation of the measurement location 530. The user can change the part number through part number field 550. The tabular report for each feature provides the feature specified value, tolerance, feature measured value and an indicator of whether the measured feature is out of specification. The feature may be a dimension (a diameter of a hole) or a characteristic (e.g., circularity of a hole). The table reports 534 can be enlarged to a full screen display by selecting the report.
Execution of the report functions is not limited to controller 40 associated with arm 12. The measurement data in storage device 50 may be accessed by other systems distanced from the inspection area (e.g., factory floor). For example, the storage device 50 may be accessible via a company intranet through personal computers. A personal computer can execute the reporting software application used to generate reports based on the measurement data. For example, a manufacturing engineer remote from the factory floor can generate SPC reports based on measurement data in storage device 50 to evaluate and adjust a manufacturing process accordingly.
The measurement interface also includes an alternate measurement indicator 604. The measurement indicator 604 directs the operator to the proper location on the physical part for measurement. The measurement indicator 604 is also a three-dimensional object such as a colored (e.g., green) ball and can be positioned in any position with respect to the part 602. The part 602 may have an exterior surface and one or more interior surfaces. Thus, the measurement indicator 604 can be placed adjacent to or on an interior surface of the part 602. For example, to measure the interior circularity of hole 606, the measurement indicator 604 is displayed within the hole 606 along multiple positions on the interior surface of hole 606. This accurately directs the operator to measurement positions on the physical part. An instruction window 608 also provides measurement instructions to the operator.
A server 652 is also connected to the network 650 and provides for storage of executable programs. The server 652 may store executable programs for an entire facility. An operator can log onto a coordinate measurement system 10 and be presented with a list of executable programs authorized for that operator. The server 652 controls access to executable programs through the operator's identifier (e.g., user identification and password). For example, a database accessed by server 650 correlates operator's identifiers with executable programs. Only executable programs associated with the operator identifier may be transferred to the requesting coordinate measurement system 10. Through this mechanism, operator access to executable program is controlled.
Each coordinate measurement system 10 may also be identified by a unique coordinate measurement system identifier (e.g., serial number) which is accessible by server 652. When an operator logs in through a coordinate measurement system 10 and requests an executable program from server 652, the server 652 compares the coordinate measurement system identifier to a database correlating coordinate measurement system identifiers to executable programs. Only executable programs associated with the coordinate measurement system identifier may be transferred to the coordinate measurement system 10.
The executable program can then be transferred to controller 40 in the coordinate measurement system 10 for execution. This architecture is helpful in managing executable programs. As described above with reference to
In another embodiment of the invention, the user of the coordinate measurement system 10 can generate executable programs using an executable toolkit provided by the executable program provider. The executable toolkit is a software application that allows a user to generate executable programs without having to contact the executable program provider.
In a preferred embodiment, the executable toolkit is provided to a user and licensed for use in generating executable programs for a single facility. For example, an executable toolkit may be licensed to an auto manufacturer for developing executable programs for a single factory. The license would not allow the user to generate executable programs for multiple sites. To ensure compliance with the license terms, each coordinate measurement system 10 can be programmed with an unalterable, site identifier prior to shipment to the user. The site identifier may be stored in read only, non-volatile memory in controller 40. Similarly, the executable toolkit includes a software routine that inserts an executable program site identifier in each executable program generated using the executable toolkit. When a coordinate measurement system 10 accesses an executable program for execution, the coordinate measurement system site identifier in the coordinate measurement system 10 is compared with the executable program site identifier. If these identifiers do no match, execution of the executable program by the coordinate measurement system 10 is prevented. Thus, executable programs generated at a first site cannot be executed by coordinate measurement system 10 at a second site.
As described above, the present invention can be embodied in the form of computer-implemented processes and apparatuses for practicing those processes. The present invention can also be embodied in the form of computer program code containing instructions embodied in tangible media, such as floppy diskettes, CD-ROMs, hard drives, or any other computer-readable storage medium, wherein, when the computer program code is loaded into and executed by a computer, the computer becomes an apparatus for practicing the invention. The present invention can also be embodied in the form of computer program code, for example, whether stored in a storage medium, loaded into and/or executed by a computer, or transmitted over some transmission medium, such as over electrical wiring or cabling, through fiber optics, or via electromagnetic radiation, wherein, when the computer program code is loaded into and executed by a computer, the computer becomes an apparatus for practicing the invention. When implemented on a general-purpose microprocessor, the computer program code segments configure the microprocessor to create specific logic circuits.
While preferred embodiments have been shown and described, various modifications and substitutions may be made thereto without departing from the spirit and scope of the invention. Accordingly, it is to be understood that the present invention has been described by way of illustration and not limitation.
Raab, Simon, Pearce, Robert, Adams, Scott, Perreault, Daniel, Perez, Orlando, Atwell, Paul, Mymudes, Shaun, Steffey, Ken
Patent | Priority | Assignee | Title |
10036627, | Sep 19 2014 | HEXAGON METROLOGY, INC | Multi-mode portable coordinate measuring machine |
10060722, | Jan 20 2010 | Faro Technologies, Inc. | Articulated arm coordinate measurement machine having a 2D camera and method of obtaining 3D representations |
10066922, | Jan 29 2014 | Mitutoyo Corporation | Manual measuring system |
10067231, | Oct 05 2012 | FARO TECHNOLOGIES, INC | Registration calculation of three-dimensional scanner data performed between scans based on measurements by two-dimensional scanner |
10175037, | Dec 27 2015 | FARO TECHNOLOGIES, INC | 3-D measuring device with battery pack |
10203413, | Oct 05 2012 | Faro Technologies, Inc. | Using a two-dimensional scanner to speed registration of three-dimensional scan data |
10281259, | Jan 20 2010 | Faro Technologies, Inc. | Articulated arm coordinate measurement machine that uses a 2D camera to determine 3D coordinates of smoothly continuous edge features |
10317186, | Jun 11 2014 | Hexagon Metrology, Inc. | Articulating CMM probe |
10337853, | Oct 16 2008 | Hexagon Metrology, Inc. | Articulating measuring arm with laser scanner |
10663284, | Sep 19 2014 | Hexagon Metrology, Inc. | Multi-mode portable coordinate measuring machine |
10739458, | Oct 05 2012 | Faro Technologies, Inc. | Using two-dimensional camera images to speed registration of three-dimensional scans |
10830583, | Jul 28 2014 | Carl Zeiss Industrielle Messtechnik GmbH | Method for creating a measurement protocol and computer for performing the same |
11029142, | Oct 16 2008 | Hexagon Metrology, Inc. | Articulating measuring arm with laser scanner |
11035955, | Oct 05 2012 | Faro Technologies, Inc. | Registration calculation of three-dimensional scanner data performed between scans based on measurements by two-dimensional scanner |
11112501, | Oct 05 2012 | Faro Technologies, Inc. | Using a two-dimensional scanner to speed registration of three-dimensional scan data |
11215442, | Sep 19 2014 | Hexagon Metrology, Inc. | Multi-mode portable coordinate measuring machine |
11815600, | Oct 05 2012 | Faro Technologies, Inc. | Using a two-dimensional scanner to speed registration of three-dimensional scan data |
6796048, | Feb 01 2001 | FARO TECHNOLOGIES, INC | Method, system and storage medium for providing a tool kit for a coordinate measurement system |
6820346, | Feb 01 2000 | Faro Technologies, Inc. | Method, system and storage medium for providing an executable program to a coordinate measurement system |
6826510, | Nov 14 2002 | General Electric Company | Method, system and computer product for performing geometric dimension and tolerance stack-up analysis |
6879933, | Nov 16 2001 | FARO TECHNOLOGIES, INC | Method and system for assisting a user taking measurements using a coordinate measurement machine |
7051447, | Feb 28 2003 | Kosaka Laboratory Ltd. | System and method for measuring coordinate using multi-joint arm |
7327869, | Jun 21 2004 | The Boeing Company | Computer aided quality assurance software system |
7908757, | Oct 16 2008 | HEXAGON METROLOGY, INC | Articulating measuring arm with laser scanner |
8001697, | Jan 20 2010 | Faro Technologies, Inc. | Counter balance for coordinate measurement device |
8028432, | Jan 20 2010 | Faro Technologies, Inc. | Mounting device for a coordinate measuring machine |
8099877, | Nov 06 2009 | HEXAGON AB; HEXAGON TECHNOLOGY CENTER GMBH | Enhanced position detection for a CMM |
8104189, | Jun 30 2009 | HEXAGON AB; HEXAGON TECHNOLOGY CENTER GMBH | Coordinate measurement machine with vibration detection |
8122610, | Mar 28 2008 | HEXAGON METROLOGY, INC | Systems and methods for improved coordination acquisition member comprising calibration information |
8171650, | Jan 20 2010 | FARO TECHNOLOGIES, INC | Intelligent repeatable arm mounting system |
8176646, | Oct 16 2008 | Hexagon Metrology, Inc. | Articulating measuring arm with laser scanner |
8220173, | Jun 30 2009 | HEXAGON AB; HEXAGON TECHNOLOGY CENTER GMBH | Coordinate measurement machine with vibration detection |
8276286, | Jan 20 2010 | FARO TECHNOLOGIES, INC | Display for coordinate measuring machine |
8284407, | Jan 20 2010 | Faro Technologies, Inc. | Coordinate measuring machine having an illuminated probe end and method of operation |
8327555, | Nov 06 2009 | HEXAGON AB; HEXAGON TECHNOLOGY CENTER GMBH | Enhanced position detection for a CMM |
8384250, | Aug 01 2008 | Verizon Patent and Licensing Inc | Computer-controlled connector-panel system |
8438747, | Oct 16 2008 | Hexagon Metrology, Inc. | Articulating measuring arm with laser scanner |
8533967, | Jan 20 2010 | Faro Technologies, Inc. | Coordinate measurement machines with removable accessories |
8537374, | Jan 20 2010 | Faro Technologies, Inc. | Coordinate measuring machine having an illuminated probe end and method of operation |
8601702, | Jan 20 2010 | Faro Technologies, Inc. | Display for coordinate measuring machine |
8615893, | Jan 20 2010 | Faro Technologies, Inc. | Portable articulated arm coordinate measuring machine having integrated software controls |
8630314, | Jan 11 2010 | Faro Technologies, Inc.; FARO TECHNOLOGIES, INC | Method and apparatus for synchronizing measurements taken by multiple metrology devices |
8638446, | Jan 20 2010 | Faro Technologies, Inc. | Laser scanner or laser tracker having a projector |
8677643, | Jan 20 2010 | FARO TECHNOLOGIES, INC | Coordinate measurement machines with removable accessories |
8683709, | Jan 20 2010 | Faro Technologies, Inc. | Portable articulated arm coordinate measuring machine with multi-bus arm technology |
8763266, | Jan 20 2010 | Faro Technologies, Inc. | Coordinate measurement device |
8832954, | Jan 20 2010 | FARO TECHNOLOGIES, INC | Coordinate measurement machines with removable accessories |
8875409, | Jan 20 2010 | FARO TECHNOLOGIES, INC | Coordinate measurement machines with removable accessories |
8898919, | Jan 20 2010 | FARO TECHNOLOGIES, INC | Coordinate measurement machine with distance meter used to establish frame of reference |
8942940, | Jan 20 2010 | Faro Technologies, Inc. | Portable articulated arm coordinate measuring machine and integrated electronic data processing system |
8955229, | Oct 16 2008 | Hexagon Metrology, Inc. | Articulating measuring arm with optical scanner |
8997362, | Jul 17 2012 | FARO TECHNOLOGIES, INC | Portable articulated arm coordinate measuring machine with optical communications bus |
9009000, | Jan 20 2010 | Faro Technologies, Inc. | Method for evaluating mounting stability of articulated arm coordinate measurement machine using inclinometers |
9021344, | Aug 31 2010 | HEXAGON AB; HEXAGON TECHNOLOGY CENTER GMBH | Off-line graphical user interface system and method for three-dimensional measurement |
9074883, | Mar 25 2009 | FARO TECHNOLOGIES, INC | Device for optically scanning and measuring an environment |
9113023, | Nov 20 2009 | FARO TECHNOLOGIES, INC | Three-dimensional scanner with spectroscopic energy detector |
9163922, | Jan 20 2010 | Faro Technologies, Inc.; FARO TECHNOLOGIES, INC | Coordinate measurement machine with distance meter and camera to determine dimensions within camera images |
9168654, | Nov 16 2010 | FARO TECHNOLOGIES, INC | Coordinate measuring machines with dual layer arm |
9210288, | Nov 20 2009 | FARO TECHNOLOGIES, INC | Three-dimensional scanner with dichroic beam splitters to capture a variety of signals |
9329271, | May 10 2010 | FARO TECHNOLOGIES, INC | Method for optically scanning and measuring an environment |
9372265, | Oct 05 2012 | FARO TECHNOLOGIES, INC | Intermediate two-dimensional scanning with a three-dimensional scanner to speed registration |
9417056, | Jan 25 2012 | FARO TECHNOLOGIES, INC | Device for optically scanning and measuring an environment |
9417316, | Nov 20 2009 | FARO TECHNOLOGIES, INC | Device for optically scanning and measuring an environment |
9513107, | Oct 05 2012 | FARO TECHNOLOGIES, INC | Registration calculation between three-dimensional (3D) scans based on two-dimensional (2D) scan data from a 3D scanner |
9529083, | Nov 20 2009 | FARO TECHNOLOGIES, INC | Three-dimensional scanner with enhanced spectroscopic energy detector |
9551558, | Nov 06 2009 | HEXAGON AB; HEXAGON TECHNOLOGY CENTER GMBH | Articulated arm |
9551575, | Mar 25 2009 | Faro Technologies, Inc. | Laser scanner having a multi-color light source and real-time color receiver |
9607239, | Jan 20 2010 | FARO TECHNOLOGIES, INC | Articulated arm coordinate measurement machine having a 2D camera and method of obtaining 3D representations |
9618330, | Oct 16 2008 | Hexagon Metrology, Inc. | Articulating measuring arm with laser scanner |
9618620, | Oct 05 2012 | FARO TECHNOLOGIES, INC | Using depth-camera images to speed registration of three-dimensional scans |
9628775, | Jan 20 2010 | FARO TECHNOLOGIES, INC | Articulated arm coordinate measurement machine having a 2D camera and method of obtaining 3D representations |
9684078, | May 10 2010 | FARO TECHNOLOGIES, INC | Method for optically scanning and measuring an environment |
9739886, | Oct 05 2012 | FARO TECHNOLGIES, INC | Using a two-dimensional scanner to speed registration of three-dimensional scan data |
9746559, | Oct 05 2012 | FARO TECHNOLOGIES, INC | Using two-dimensional camera images to speed registration of three-dimensional scans |
9759540, | Jun 11 2014 | HEXAGON METROLOGY, INC | Articulating CMM probe |
Patent | Priority | Assignee | Title |
5375206, | Mar 11 1991 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Method for licensing software |
5402582, | Feb 23 1993 | XENON RESEARCH, INC | Three dimensional coordinate measuring apparatus |
5696869, | Feb 07 1992 | NISSIM CORP | Variable-content-video provider system |
5724264, | Jul 16 1993 | Immersion Corporation | Method and apparatus for tracking the position and orientation of a stylus and for digitizing a 3-D object |
5978748, | Jul 07 1998 | Faro Technologies Inc | Host independent articulated arm |
6080207, | Jun 04 1998 | Gateway, Inc | System and method of creating and delivering software |
6167568, | Jun 30 1998 | Sun Microsystems, Incorporated | Method and apparatus for implementing electronic software distribution |
6189146, | Mar 18 1998 | Microsoft Technology Licensing, LLC | System and method for software licensing |
6298480, | Nov 20 1995 | U S PHILIPS CORPORATION | System for distributing computer programs |
6301707, | Sep 30 1997 | Aloft Media, LLC | Installing software based on a profile |
6347398, | Dec 12 1996 | Microsoft Technology Licensing, LLC | Automatic software downloading from a computer network |
6397385, | Jul 16 1999 | WSOU Investments, LLC | Method and apparatus for in service software upgrade for expandable telecommunications system |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Feb 01 2001 | Faro Technologies, Inc. | (assignment on the face of the patent) | / | |||
Mar 15 2001 | RAAB, SIMON | Faro Technologies Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 011814 | /0378 | |
Mar 15 2001 | PERREAULT, DANIEL | Faro Technologies Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 011814 | /0378 | |
Mar 15 2001 | STEFFEY, KEN | Faro Technologies Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 011814 | /0378 | |
Mar 15 2001 | PEARCE, ROBERT | Faro Technologies Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 011814 | /0378 | |
Mar 16 2001 | MYMUDES, SHAUN | Faro Technologies Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 011814 | /0378 | |
Mar 16 2001 | ADAMS, SCOTT | Faro Technologies Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 011814 | /0378 | |
Mar 19 2001 | PEREZ, ORLANDO | Faro Technologies Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 011814 | /0378 | |
Mar 19 2001 | ATWELL, PAUL | Faro Technologies Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 011814 | /0378 |
Date | Maintenance Fee Events |
Feb 14 2007 | STOL: Pat Hldr no Longer Claims Small Ent Stat |
Mar 02 2007 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Feb 10 2011 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Feb 18 2015 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Sep 02 2006 | 4 years fee payment window open |
Mar 02 2007 | 6 months grace period start (w surcharge) |
Sep 02 2007 | patent expiry (for year 4) |
Sep 02 2009 | 2 years to revive unintentionally abandoned end. (for year 4) |
Sep 02 2010 | 8 years fee payment window open |
Mar 02 2011 | 6 months grace period start (w surcharge) |
Sep 02 2011 | patent expiry (for year 8) |
Sep 02 2013 | 2 years to revive unintentionally abandoned end. (for year 8) |
Sep 02 2014 | 12 years fee payment window open |
Mar 02 2015 | 6 months grace period start (w surcharge) |
Sep 02 2015 | patent expiry (for year 12) |
Sep 02 2017 | 2 years to revive unintentionally abandoned end. (for year 12) |