3D scanner
The three-dimensional scanner automates the alignment of CAD data with three-dimensional data by calculating coordinate system correspondence, ensuring accurate and efficient alignment and analysis.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- KEYENCE CORP
- Filing Date
- 2024-10-07
- Publication Date
- 2026-04-17
AI Technical Summary
The alignment between CAD data and three-dimensional data of a workpiece is difficult and time-consuming, making it challenging to accurately associate their coordinate systems and perform geometric tolerance analysis.
A three-dimensional scanner that includes a reading unit for CAD data, a calculation unit for coordinate system correspondence, a display control unit for alignment, and an alignment unit to automatically align CAD data with three-dimensional data based on calculated positional relationships, facilitating easy and accurate alignment.
Enables accurate and automated alignment of CAD data with three-dimensional data, reducing user effort and improving the efficiency of geometric tolerance analysis.
Smart Images

Figure 2026066632000001_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to a three - dimensional scanner that generates three - dimensional data of various workpieces.
Background Art
[0002] For example, Patent Document 1 discloses a three - dimensional scanner that receives measurement light reflected by a workpiece to acquire image data and generates three - dimensional data of the workpiece based on the acquired image data.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] By the way, when it is desired to analyze the three - dimensional data of a workpiece using CAD data after designing the workpiece in CAD, alignment between the CAD data and the three - dimensional data is necessary, but it is difficult and time - consuming for the user to specify the alignment conditions between the CAD data and the three - dimensional data.
[0005] [[ID=3८]] That is, there is a problem that it is difficult to correctly scan the workpiece so that it matches the CAD data. Even if the workpiece can be correctly scanned, it is difficult to associate the coordinate systems of the three - dimensional data scanned for alignment and the CAD data. Also, in order to confirm the geometric tolerance requirements on the drawing, it is necessary to construct analysis settings on software, but the construction of analysis settings can only be carried out after the actual workpiece is completed and scanned.
[0006] The present disclosure is made in view of such points, and the object is to enable accurate and easy alignment between CAD data and three - dimensional data. [Means for solving the problem]
[0007] To achieve the above objective, one aspect of this disclosure may be based on a three-dimensional scanner that generates three-dimensional data of a workpiece. The three-dimensional scanner includes: a reading unit that reads CAD data of a workpiece stored in a storage unit; a calculation unit that calculates the correspondence between the coordinate system of the CAD data read by the reading unit and the scanner coordinate system; a display control unit that displays the CAD data on a display unit based on the correspondence obtained by the calculation unit; a calculation unit that identifies the orientation of the CAD data and calculates the relative positional relationship between the coordinate system of the CAD data corresponding to the identified orientation and the scanner coordinate system; an acquisition unit that acquires three-dimensional data of a workpiece; an alignment unit that aligns the CAD data read by the reading unit and the three-dimensional data of the workpiece obtained by the acquisition unit based on the relative positional relationship calculated by the calculation unit and the scanner coordinate system; and an analysis unit that performs analysis on the three-dimensional data of the workpiece obtained by the acquisition unit based on the alignment result by the alignment unit and the CAD data read by the reading unit.
[0008] In this configuration, the correspondence between the coordinate system of the CAD data and the scanner coordinate system is calculated, and the CAD data is displayed on the display unit based on the calculated correspondence. Furthermore, once the orientation of the CAD data is determined, the relative positional relationship between the coordinate system of the CAD data and the scanner coordinate system at the determined orientation is calculated, and based on the calculated relative positional relationship and the scanner coordinate system, the CAD data read by the reading unit and the 3D data of the workpiece are aligned, so that highly accurate alignment can be performed automatically without the user having to perform any alignment work. Then, based on the alignment results and the CAD data read by the reading unit, analysis is performed on the 3D data of the workpiece.
[0009] Furthermore, the three-dimensional scanner may include an analysis unit that includes an analysis preparation unit that assigns analysis settings to the three-dimensional data obtained by the acquisition unit, and an analysis execution unit that performs analysis on the three-dimensional data obtained by the acquisition unit based on the analysis settings assigned by the analysis preparation unit. The analysis preparation unit operates in analysis preparation mode when CAD data of a workpiece is read by the reading unit, and in analysis preparation mode, it assigns analysis settings to the CAD data obtained by the acquisition unit, creates a file associating the assigned analysis settings with the CAD data, and stores it in the storage unit. The analysis execution unit reads the file created in analysis preparation mode by the analysis preparation unit from the storage unit and performs analysis on the three-dimensional data of the workpiece obtained by the acquisition unit based on the analysis settings contained in the file.
[0010] Furthermore, the three-dimensional scanner may include an analysis preparation unit that operates in the following modes: an actual measurement analysis mode in which analysis settings are assigned to the three-dimensional data obtained by the acquisition unit; and an analysis preparation mode in which analysis settings are assigned to the CAD data contained in the file read out by the reading unit, and a CAD analysis template file is created that associates the analysis settings with the CAD data and stored in the storage unit; and an analysis execution unit that, when the analysis preparation unit is operating in the actual measurement analysis mode, performs analysis on the three-dimensional data obtained by the acquisition unit based on the analysis settings assigned by the analysis preparation unit, and when it is operating in the analysis preparation mode, performs analysis on the three-dimensional data obtained by the acquisition unit based on the analysis settings contained in the CAD analysis template file read out by the reading unit.
[0011] Furthermore, the three-dimensional scanner may include: a reading unit that reads CAD data of a workpiece stored in a memory unit; a calculation unit that calculates the correspondence between the coordinate system of the CAD data and the scanner coordinate system based on the CAD data read by the reading unit; a display control unit that displays the CAD data and the scan head on a display unit based on the correspondence obtained by the calculation unit; a calculation unit that identifies the positional relationship between the CAD data and the scan head based on the display on the display unit and calculates the relative positional relationship between the coordinate system of the CAD data and the scanner coordinate system corresponding to the identified positional relationship; an acquisition unit that acquires three-dimensional data of the workpiece; an alignment unit that aligns the CAD data read by the reading unit with the three-dimensional data of the workpiece obtained by the acquisition unit based on the relative positional relationship calculated by the calculation unit and the scanner coordinate system; and an analysis unit that performs analysis on the three-dimensional data of the workpiece obtained by the acquisition unit based on the alignment result by the alignment unit and the CAD data read by the reading unit. [Effects of the Invention]
[0012] As explained above, according to this disclosure, the relative positional relationship between the coordinate system of the CAD data and the scanner coordinate system is calculated, and the alignment of the CAD data and the three-dimensional data of the workpiece is automatically performed based on the calculated relative positional relationship and the scanner coordinate system. Therefore, the alignment of the CAD data and the three-dimensional data can be performed accurately and easily. [Brief explanation of the drawing]
[0013] [Figure 1] Figure 1 shows the overall configuration of a three-dimensional scanner according to an embodiment of the present invention. [Figure 2] Figure 2 is a block diagram of the three-dimensional scanner. [Figure 3] Figure 3 is a side view of the measuring section and the base section. [Figure 4] Figure 4 is a block diagram of the measurement unit. [Figure 5] Figure 5 is a block diagram of the controller. [Figure 6A] FIG. 6A is a diagram showing a general tessellation example of CAD data. [Figure 6B] FIG. 6B is a diagram showing a work corresponding to CAD scanned and meshed. [Figure 7A] FIG. 7A is a diagram showing meshed scan data. [Figure 7B] FIG. 7B is a diagram showing polygon data of an example after tessellation with respect to CAD data. [Figure 8A] FIG. 8A is a diagram showing a comparative example in which a plane region is extracted from unevenly tessellated shape data. [Figure 8B] FIG. 8B is an implementation diagram showing an example in which a plane region is extracted from evenly tessellated shape data. [Figure 9] FIG. 9 is a diagram showing an example of a user interface screen displaying CAD data. [Figure 10A] FIG. 10A is a configuration diagram of a CAD analysis template. [Figure 10B] FIG. 10B is a configuration diagram of scan result data. [Figure 10C] FIG. 10C is a configuration diagram of analysis condition data. [Figure 11] FIG. 11 is a diagram showing an example of a user interface screen displaying setting items related to analysis. [Figure 12] FIG. 12 is a diagram corresponding to FIG. 5 when an analysis template is incorporated. [Figure 13] FIG. 13 is a flowchart showing an example of the process of CAD scan. [Figure 14] FIG. 14 is a diagram showing an example of a user interface screen for displaying alignment results. [Figure 15] FIG. 15 is a flowchart showing an example of the process of acquiring three-dimensional data of a work. [Figure 16] FIG. 16 is a flowchart showing an example of performing alignment in the first scan. [Figure 17]Figure 17 is a flowchart of the subroutine used when performing alignment during the first scan. [Figure 18] Figure 18 is a flowchart showing an example of the alignment process. [Figure 19] Figure 19 is a flowchart showing an example of the analysis process. [Figure 20] Figure 20 is a mode branching flowchart for the analysis preparation section. [Figure 21] Figure 21 is a color map based on the difference in dimensions between the scan data and CAD data of the workpiece. [Figure 22A] Figure 22A shows an example of performing cross-sectional measurements on scan data of a workpiece. [Figure 22B] Figure 22B shows an example of performing cross-sectional measurements on CAD data of a workpiece. [Figure 23] Figure 23 is a flowchart showing an example of the alignment function's processing. [Figure 24] Figure 24 is a flowchart showing an example of virtual object rotation processing using mouse dragging. [Figure 25] Figure 25 is a flowchart showing an example of the process for adjusting the positional relationship between a virtual object and the virtual ground. [Figure 26] Figure 26 is a flowchart showing an example of stage surface detection processing. [Figure 27] Figure 27 is a flowchart illustrating an example of the processing of the alignment function when a virtual object is rotated and moved. [Figure 28] Figure 28 is a flowchart illustrating an example of the process when a virtual object rotates and moves while the virtual inclined table is enabled. [Figure 29] Figure 29 is a flowchart illustrating another example of the process when a virtual object rotates and moves while the virtual tilting platform is enabled. [Figure 30] Figure 30 is a flowchart showing an example of the process for adjusting the positional relationship between a virtual object, a virtual ground, and a virtual inclined platform. [Modes for carrying out the invention]
[0014] Embodiments of the present invention will be described in detail below with reference to the drawings. The following description of preferred embodiments is essentially illustrative and is not intended to limit the present invention, its applications, or its uses.
[0015] Figure 1 shows the overall configuration of a three-dimensional scanner 1 according to an embodiment of the present invention. The three-dimensional scanner 1 is a device capable of generating three-dimensional data of a workpiece (object to be measured) W by measuring its shape, acquiring the generated three-dimensional data, converting it into mesh data of the workpiece W, and outputting it. The three-dimensional scanner 1 can also convert the mesh data of the workpiece W into CAD data and output it, or convert the mesh data into surface data and output it.
[0016] In the following description, when measuring the shape of a workpiece W, coordinate information of the workpiece W surface is obtained by irradiating the workpiece W with a predetermined pattern of measurement light and using the signal obtained from the reflected light reflected from the surface of the workpiece W. For example, as the predetermined pattern of measurement light, a measurement method using triangulation with a fringe projection image obtained from the reflected light, which is projected onto the workpiece W, can be used. However, in this invention, the principle and configuration for obtaining the coordinate information of the workpiece W are not limited to this, and other methods can also be applied.
[0017] The three-dimensional scanner 1 includes a measuring unit 100 for measuring the shape of a workpiece W, a base unit 600 on which the workpiece W can be placed, a controller 200, a light source unit 300, and a display unit 400, etc. The controller 200 may be incorporated into the measuring unit 100, the light source unit 300 may be incorporated into the measuring unit 100, or the display unit 400 may be incorporated into the measuring unit 100. Furthermore, the controller 200 and the light source unit 300 may be integrated, or the controller 200 and the display unit 400 may be integrated.
[0018] The three-dimensional scanner 1 uses a light source unit 300 to provide structured illumination to the workpiece W, captures a fringe projection image, generates a depth image containing coordinate information, and can measure the three-dimensional dimensions and shape of the workpiece W based on this image. Measurement using such fringe projection has the advantage of shortening measurement time because it allows for three-dimensional measurement without moving the workpiece W or optical systems such as lenses in the Z direction (height direction).
[0019] Figure 2 shows a block diagram of a three-dimensional scanner 1 according to an embodiment of the present invention. As shown in this figure, the measurement unit 100 includes a pattern light projection unit (first projection unit) 110 that projects pattern light for measurement onto the workpiece W, a light receiving unit 120, a measurement control unit 150, and an illumination light output unit 130. The projection unit 110 is the part that irradiates the workpiece W, which is placed on the mounting unit 140 (described later), with measurement light having a predetermined pattern. Placing the workpiece W on the mounting unit 140 is the same as arranging the workpiece W on the mounting unit 140.
[0020] The light-receiving unit 120 is fixed in an inclined position with respect to the mounting surface 142 of the rotating stage 143, which will be described later. The light-receiving unit 120 receives the measurement light that is irradiated by the light-emitting unit 110 and reflected by the workpiece W. When the light-receiving unit 120 receives the measurement light as reflected light from the workpiece W, it generates and outputs a first measurement reception signal that represents the amount of measurement light received. The light-receiving unit 120 can generate an observation image for observing the overall shape of the workpiece W by imaging the workpiece W placed on the mounting unit 140. In this example, there is an illumination light output unit 130, but uniform light may be irradiated onto the workpiece W from the light-emitting unit 110. In this case, the light-emitting unit 110 is a component that irradiates the workpiece W with measurement light and uniform light at different timings. The light-receiving unit 120 can also receive the uniform light irradiated from the light-emitting unit 110 and output a second reception signal for texture acquisition. For example, it is also possible to irradiate the measurement light source with uniform light of the same wavelength as the measurement light and output a received signal containing uniaxial color information. Although not shown in the diagram, it is also possible to prepare a first camera and a second camera that are calibrated, acquire the shape with the first camera and acquire texture information with the second camera. The texture information includes color information and brightness information of the workpiece W.
[0021] The light-receiving unit 120 according to this embodiment includes a high-magnification light-receiving unit and a low-magnification light-receiving unit. The high-magnification light-receiving unit is the part of the workpiece W that can be imaged at a magnified view compared to the low-magnification light-receiving unit. On the other hand, the low-magnification light-receiving unit is a light-receiving unit with a wider field of view compared to the high-magnification light-receiving unit.
[0022] The base unit 600 comprises a base plate 602, a mounting unit 140, and a movement control unit (stage control unit) 144. The mounting unit 140 is supported on the base plate 602 of the base unit 600. The movement control unit 144 controls the movement and rotation of the rotating stage 143 on which the workpiece W is placed. The movement control unit 144 may be provided on the base unit 600 side or on the controller 200 side.
[0023] The light source unit 300 is connected to the measurement unit 100. The light source unit 300 is the part that generates measurement light and supplies it to the measurement unit 100. The controller 200 is the part that controls the measurement unit 100 and the like. The display unit 400 is connected to the controller 200 and is configured to display the image generated by the measurement unit 100, and to allow necessary settings, inputs, selections, etc.
[0024] The mounting section 140 has a rotating stage 143 with a mounting surface 142 on its upper surface on which the workpiece W is placed. As shown in Figure 4, two mutually orthogonal directions within the mounting surface 142 of the rotating stage 143 are defined as the X direction and the Y direction, and are indicated by arrows X and Y, respectively. The direction perpendicular to the mounting surface 142 of the mounting section 140 is defined as the Z direction, and is indicated by arrow Z. The direction of rotation around an axis parallel to the Z direction is defined as the θ direction, and is indicated by arrow θ.
[0025] The mounting section 140 includes a rotating stage 143 that rotates the mounting surface 142 around an axis extending in the Z direction, and a translational stage 141 that moves the mounting surface 142 horizontally (in the X and Y directions). The translational stage 141 has an X-direction movement mechanism and a Y-direction movement mechanism. The rotating stage 143 has a θ-direction rotation mechanism. The mounting section 140 may also include a workpiece holding member (such as a clamp) for holding the workpiece W on the mounting surface 142. Furthermore, the mounting section 140 may also include a tilt stage having a mechanism that can rotate around an axis parallel to the mounting surface 142.
[0026] The movement control unit 144 controls the rotational movement of the rotating stage 143 and the parallel movement of the translational stage 141 according to the measurement conditions set by the measurement condition setting unit 261, which will be described later. The movement control unit 144 also controls the movement of the mounting unit 140 by the mounting movement unit based on the measurement area set by the measurement condition setting unit 261, which will be described later.
[0027] The controller 200 includes a CPU (Central Processing Unit) 210, ROM (Read-Only Memory) 220, working memory 230, storage device (storage unit) 240, and an operation unit 250, etc. For example, a PC (Personal Computer) can be used as the controller 200.
[0028] The configuration of the measurement unit 100 is shown in the block diagram of Figure 4. The measurement unit 100 comprises a light-emitting unit 110, a light-receiving unit 120, an illumination light output unit 130, a measurement control unit 150, and a main body case 101 housing these components. The light-emitting unit 110 includes a measurement light source 111, a pattern generation unit 112, and a plurality of lenses 113, 114, and 115. The light-receiving unit 120 includes a camera 121 and a plurality of lenses 122 and 123. When performing measurements at different magnifications by providing multiple light-receiving units, a light-receiving unit 120a including a low-magnification camera 121 and low-magnification lenses, and a light-receiving unit 120b including a high-magnification camera 121 and high-magnification lenses may be installed. Note that the configuration is not limited to this one; the magnification may be varied by switching between multiple lenses for a single camera 121, or by providing a zoom lens for a single camera 121.
[0029] The light-emitting unit 110 is positioned diagonally above the mounting unit 140. In the example shown in Figure 4, the measurement unit 100 includes two light-emitting units 110, but the measurement unit 100 may include multiple light-emitting units 110. Here, a first measurement light-emitting unit 110A (right side in Figure 4) capable of irradiating the workpiece W with a first measurement light ML1 from a first direction, and a second measurement light-emitting unit 110B (left side in Figure 4) capable of irradiating the workpiece W with a second measurement light ML2 from a second direction different from the first direction are provided. The first measurement light-emitting unit 110A and the second measurement light-emitting unit 110B are arranged symmetrically with the optical axis of the light-receiving unit 120 as the center of symmetry. Although not shown, it is also possible to have three or more light-emitting units 110, or to move the light-emitting unit 110 and the mounting unit 140 relative to each other to project light onto the workpiece W in different directions, even while using a common light-emitting unit 110. In the above example, multiple light-emitting units 110 are provided and the light is received by a common light-receiving unit 120. However, conversely, multiple light-receiving units 120 may be provided to receive light from a common light-emitting unit 110. Furthermore, in this example, the irradiation angle of the illumination light emitted by the light-emitting unit 110 with respect to the Z direction is fixed, but this can also be made variable.
[0030] Each first measurement light projection unit 110A and second measurement light projection unit 110B is equipped with a first measurement light source and a second measurement light source, respectively, as measurement light sources 111. These measurement light sources 111 are, for example, halogen lamps that emit white light. The measurement light source 111 may also be a light source that emits monochromatic light, such as a blue LED (light-emitting diode) or organic EL that emits blue light. The light emitted from the measurement light source 111 (hereinafter referred to as "measurement light") is appropriately focused by the lens 113 and then incident on the pattern generation unit 112.
[0031] The relative positions of the light-receiving unit 120, light-emitting units 110A and 110B, and the light-receiving unit 120 are determined such that the central axes of the light-emitting units 110A and 110B intersect at a position where the arrangement of the workpiece W on the mounting unit 140 and the depth of field of the light-emitting and light-receiving units 110 and 120 are appropriate. Furthermore, since the center of the rotation axis in the θ direction coincides with the central axis of the light-receiving unit 120, when the mounting unit 140 rotates in the θ direction, the workpiece W rotates within the field of view around the rotation axis without moving out of the field of view.
[0032] The pattern generation unit 112 reflects the light emitted from the measurement light source 111 so that it projects measurement light onto the workpiece W. The measurement light incident on the pattern generation unit 112 is converted into a preset pattern and a preset intensity (brightness) and emitted. The measurement light emitted by the pattern generation unit 112 is converted by a plurality of lenses 114 and 115 into light with a diameter larger than the observation and measurement field of view of the light receiving unit 120, and then irradiated onto the workpiece W on the mounting unit 140.
[0033] The pattern generation unit 112 is a component that can switch between a projection state in which measurement light is projected onto the workpiece W and a non-projection state in which measurement light is not projected onto the workpiece W. For example, a DMD (Digital Micromirror Device) can be used for such a pattern generation unit 112. A pattern generation unit 112 using a DMD can be controlled by the measurement control unit 150 to switch between a reflection state in which the measurement light is reflected onto the optical path as the projection state and a light-shielding state in which the measurement light is blocked as the non-projection state.
[0034] In the above example, an example using a DMD for the pattern generation unit 112 was described, but the present invention is not limited to a DMD for the pattern generation unit 112, and other materials can be used. For example, an LCOS (Liquid Crystal on Silicon: reflective liquid crystal element) may be used as the pattern generation unit 112. Alternatively, a transmissive material may be used instead of a reflective material to adjust the amount of light transmitted for measurement. In this case, the pattern generation unit 112 is placed on the optical path of the measurement light, and a light projection state that transmits the measurement light and a light shielding state that blocks the measurement light are switched. For example, an LCD (liquid crystal display) can be used for such a pattern generation unit 112. Alternatively, the pattern generation unit 112 may be configured using a projection method using multiple line LEDs, a projection method using multiple optical paths, an optical scanner method composed of a laser and a galvanometer mirror, an AFI (Accordion fringe interferometry) method that uses interference fringes generated by superimposing beams divided by a beam splitter, or a projection method using a physical grid composed of a piezo stage and a high-resolution encoder and a moving mechanism.
[0035] The light-receiving unit 120 is positioned above the mounting unit 140. The measurement light reflected upward from the workpiece W towards the mounting unit 140 is collected and imaged by the multiple lenses 122 and 123 of the light-receiving unit 120, and then received by the camera 121.
[0036] Camera 121 is a CCD (charge-coupled device) camera, for example, including an image sensor 121a. Image sensor 121a is, for example, a monochrome CCD (charge-coupled device). Image sensor 121a may be other image sensors such as a CMOS (complementary metal-oxide-semiconductor) image sensor. Color image sensors require each pixel to correspond to the reception of red, green, and blue light, resulting in lower measurement resolution compared to monochrome image sensors, and sensitivity is reduced because each pixel requires a color filter. Therefore, in this embodiment, a monochrome CCD is used as the image sensor, and a color image is acquired by illuminating the workpiece W with illumination corresponding to RGB in a time-division manner using the illumination light output unit 130, which will be described later. With this configuration, a color image of the object to be measured can be acquired without reducing the measurement accuracy. Illumination light output unit 130 is an example of a second light projection unit that irradiates the workpiece W with illumination light. The illumination light can be uniform light.
[0037] A color image sensor may also be used as the image sensor 121a. In this case, although the measurement accuracy and sensitivity will be lower compared to a monochrome image sensor, it will no longer be necessary to irradiate the image sensor with illumination corresponding to RGB in a time-division manner from the illumination light output unit 130. A color image can be acquired simply by irradiating with white light, thus simplifying the illumination optical system. Each pixel of the image sensor 121a outputs an analog electrical signal corresponding to the amount of light received (hereinafter referred to as the "received light signal") to the measurement control unit 150.
[0038] The measurement control unit 150 is equipped with an A / D converter (analog-to-digital converter) and a FIFO (First In First Out) memory (not shown). The light received signal output from the camera 121 is sampled at a constant sampling period and converted into a digital signal by the A / D converter of the measurement control unit 150, based on control by the light source unit 300. The digital signals output from the A / D converter are sequentially stored in the FIFO memory. The digital signals stored in the FIFO memory are sequentially transferred to the controller 200 as pixel data.
[0039] The control unit 250 of the controller 200 may include, for example, a keyboard or a pointing device. Examples of pointing devices include a mouse or a joystick.
[0040] The ROM 220 of the controller 200 stores system programs and the like. The working memory 230 of the controller 200 consists of, for example, RAM (Random Access Memory) and is used for processing various data. The storage device 240 consists of a solid-state drive, a hard disk drive, and the like. The storage device 240 stores, for example, an analysis program that performs analysis on the three-dimensional data of the workpiece W. The storage device 240 is also used to store various data such as pixel data (image data), setting information, and measurement conditions provided by the measurement control unit 150. Measurement conditions include, for example, the settings of the light-emitting unit 110 (pattern frequency, pattern type) and the type of light-receiving unit 120 (low-magnification light-receiving unit, high-magnification light-receiving unit), which are set by the scanner module 260 described later when measuring the shape of the workpiece W. Furthermore, the storage device 240 can store brightness information, coordinate information, attribute information for each pixel that makes up the measurement image, and can also store CAD data of the workpiece W. Furthermore, the storage device 240 does not necessarily have to be a component of the three-dimensional scanner 1; it may be composed of an external storage device or the like.
[0041] The CPU210 is a control circuit or control element that processes given signals and data, performs various calculations, and outputs the calculation results. In this specification, CPU refers to an element or circuit that performs calculations, and is used to mean not limited to processors such as CPUs, MPUs, GPUs, and TPUs for general-purpose PCs, regardless of their name, but also including processors such as FPGAs, ASICs, LSIs, microcontrollers, and chipsets such as SoCs.
[0042] The CPU 210 generates image data based on pixel data provided by the measurement control unit 150. The CPU 210 also performs various processing on the generated image data using the working memory 230. For example, based on the light-receiving signal output from the light-receiving unit 120, the CPU 210 generates measurement data representing the three-dimensional shape of the workpiece W contained within the field of view of the light-receiving unit 120 at a specific position on the mounting unit 140. The measurement data is the image itself acquired by the light-receiving unit 120. For example, when measuring the shape of the workpiece W using a phase-shift method, multiple images constitute one set of measurement data. The measurement data may also be point cloud data, which is a collection of points having three-dimensional position information. Measurement data of the workpiece W can be obtained using this point cloud data. Point cloud data is data represented by a collection of multiple points having three-dimensional coordinates.
[0043] The movement control unit 144 determines, based on measurement data of at least a portion of the workpiece W, whether to perform only the rotation of the rotating stage 143 or both the rotation of the rotating stage 143 and the translation of the translation stage 141. This facilitates three-dimensional measurement by automatically determining the imaging range according to the external shape of the workpiece W without the user having to be aware of it. The movement control unit 144 can also control the rotation of the rotating stage 143 after moving the translation stage 141 in the XY direction and then stopping the movement in the XY direction, thereby acquiring the shape around the workpiece W. Furthermore, with the measurement unit 100 fixed, the workpiece W can also be scanned (measured) by moving and rotating it relative to the measurement unit 100.
[0044] The display unit 400 is a component for displaying stripe projection images acquired by the measurement unit 100, depth images generated based on the stripe projection images, texture images captured by the measurement unit 100, various user interface screens, etc. The display unit 400 is composed of, for example, an LCD panel or an organic EL (electroluminescent) panel. Furthermore, by using a touch panel in the display unit 400, it can also be used in conjunction with the operation unit 250. The display unit 400 can also display images generated by the light receiving unit 120.
[0045] The light source unit 300 includes a control board 310 and an observation illumination light source 320. A CPU (not shown) is mounted on the control board 310. The CPU of the control board 310 controls the light-emitting unit 110, the light-receiving unit 120, and the measurement control unit 150 based on commands from the CPU 210 of the controller 200. Note that this configuration is just one example, and other configurations are possible. For example, the light-emitting unit 110 and the light-receiving unit 120 could be controlled by the measurement control unit 150, or the light-emitting unit 110 and the light-receiving unit 120 could be controlled by the controller 200, thus omitting the control board. Alternatively, a power supply circuit for driving the measurement unit 100 can be provided in this light source unit 300.
[0046] The observation illumination light source 320 includes, for example, three LEDs that emit red, green, and blue light. By controlling the brightness of the light emitted from each LED, any color of light can be generated from the observation illumination light source 320. The illumination light IL generated from the observation illumination light source 320 is output from the illumination light output unit 130 of the measurement unit 100 through a light guide member (light guide). In addition to LEDs, other light sources such as semiconductor lasers (LDs), halogen lights, and HIDs can also be used as appropriate for the observation illumination light source. In particular, if a color imaging sensor is used as the image sensor, a white light source can be used for the observation illumination light source.
[0047] The illumination light IL output from the illumination light output unit 130 illuminates the workpiece W by switching between red, green, and blue light in a time-division manner. This allows the texture images captured by these RGB lights to be combined to obtain a color texture image, which can then be displayed on the display unit 400.
[0048] A three-dimensional measurement program and applications for realizing the functions of the three-dimensional scanner 1 are installed on the controller 200. This allows the three-dimensional measurement method and workpiece analysis method according to the present invention to be executed using the three-dimensional scanner 1. The three-dimensional measurement method is a method for measuring the three-dimensional shape of the workpiece W and is executed by a computer in the controller 200. The three-dimensional measurement program that causes the computer to execute the three-dimensional measurement method can be recorded on the storage medium 1000. The workpiece analysis method is a method for analyzing the acquired three-dimensional data of the workpiece W and is executed by a computer in the controller 200. The analysis program that causes the computer to execute the workpiece analysis method can be recorded on the storage medium 1000. The storage medium 1000 may be, for example, an optical disc such as a CD-ROM or DVD-ROM, or a semiconductor memory such as a memory card.
[0049] In a controller 200 on which three-dimensional measurement programs, analysis programs, and applications are installed, a CPU 210, ROM 220, working memory 230, storage device 240, display control unit 255, etc., constitute multiple functional blocks, as shown in Figure 5 as a specific example. All of the multiple functional blocks may be composed of one computer, or some of the multiple functional blocks may be provided in the first computer and others in the second computer. Even if the first computer and the second computer are physically separated, they can together be called a controller.
[0050] The controller 200 comprises an acquisition unit 270, a reading unit 271, and a data processing unit 272. The acquisition unit 270 is the part that acquires the three-dimensional data of the workpiece output from the measurement control unit 150 of the measurement unit 100. The reading unit 271 is the part that reads a file containing the CAD data of the workpiece W stored in the storage device 240. The CAD data is three-dimensional shape information composed of analytical surfaces and free-form surfaces, and includes surface data, solid data, and data used for design. The surface data is data of the shape surface composed of free-form surfaces and analytical surfaces, such as side data and planar data of a cylinder.
[0051] The acquisition unit 270 acquires the various conditions under which the shape measurement of the workpiece W was performed (measurement model, measurement magnification, resolution, etc.) and the raw data (e.g., image data) at the time of measurement, along with the three-dimensional data. The acquisition unit 270 then performs a meshing process on the acquired three-dimensional data of the workpiece W at a predetermined density. This mesh data is mesh data containing multiple polygons and can also be called polygon data. A polygon is data composed of information that identifies multiple points and information that shows a polygonal surface formed by connecting those points. For example, it can be composed of information that identifies three points and information that shows a triangular surface formed by connecting those three points. Mesh data and polygon data can also be defined as data represented by a collection of multiple polygons.
[0052] As will be described later, if a CAD analysis template file is stored in the storage device 240, the reading unit 271 can also read the CAD analysis template file. When the reading unit 271 reads the CAD analysis template file, it sends the CAD analysis template file to the data processing unit 272.
[0053] The data processing unit 272 receives the three-dimensional data obtained by the acquisition unit 270 and the CAD data read out by the reading unit 271. The data processing unit 272 is the part that tessellates the CAD data read out by the reading unit 271 based on a predetermined density.
[0054] As shown in Figure 6A, when tessellation is performed on CAD data using a general method, the distribution of vertices becomes non-uniform. In contrast, as shown in Figure 6B, the scan data (three-dimensional data of the workpiece W) acquired by the measurement unit 100 is meshed so that the vertices are distributed almost uniformly in space in order to preserve the shape features of the workpiece W without losing any information. The analysis function for scan data is also optimized on the premise that the scan data has such a vertex density, so when tessellating CAD data, it is preferable to perform tessellation so that the tessellated CAD data has similar properties to this in order to improve the compatibility of the analysis.
[0055] Figure 7A shows a comparative example of measurement mesh data for a workpiece, and Figure 7B shows the polygon data after tessellation of the CAD data according to this embodiment. The embodiment shown in Figure 7B is polygon data with a uniform density in space, similar to the measurement mesh data in Figure 7A. For example, it shows a case where the pitch is approximately 0.7 mm (an example of a predetermined density). The predetermined density is not limited to a 0.7 mm pitch, but can be arbitrarily set in a range of, for example, 0.5 mm to 2.0 mm.
[0056] As shown in Figure 8A as a comparative example, when attempting to extract planar regions from non-uniformly tessellated shape data during analysis, the arrangement of surfaces differs significantly from the scan data, making it impossible to properly extract the planar regions. On the other hand, as shown in Figure 8B as an example, by uniformly tessellating the data processing unit 272, planar regions can be properly extracted from the shape data during analysis.
[0057] As shown in Figure 5, the controller 200 includes a calculation unit 273, a calculation unit 274, and a positioning unit 275. The calculation unit 273 acquires the CAD data read by the reading unit 271 and calculates the correspondence between the coordinate system of the CAD data read by the reading unit 271 and the scanner coordinate system. Specifically, it calculates the orientation of the CAD data relative to the scanner based on the three-dimensional shape of the CAD data and the three-dimensional shape of the scanner. Once the calculation unit 273 has calculated the correspondence between the coordinate system of the CAD data and the scanner coordinate system, the display control unit 255 displays the CAD data on the display unit 400 based on the correspondence between the coordinate system of the CAD data and the scanner coordinate system obtained by the calculation unit 273.
[0058] Figure 9 shows a user interface screen 700 generated by the display control unit 255 and displayed on the display unit 400. The user interface screen 700 includes an image display area 701 and a model display area 702. The image display area 701 displays a live image generated by the measurement unit 100, and CAD data is superimposed on the live image. The live image includes the rotating stage 143. The measurement unit 100 can also be called a scan head, which includes a light emitter 110, a light receiver 120, an illumination light output unit 130, and a measurement control unit 150. In the image display area 701, CAD data and scan data are superimposed on the rotating stage 143 in the live image. The display control unit 255 can also display the CAD data and scan head on the display unit 400 based on the correspondence between the coordinate system of the CAD data obtained by the calculation unit 273 and the coordinate system of the scanner. Displaying the information in this way is effective, for example, when placing a workpiece W on an arbitrary table and moving the scan head to scan the workpiece from different angles.
[0059] At this time, the calculation unit 274 identifies the orientation of the CAD data read by the reading unit 271. The calculation unit 274 then calculates the relative positional relationship between the coordinate system of the CAD data corresponding to the identified orientation and the scanner coordinate system. Specifically, the calculation unit 274 calculates the positional relationship between the origin of the CAD data coordinate system and the origin of the scanner coordinate system, with the CAD data coordinate system and the scanner coordinate system aligned based on the correspondence obtained by the calculation unit 273. This aligned state means, for example, positioning the CAD data relative to the scanner in the identified orientation. Furthermore, if the scan head is displayed on the display unit 400, when the reception unit 285 receives a measurement start instruction, the calculation unit 274 can also identify the positional relationship between the CAD data and the scan head based on the display on the display unit 400 and calculate the relative positional relationship between the coordinate system of the CAD data corresponding to the identified positional relationship and the scanner coordinate system.
[0060] The alignment unit 275 acquires the relative positional relationship calculated by the calculation unit 274. Based on the relative positional relationship calculated by the calculation unit 274 and the scanner coordinate system, the alignment unit 275 aligns the CAD data read by the reading unit 271 with the three-dimensional data of the workpiece W obtained by the acquisition unit 270. When the calculation unit 274 calculates the positional relationship between the origin of the CAD data coordinate system and the origin of the scanner coordinate system, the alignment unit 275 aligns the CAD data read by the reading unit 271 with the three-dimensional data of the workpiece W obtained by the acquisition unit 270 with the positional relationship calculated by the calculation unit 274 and the position coordinates of the three-dimensional data of the workpiece W obtained by the acquisition unit 270 in the scanner coordinate system. For example, the ICP (Iterative Closest Point) algorithm can be used for this alignment. ICP requires initial positional estimates of a few degrees and millimeters, but by determining these initial estimates based on the positional relationship between the origin of the CAD data coordinate system and the origin of the scanner coordinate system, the user's burden in determining the initial estimates is reduced, and highly accurate alignment becomes possible. Based on the results of this alignment, the relative positional relationship between the CAD coordinate system and the scanner coordinate system is updated. Specifically, the calculation unit 274 calculates the relative positional relationship between the CAD coordinate system and the scanner coordinate system, and the alignment unit 275 performs a provisional alignment of the CAD data and the scan data using this relative positional relationship. The resulting relative positional relationship between the CAD data and the scan data is taken as the provisional relative positional relationship. Based on the positions of the CAD data and scan data obtained as a result of the provisional alignment, the alignment of the three-dimensional data and the CAD data is performed by ICP. The calculation unit 274 updates the provisional relative positional relationship based on the relative positional relationship with the CAD data obtained from the alignment results by ICP, and calculates the true relative positional relationship. Based on the true relative positional relationship calculated by the calculation unit 274, the CAD data read by the reading unit 271 and the three-dimensional data of the workpiece W obtained by the acquisition unit 270 can be displayed on the display unit 400 in an aligned state.Furthermore, based on the true relative positional relationship calculated by the calculation unit 274, shape analysis can be performed, such as comparing the three-dimensional shape of the CAD data read by the reading unit 271 with the three-dimensional data of the workpiece W obtained by the acquisition unit 270.
[0061] As shown in Figure 5, the controller 200 includes an analysis unit 280. The analysis unit 280 acquires the alignment results from the alignment unit 275 and the CAD data read out by the readout unit 271. Based on the alignment results from the alignment unit 275 and the CAD data read out by the readout unit 271, the analysis unit 280 performs an analysis on the three-dimensional data of the workpiece W obtained by the acquisition unit 270. The type of analysis performed by the analysis unit 280 is not particularly limited, and examples include extracting a planar region as shown in Figure 8B and then analyzing the distance between that planar region and other planar regions, the angle between the two planes, etc.
[0062] The controller 200 is equipped with a reception unit 285. The reception unit 285 receives instructions to change the orientation of the CAD data displayed on the display unit 400, as well as instructions to start scanning. For example, when a user operates the operation unit 250 to execute an instruction to change the orientation of the CAD data displayed on the display unit 400, that instruction is received by the reception unit 285. Similarly, when a user executes a scan start instruction on the user interface screen displayed on the display unit 400, that scan start instruction is received by the reception unit 285.
[0063] The user interface screen 700 shown in Figure 9 is provided with a posture suggestion button 702a. When a user operates the posture suggestion button 702a, the calculation unit 273 detects the operation. Upon detecting that the posture suggestion button 702a has been operated, the calculation unit 273 calculates a recommended posture for the workpiece W that can be placed during scanning, based on the correspondence between the coordinate system of the CAD data of the workpiece W read by the reading unit 271 and the scanner coordinate system. It also calculates the correspondence between the coordinate system of the CAD data corresponding to the posture of the modified CAD data and the scanner coordinate system, based on the instructions received by the reception unit 285.
[0064] When calculating the recommended orientation of the workpiece W, the calculation unit 273 can, for example, virtually arrange the measuring unit 100 at regular intervals on a sphere or regular polygon centered on the three-dimensional data, or virtually arrange the measuring unit 100 in a direction facing each face by approximating the three-dimensional data with a convex polygon. The distance between the measuring unit 100 and the workpiece can be set based on the focal length of the lens of the measuring unit 100. In this embodiment, since the measuring unit 100 is equipped with a rotating stage 143, the calculation unit 273 can calculate multiple arrangement orientations by virtually rotating the three-dimensional data around the rotation axis of the rotating stage 143. When rotating the three-dimensional data, it is not necessary to rotate it a full rotation, and the rotation angle may be less than 360°.
[0065] Furthermore, if the workpiece W is large, there are cases where the measuring unit 100 needs to be moved parallel to the workpiece W multiple times for scanning. The controller 200 can determine whether or not this is the case based on whether or not the three-dimensional data exceeds the measurable range (length, width, and height) of the measuring unit 100. If the three-dimensional data exceeds the measurable range of the measuring unit 100, it can be determined that the measuring unit 100 needs to be moved parallel to the workpiece W multiple times for scanning. Conversely, if the three-dimensional data is within the measurable range of the measuring unit 100, it can be determined that the scanning is possible without moving the measuring unit 100 parallel to the workpiece W multiple times.
[0066] In the case where the measuring unit 100 is moved parallel to the workpiece W multiple times and scanned, the measuring range of the measuring unit 100 overlaps to a certain extent, and the center point obtained by parallel movement that includes the most workpieces is used as the basis for virtually arranging the measuring unit 100 in multiple directions in the same way.
[0067] The calculation unit 273 can calculate a recommended position based on the size of the contact area with the mounting surface 142 in each of the calculated multiple placement positions. If the contact area with the mounting surface 142 is too small, it may be difficult to place the workpiece W on the mounting surface 142. However, by calculating a placement position in which a contact area with the mounting surface 142 of a predetermined size or larger can be secured when calculating the recommended position, the workpiece W can be placed stably on the mounting surface 142.
[0068] Furthermore, since the workpiece W cannot be placed below the installation surface where the measurement unit 100 is installed, the calculation unit 273 performs collision detection with the installation surface (Z coordinate < 0). Also, since it becomes difficult to position the measurement unit 100 at angles directly above the workpiece W or at low angles relative to the workpiece W, the calculation unit 273 can calculate a recommended posture based on the "ease of placement" depending on the placement angle of the measurement unit 100.
[0069] When moving or rotating the workpiece W, the calculation unit 273 also calculates the ease of positioning the workpiece W on the mounting surface 142. The calculation unit 273 calculates the three-dimensional data of the calculated positioning posture, or the area of the base when the three-dimensional data is approximated by a convex polygon, and states that the larger the calculated base area, the more stably the workpiece can be positioned on the mounting surface 142. In addition, the calculation unit 273 obtains the coordinates of the center of gravity of the workpiece W and the center point of the base of the workpiece W based on the three-dimensional data of the workpiece W, and calculates the distance between the center of gravity and the center point of the base. Based on the distance between the center of gravity of the workpiece W and the center point of the base of the workpiece W, the calculation unit 273 can determine the ease of positioning the workpiece W and calculates the posture that is easiest to position as the recommended posture. For posture calculation, three-dimensional data acquired by the acquisition unit 270 or CAD data read out by the reading unit 271 can be used. When calculating the recommended posture using three-dimensional data, the recommended posture can be calculated based on past scan results, and when calculating the recommended posture using CAD data, the recommended posture can be calculated from before the start of scanning.
[0070] When the calculation unit 273 calculates a recommended posture, the display control unit 255 displays the CAD data on the display unit 400 in the recommended posture calculated by the calculation unit 273, and changes the posture of the displayed CAD data based on the change instruction from the user received by the reception unit 285 and the correspondence obtained by the calculation unit 273. For example, the user interface screen 700 shown in Figure 9 is provided with a recommended posture display area 703, and the recommended posture is displayed in this recommended posture display area 703. If multiple recommended postures are displayed in the recommended posture display area 703, when the user operates the operation unit 250 to give a change instruction to any recommended posture, the change instruction is received by the reception unit 285, and the display control unit 255 changes the posture of the CAD data displayed in the image display area 701 based on the change instruction and the correspondence obtained by the calculation unit 273. The operation to change the recommended posture may be, for example, an operation to select a recommended posture displayed on the user interface screen 700, or an operation to press a button, etc.
[0071] When calculating the recommended orientation of the workpiece W, the calculation unit 273 may calculate a recommended orientation based not only on the ease of placement of the workpiece W, but also on the orientation that yields the largest amount of data obtained by the acquisition unit 270. That is, the calculation unit 273 calculates a recommended orientation that yields the largest amount of data obtained by the acquisition unit 270 during scanning, based on the correspondence between the coordinate system of the CAD data of the workpiece W read by the reading unit 271 and the scanner coordinate system, and also calculates the correspondence between the coordinate system of the CAD data corresponding to the orientation of the modified CAD data and the scanner coordinate system, based on the instructions received by the reception unit 285. Furthermore, by performing a scan on the workpiece W placed in one placement orientation, the calculation unit 273 can also calculate a recommended orientation different from one placement orientation based on the three-dimensional data acquired by the acquisition unit 270.
[0072] Specifically, the calculation unit 273 estimates the amount of data obtained by the acquisition unit 270 for each of the multiple placement orientations while the data is placed in one of the placement orientations. For example, the calculation unit 273 can move three-dimensional data or CAD data to each placement orientation and estimate the amount of data obtained by the acquisition unit 270 based on the direction of the normal vector after the move. For example, it can determine whether the normal vector after the move is visible from a predetermined viewpoint, and estimates that the amount of data obtained by the acquisition unit 270 is greater the fewer normal vectors are determined to be visible. The calculation unit 273 also determines whether the inverse vector of the normal vector after the move is visible from a predetermined viewpoint, and estimates that the amount obtained by the acquisition unit 270 is greater the more inverse vectors are estimated to be visible. When calculating the amount of additional data for three-dimensional data, the amount of additional data can be estimated based on the scan results that have already been performed. Furthermore, when calculating the amount of additional data for CAD data, it is possible to estimate the posture that yields the most data before the first scan, thus reducing the number of measurements and shortening the measurement time.
[0073] As shown in Figure 5, the analysis unit 280 comprises an analysis preparation unit 281 and an analysis execution unit 282. The analysis preparation unit 281 operates in both measurement analysis mode and analysis preparation mode. The conditions under which each mode is used will be described later. The measurement analysis mode is a mode in which analysis settings are assigned to the three-dimensional data obtained by the acquisition unit 270. The analysis preparation mode is a mode in which analysis settings are assigned to the CAD data read out by the readout unit 271.
[0074] When the analysis preparation unit 281 is operating in measurement analysis mode, the analysis execution unit 282 performs an analysis on the three-dimensional data obtained by the acquisition unit 270 based on the analysis settings assigned to the three-dimensional data by the analysis preparation unit 281. The analysis preparation unit 281 operates in analysis preparation mode when the readout unit 271 reads out the CAD data of the workpiece W, and when the analysis preparation unit 281 is operating in analysis preparation mode, the analysis execution unit 282 performs an analysis on the three-dimensional data obtained by the acquisition unit 270 based on the analysis settings assigned to the CAD data by the analysis preparation unit 281.
[0075] Furthermore, in analysis preparation mode, the analysis preparation unit 281 assigns analysis settings to the CAD data obtained by the acquisition unit 270, creates a file associating the assigned analysis settings with the CAD data, and stores it in the storage device 240. In this case, the analysis execution unit 282 reads the file created in analysis preparation mode by the analysis preparation unit 281 from the storage device 240 and performs analysis on the three-dimensional data of the workpiece W obtained by the acquisition unit 270 based on the analysis settings contained in the file.
[0076] In analysis preparation mode, the analysis preparation unit 281 creates a CAD analysis template file that associates the CAD data read by the reading unit 271 with the analysis settings and stores it in the storage device 240. Figure 10A shows the structure of the CAD analysis template file. The CAD analysis template file includes CAD tessellation data, analysis condition data, shape comparison reference data, and alignment information with the shape comparison reference data. The shape comparison reference data basically includes CAD tessellation data, but if the actual shape is to be used as the comparison reference, it can also include scan data acquired in advance as the comparison reference. When CAD tessellation data is used as the comparison reference, the design value can be compared with the scan data of the workpiece W. When scan data is used as the comparison reference, the shapes between the first scan data and the second scan data can be compared.
[0077] Figure 10B is a diagram showing the structure of the scan result data. The scan result data includes scan data, analysis condition data, analysis result data, shape comparison reference data, alignment information with the shape comparison reference data, shape comparison result data, etc.
[0078] Figure 10C is a diagram showing the structure of the analysis condition data. The analysis condition data includes multiple analysis conditions, such as analysis condition A, analysis condition B, analysis condition C, analysis condition D, etc. Analysis conditions may include types of measurements such as cross-sectional measurement, three-dimensional shape measurement, and geometric tolerance. Furthermore, each analysis condition includes coordinate systems, analysis tool A, analysis parameters related to analysis tool A, results from analysis tool A, analysis tool B, analysis parameters related to analysis tool B, results from analysis tool B, etc. The analysis tool is a measurement content such as the distance between two points or the angle between two surfaces. Parameters related to the analysis tool include the coordinates targeted for analysis by the analysis tool, the filter settings during analysis by the analysis tool, etc.
[0079] If a CAD analysis template file is stored in the storage device 240, the reading unit 271 reads the CAD analysis template file stored in the storage device 240. When the reading unit 271 reads the CAD analysis template file, the analysis execution unit 282 performs an analysis on the three-dimensional data obtained by the acquisition unit 270 based on the analysis settings contained in the CAD analysis template file read by the reading unit 271.
[0080] In the measurement analysis mode, the display control unit 255 displays the three-dimensional data of the workpiece W obtained by the acquisition unit 270 and a user interface screen 700 (shown in Figure 11) that displays setting items related to the analysis on the display unit 400. The user interface screen 700 shown in Figure 11 is provided with a setting item display area 704 for displaying setting items related to the analysis. The user interface screen 700, which is provided with a setting item display area 704 and an image display area 701, is an example of an analysis user interface screen. The setting items displayed in the setting item display area 704 are, for example, the type of analysis and detailed settings for the analysis. In the measurement analysis mode, the three-dimensional data of the workpiece W obtained by the acquisition unit 270 is displayed in the image display area 701 of the user interface screen 700 shown in Figure 11. In the measurement analysis mode, the display control unit 255 can also acquire the three-dimensional data that has been meshed by the acquisition unit 270 and display the meshed three-dimensional data on the display unit 400.
[0081] The reception unit 285 accepts analysis settings to be assigned to three-dimensional data based on the user interface screen 700 shown in Figure 11. When a user operates the operation unit 250 while viewing the user interface screen 700 shown in Figure 11, and performs actions such as selecting setting items displayed in the setting item display area 704, the operation is accepted by the reception unit 285 as an analysis setting and assigned to the three-dimensional data by the analysis preparation unit 281. When the three-dimensional data processed as mesh by the acquisition unit 270 is displayed on the display unit 400, the reception unit 285 accepts the specification of a position for the three-dimensional data obtained by the acquisition unit 270, and also accepts analysis settings related to that position. An example of an analysis setting related to a position is a setting that specifies two points on the three-dimensional data and measures the distance between the two points. The analysis preparation unit 281 assigns the analysis setting related to the position accepted by the reception unit 285 to the three-dimensional data processed as mesh by the acquisition unit 270.
[0082] In the analysis preparation mode, the display control unit 255 displays the CAD data contained in the file read by the reading unit 271 and the analysis user interface screen 700, which displays the above-mentioned analysis setting items, on the display unit 400. The CAD data contained in the file read by the reading unit 271 is displayed in the image display area 701 of the user interface screen 700. The reception unit 285 accepts a location specification for the CAD data and an analysis setting related to that location based on the user interface screen 700 on which the CAD data is displayed. An example of an analysis setting related to location is a setting that specifies two points on the CAD data and measures the distance between the two points. The analysis preparation unit 281 creates a CAD analysis template file that associates the CAD data with the analysis setting related to location accepted by the reception unit 285 and stores it in the storage device 240.
[0083] In the analysis preparation mode, the display control unit 255 can acquire the tessellated CAD data from the data processing unit 272 and display the tessellated CAD data from the data processing unit 272 on the display unit 400. In this case, the reception unit 285 accepts a position specification for the CAD data obtained by the data processing unit 272 and also accepts analysis settings related to that position. The analysis preparation unit 281 then creates a CAD analysis template file that associates the CAD data with the analysis settings and stores it in the storage device 240.
[0084] Figure 12 is a block diagram of the controller 200 when reading and applying an analysis template to scan data with assigned analysis settings. In this example, an analysis template file, which associates scan data with analysis settings, is stored in the storage device 240. The reading unit 271 reads the analysis template file from the storage device 240, and the calculation unit 273 calculates the recommended posture based on the read analysis template file and the meshed scan data. The analysis template is also sent to the analysis unit 280 and used when the analysis unit 280 performs the analysis. For example, when measuring workpiece W, the first measurement involves scanning in detail multiple times with different placements, and analysis is performed from the obtained high-precision scan data. In the second scan with a different workpiece W, the calculation unit 273 can calculate the optimal posture based on the first scan data and present it to the user, thus minimizing the number of scans. Furthermore, even if the placement posture of workpiece W is changed, the alignment unit 275 can align the first scan data and the second scan data, making it easy to apply the analysis settings performed in the first scan to the second scan.
[0085] The details of the scanning process by the three-dimensional scanner 1 will be explained based on the flowchart shown in Figure 13. When the user places the workpiece W on the mounting surface 142 and performs the start operation, this start operation is received by the reception unit 285 as a scan start instruction.
[0086] When the user issues a scan start command, in step SA1, the reading unit 271 reads the CAD data of the workpiece W stored in the storage device 240. In step SA2, the calculation unit 273 calculates the recommended orientation of the workpiece W. In step SA3, the display control unit 255 displays the recommended placement orientation of the workpiece W calculated in step SA2 on the display unit 400 (see Figure 9).
[0087] However, the calculation unit 273 may proceed to step SA3 without calculating the recommended placement orientation in step SA2. In that case, the display control unit 255 displays the CAD data or 3D data on the display unit 400 in step SA3. Even in this case, the user can position the workpiece W according to the display because the CAD data or 3D data is displayed on the display unit 400, and the alignment can be performed with high accuracy. Specifically, the reading unit 271 reads the CAD data of the workpiece stored in the storage unit. Next, the display control unit 255 displays the CAD data read by the reading unit 271 on the display unit 400. Next, the calculation unit 274 calculates the relative positional relationship between the coordinate system of the CAD data displayed on the display unit 400 and the scanner coordinate system. Next, the acquisition unit 270 acquires the 3D data of the workpiece. Next, the alignment unit 275 aligns the CAD data read by the reading unit 271 and the 3D data of the workpiece obtained by the acquisition unit 270 based on the relative positional relationship calculated by the calculation unit 274 and the scanner coordinate system. Then, the analysis unit 280 performs an analysis on the three-dimensional data of the workpiece obtained by the acquisition unit, based on the alignment result by the alignment unit 275 and the CAD data read out by the readout unit 271. As an example of display by the display control unit 255, the CAD data read out by the readout unit 271 is displayed on the display unit 400 in a first orientation relative to the scanner. A scan is performed on the workpiece W positioned in the first orientation. Based on the relative positional relationship between the CAD coordinate system and the scanner coordinate system in the state in which the CAD data is positioned in the first orientation, obtained by the calculation unit 274, the alignment unit 275 aligns the CAD data and the three-dimensional data, and based on the alignment result, the calculation unit 274 updates the relative positional relationship between the scanner coordinate system and the CAD coordinate system. If an additional scan is to be performed after the alignment is completed, the calculation unit 273 sets the second orientation to an orientation obtained by rotating the CAD data in the first orientation by a certain rotation angle around a predetermined axis, such as a rotation axis horizontal to the mounting surface 142. The display control unit can then display the CAD data in the second orientation on the display unit 400.Based on the relative positional relationship between the CAD coordinate system and the scanner coordinate system in the second orientation obtained by the calculation unit 274, the alignment unit 275 aligns the CAD data and the three-dimensional data, and based on the alignment result, the calculation unit 274 updates the relative positional relationship between the scanner coordinate system and the CAD coordinate system.
[0088] In step SA4, the display control unit 255 determines whether the reception unit 294 has received a posture change instruction from the user. If the reception unit 294 has received a posture change instruction from the user, the process proceeds to step SA5, and the display control unit 255 updates the current posture of the workpiece W to a different posture. If the reception unit 294 has not received a posture change instruction in step SA4, the process proceeds to step SA6 without changing the current posture of the workpiece W.
[0089] In step SA6, the display control unit 255 determines whether the reception unit 285 has received a measurement start command from the user. If the reception unit 285 has not received a measurement start command from the user, the process returns to step SA4. If the reception unit 285 has received a measurement start command from the user, the process proceeds to step SA7.
[0090] In step SA7, the calculation unit 274 calculates the relative positional relationship between the coordinate system of the CAD data corresponding to the orientation of the CAD data displayed when the measurement start command was received and the scanner coordinate system. In step SA8, the relative positional relationship between the coordinate system of the CAD data and the scanner coordinate system calculated in step SA7 is stored in the storage device 240. Also, when the measurement start command is received, the controller 200 sends an instruction to the measurement unit 100 to start measuring the shape of the workpiece W.
[0091] In step SA9, the acquisition unit 270 acquires three-dimensional data of the workpiece W. In step SA10, the reading unit 271 reads the relative positional relationship between the coordinate system of the CAD data stored in the storage device 240 and the scanner coordinate system.
[0092] In step SA11, the alignment unit 275 aligns the CAD data read by the reading unit 271 with the three-dimensional data of the workpiece W obtained by the acquisition unit 270, based on the relative positional relationship calculated by the calculation unit 274 and the scanner coordinate system. When multiple scans are performed, the alignment timing can be after the completion of the synthesis of each scan data, but alignment may also be performed after each scan.
[0093] In step SA12, the alignment results performed in step SA11 are displayed on the display unit 400. Figure 14 shows an example of a user interface screen 750 for displaying alignment results. The user interface screen 750 is provided with a result display area 751 in which the CAD data and the three-dimensional data are displayed in association and superimposed. In this way, precise alignment is performed based on a search space narrowed by the associated coordinate system, so even for symmetrical shapes where alignment cannot be uniquely determined by a simple global search, the CAD data and the three-dimensional data can be aligned in the positional relationship intended by the user.
[0094] Subsequently, the user confirms the alignment result between the CAD data and the 3D data displayed on the user interface screen 750. If, as a result of the confirmation, the user issues an instruction to correct the alignment, the reception unit 285 receives the instruction. In this case, in step SA13, the alignment unit 275 determines it to be YES and proceeds to step SA11. In step SA11, the alignment unit 275 performs the alignment correction. If there is no instruction to correct the alignment, proceeds to step SA14. In step SA14, the relative positional relationship between the CAD coordinate system and the scanner coordinate system is updated based on the alignment result, and the process proceeds to step SA15. In step SA15, the reception unit 285 receives the user's instruction to end the CAD scan. If the instruction to end the scan is received, the controller 200 determines it to be YES and terminates the scan. If it is determined to be NO, the process returns to step SA2, and the calculation unit 273 calculates the recommended posture again. At this time, the recommended posture may be calculated based on the 3D data already acquired by the acquisition unit 270, or it may be calculated based on the CAD data. Subsequently, steps SA2 through SA15 are repeated until the controller 200 determines that the scan has ended in step SA15.
[0095] Figure 15 is a flowchart showing an example of the process for acquiring three-dimensional data of a workpiece W. In step SB1 after the start, the reading unit 271 reads the scan settings and transmits them to the measuring unit 100. The scan settings include, for example, the number of scans, the rotation angle of the rotating stage 143 or scan head, the exposure time, etc., and the receiving unit 285 accepts them based on the user's instructions. In step SB2, the measuring unit 100 performs a scan of the workpiece W positioned in the first orientation. In step SB3, it is determined whether the scan is complete or not. If the scan is complete, the process proceeds to step SB7 and the scan data is transmitted to the alignment unit 275. If the scan is not complete, the process proceeds to step SB3.
[0096] In step SB4, the measuring unit 100 changes the scan conditions based on the scan settings and proceeds to step SB5. Changing the scan conditions may involve, for example, rotating the rotary stage by 60 degrees. In step SB5, the measuring unit 100 performs a scan of the workpiece W positioned in the first orientation.
[0097] In step SB6, the controller 200 synthesizes the results of each scan. For example, the controller 200 synthesizes the three-dimensional data obtained from multiple scans performed by rotating the rotating stage 143 to generate synthesized three-dimensional data. After that, the process returns to step SB2 and repeats steps SA2 to SA4 until the end of the scan is determined.
[0098] In step SB7, the controller 200 determines whether there is scan data for the workpiece W positioned in a second position different from the first position. If there is scan data for the second position, the determination is YES and the process proceeds to step SB8. In step SB8, the reading unit 271 reads the scan data for the other position and the process proceeds to step SB9. In step SB9, the acquisition unit 270 combines the scan data for the workpiece W positioned in the second position with the scan data for the workpiece W positioned in the first position acquired in steps SB1 to SB4. If the determination in step SB7 is NO, the process proceeds to step SB10. Furthermore, if a scan is performed on a workpiece W positioned in a third position different from the first and second positions, the scan data read by the reading unit 271 in step SB8 may be composite scan data obtained by combining the scan data for the first and second positions. Also, if multiple scans are performed in the first position, in the flows of Figures 14 and 15, alignment with CAD data is performed after combining each scan data, but alignment with CAD data may be performed for each scan. In this case, the acquisition unit 270 acquires scan data of the workpiece W positioned in a first orientation, scanned from a first angle, and the alignment unit 275 performs alignment based on the relative positional relationship between the CAD coordinate system and the scanner coordinate system obtained by the calculation unit 274. The display control unit 255 displays the CAD data and scan data on the display unit 400 based on the alignment result. If the rotating stage 143 rotates and images are taken from a second angle different from the first angle, the acquisition unit combines the scan data obtained at the first angle and the scan data obtained at the second angle, and then the alignment unit 275 performs alignment again.
[0099] Figure 16 shows an example where alignment is performed in the first scan, and steps SC1 to SC8 are the same as steps SA1 to SA8 in the flowchart shown in Figure 13. In step SC9, three-dimensional data of the workpiece W is acquired and alignment is performed. Specifically, as shown in Figure 17, in step SD1 after the start, the measurement unit 100 performs a scan of the workpiece W. In step SD2, alignment is performed by the alignment unit 275 (described later). In step SD3, it is determined whether the scan is finished or not. If it is finished, proceed to step SD10 and return. If the scan is not finished, proceed to step SD4.
[0100] In step SD4, the measurement unit 100 performs a scan of the workpiece W. In step SD5, the alignment unit 275 performs alignment (described later). In step SD6, it is determined whether the scan is complete or not. If the scan is complete, the process proceeds to step SD10. If the scan is not complete, the process proceeds to step SD7. In step SD7, the controller 200 calculates the data deficiency area from the synthesis results. The data deficiency area can be calculated, for example, from the overlap rate between the three-dimensional data and the CAD data. Alternatively, the data deficiency area of the three-dimensional data may be evaluated. In step SD8, the controller 200 calculates the placement orientation of the workpiece W based on the data deficiency area. In step SD9, the display control unit 255 displays the scan data or CAD data of the workpiece W on the display unit 400 in the placement orientation calculated in step SD8. Note that each scan may be a single image (scan), or multiple images may be taken by rotating the rotating stage 143 in the same orientation. If multiple images are taken, alignment with the CAD data may be performed after each image, or the results of multiple images may be synthesized and then aligned with the CAD data.
[0101] Figure 18 shows an example of the alignment process. In step SE1, the reading unit 271 reads the relative positional relationship between the coordinate system of the CAD data stored in the storage device 240 and the scanner coordinate system. In step SE2, the alignment unit 275 aligns the CAD data read by the reading unit 271 with the three-dimensional data of the workpiece W obtained by the acquisition unit 270, based on the relative positional relationship calculated by the calculation unit 274 and the scanner coordinate system.
[0102] In step SE3, the result of the alignment performed in step SE2 is displayed on the display unit 400. In step SE4, it is determined whether or not a user has given an instruction to correct the alignment has been received. If the reception unit 285 has received a correction instruction, step SE4 is determined to be YES and the process proceeds to step SE2. In step SE2, the alignment unit 275 performs the alignment correction. If there is no instruction to correct the alignment, the process proceeds to step SE5 and returns.
[0103] Figure 19 shows the analysis process. In step SF1, the analysis unit 280 determines whether or not there is a template that has already been read. The template is either a CAD analysis template or an analysis template, and so on. If there is a template that has already been read, the process proceeds to step SF2. In step SF2, the analysis unit 280 reads the analysis settings. In step SF3, the analysis unit 280 performs an analysis on the three-dimensional data of the workpiece W obtained by the acquisition unit 270. In step SF4, the analysis unit 280 creates a file that associates the three-dimensional data of the workpiece W with the analysis results. In step SF5, the file created in step SF4 is saved to the storage device 240.
[0104] If the result in step SF1 is NO, the analysis unit 280 determines in step SF6 whether the receiving unit 285 has received the instruction to read the template file. If the receiving unit 285 has received the instruction to read the template file, the process proceeds to step SF7, where the reading unit 271 reads the template file from the storage device 240. If the receiving unit 285 has not received the instruction to read the template file, the process proceeds to step SF8, where the display control unit 255 displays a user interface screen 700, which displays the settings related to the analysis, on the display unit 400, as shown in Figure 11. In step SF9, the user's analysis settings are received via the user interface screen 700.
[0105] Figure 20 is a mode branching flowchart of the analysis preparation unit 281. After the reading unit 271 reads CAD data or scan data, the process proceeds to step SG1. In step SG1, the data processing unit 272 determines whether the read data is CAD data or scan data. If the read data is CAD data, the process proceeds to step SG2, where the data processing unit 272 tessellates the CAD data and proceeds to step SG3. If the read data is scan data, the process proceeds to step SG3.
[0106] In step SG3, the analysis unit 280 identifies the operating mode of the analysis preparation unit 281. In step SG4, the analysis unit 280 determines whether the operating mode of the analysis preparation unit 281 is the analysis preparation mode or the actual measurement analysis mode. If the operating mode of the analysis preparation unit 281 is the analysis preparation mode, the process proceeds to step SG5. In step SG5, the display control unit 255 displays the tessellated model on the display unit 400. If the operating mode of the analysis preparation unit 281 is the actual measurement analysis mode, the process proceeds to step SG6. In step SG6, the display control unit 255 displays the meshed scan data on the display unit 400.
[0107] In step SG7, as shown in Figure 11, the display control unit 255 displays a user interface screen 700 on the display unit 400 that displays setting items related to the analysis. In step SG8, the reception unit 285 receives the user's position specification on the user interface screen 700. In step SG9, the analysis preparation unit 281 assigns analysis settings to the meshed scan data obtained by the acquisition unit 270 or the tessellated CAD data obtained by the data processing unit.
[0108] In step SG10, the analysis unit 280 performs an analysis on the three-dimensional data of the workpiece W obtained by the acquisition unit 270. Alternatively, the analysis unit 280 may perform an analysis on tessellated CAD data. In this case, the analysis settings and results for the CAD can be saved as part of the CAD analysis template file in SG13, described later, which is useful for comparing the workpiece W with the CAD. In step SG11, the analysis unit 280 determines whether the analysis settings have been completed. If the analysis settings have not been completed, the process returns to step SG8; if the analysis settings have been completed, the process proceeds to step SG12. In step SG12, the analysis unit 280 determines whether the analysis preparation unit 281 was operating in analysis preparation mode or in actual measurement analysis mode. If the analysis preparation unit 281 was operating in analysis preparation mode, the process proceeds to step SG13, where the analysis unit 280 creates a CAD analysis template. In step SG14, the analysis unit 280 saves the CAD file with the template to the storage device 240. If the analysis preparation unit 281 was operating in actual measurement analysis mode, the process proceeds to step SG15, where the analysis unit 280 creates a file that associates the scan data with the analysis results. In step SG16, the analysis unit 280 saves the measurement result file to the storage device 240. This analysis result file is configured to be readable by the reading unit 271 as an analysis template file.
[0109] Figure 21 is an example of an analysis in which the three-dimensional shape of the scan data and CAD data of the workpiece W is measured, the difference in dimensions between the scan data and the CAD data is calculated, and a color map is displayed by assigning colors according to the degree of the difference. When the reading unit 271 reads and scans the CAD data or CAD scan data, the analysis unit 280 automatically performs a comparison between the scan data and the CAD data, and the display control unit 255 can display the result on the display unit 400. That is, the reading unit 271 reads the CAD data from the storage unit 240. Next, the calculation unit 273 calculates the correspondence between the coordinate system of the CAD data read by the reading unit 271 and the scanner coordinate system. Next, the display control unit 255 displays the CAD data on the display unit 400 based on the correspondence obtained by the calculation unit 273. Next, the calculation unit 274 identifies the orientation of the CAD data and calculates the relative positional relationship between the coordinate system of the CAD data corresponding to the identified orientation and the scanner coordinate system. Next, the acquisition unit 270 acquires the three-dimensional data of the workpiece W as mesh data, and the alignment unit 275 aligns the CAD data read by the reading unit 271 with the three-dimensional data of the workpiece obtained by the acquisition unit 270 based on the relative positional relationship calculated by the calculation unit 274 and the scanner coordinate system. Next, the analysis unit 280 measures the dimensions for each mesh from the three-dimensional shape of the three-dimensional data of the workpiece obtained by the acquisition unit 270 and the CAD data, based on the alignment result by the alignment unit 275 and the CAD data read by the reading unit 271, calculates the difference, and assigns color information to each mesh according to the degree of the difference. Then, the display control unit 255 displays a color map on the display unit 400 with colors assigned to each mesh based on the color information for at least one of the three-dimensional data and the CAD data. In addition, after alignment by the alignment unit 275, the reception unit 285 can also receive instructions for assigning analysis settings or starting comparative analysis. In this case, the analysis unit 280 performs the above analysis based on the fact that the reception unit 285 has received the instruction, and the display control unit 255 displays the color map on the display unit 400.
[0110] Figure 22A shows an example of cross-sectional measurement performed on scan data of workpiece W. The user specifies the surface on the scan data to be measured in cross-section according to the user interface screen 700, and also instructs the type of analysis tool to be performed on that cross-section and its assigned location. The reception unit 285 receives these instructions and transmits them to the analysis unit 280, which then performs the analysis based on these instructions, and the display control unit 255 displays the results on the display unit 400. Figure 22B also shows an example of cross-sectional measurement performed on CAD data. The user specifies the surface on the CAD data to be measured in cross-section according to the user interface screen 700, and also instructs the type of analysis tool to be performed on that cross-section and its assigned location. The reception unit 285 receives these instructions and transmits them to the analysis unit 280, which then performs the analysis based on these instructions, and the display control unit 255 displays the results on the display unit 400. Since the data processing unit 272 performs tessellation on the CAD data based on a predetermined mesh density of the three-dimensional data acquired by the acquisition unit 270, the analysis unit 280 can also compare the results of cross-sectional measurements on the scan data with the results of cross-sectional measurements on the CAD data.
[0111] Cross-sectional measurements can also be performed on data obtained by aligning the scan data and CAD data of the workpiece W. The data obtained by aligning the scan data and CAD data of the workpiece W is obtained by the alignment unit 275. The user specifies the surface on the data obtained by aligning the scan data and CAD data of the workpiece W to perform cross-sectional measurements on, according to the user interface screen 700, and also instructs the type of analysis tool to be performed on that cross-section and its assigned position. The reception unit 285 receives the instruction and transmits it to the analysis unit 280, and the analysis unit 280 performs an analysis on the data obtained by aligning the scan data and CAD data of the workpiece W based on the instruction, and the display control unit 255 displays the result on the display unit 400. The analysis unit 280 can also compare the results of the cross-sectional measurement on the scan data with the results of the cross-sectional measurement on the CAD data. For example, the comparison may be based on the difference in dimensions between the CAD data and the scan data. The display control unit 255 may display the comparison result on the display unit 400.
[0112] Furthermore, if the workpiece W is scanned without the reading unit 271 reading CAD data, the acquisition unit 270 stores the scan data in the storage device 240. The reading unit 271 reads the scan data and the CAD data file or CAD analysis template file and sends them to the alignment unit 275. The alignment unit 275 performs alignment between the CAD data contained in the read file and the scan data and sends the alignment result to the analysis unit. The analysis unit 280 compares the scan data and CAD data based on the alignment result. Specifically, the analysis unit 280 measures the dimensions of each part from the three-dimensional shape of the CAD data and scan data, calculates the difference between the design value of the CAD data and the measured value of the scan data, and the display control unit 255 displays a color map on the display unit 400 with colors assigned to the CAD data or scan data according to the degree of difference. The analysis unit 280 can also perform cross-sectional measurements of the CAD data and scan data and compare the design value of the CAD data with the measured value of the scan data. Cross-sectional measurements may also be performed on the data after the scan data and CAD data of the workpiece W have been aligned.
[0113] (CAD data alignment) When positioning an actual workpiece W to match the CAD data displayed on the display unit 400, the user needs to move the workpiece W on the rotating stage 143. However, the present invention is not limited to this, and the user may also move the CAD data to match the actual workpiece W. In other words, positioning an actual workpiece W to match the CAD data while looking at the display unit 400 can be difficult because it requires looking at both the display unit 400 and the rotating stage 143. Furthermore, since the camera capturing the actual workpiece W is opposite the user's line of sight, the user is operating while looking at a mirrored image, which creates difficulties. Therefore, in order to improve user convenience, the 3D scanner 1 can be equipped with a function (alignment function) that allows the user to align the CAD data while looking at the display unit 400 without moving the actual workpiece W.
[0114] The details of the alignment function will be explained below based on the flowchart shown in Figure 23. In the following explanation, the alignment will be referred to as overlay alignment, and the CAD data will be referred to as a "virtual object". In step S100, the controller 200 reads the center position of the rotating stage 143 and the CAD data. In step S101, the controller 200 calculates the virtual ground based on the center position of the rotating stage 143 read in step S100 and displays it on the display unit 400, and also displays the virtual object on the display unit 400 based on the CAD data.
[0115] In step S102, the controller 200 determines whether or not the mouse button on the operation unit 250 has been pressed near the display position of the virtual object. If the mouse button has not been pressed near the display position of the virtual object, the overlay alignment process is terminated. However, if the mouse button has been pressed near the display position of the virtual object, the process proceeds to step S103, where the controller 200 performs the rotation and movement of the virtual object by mouse dragging.
[0116] The rotation and movement of the virtual object will be explained based on the flowchart in Figure 24. In step S200, the controller 200 determines whether or not the rotation button on the operation unit 250 has been pressed. If it is determined that the rotation button on the operation unit 250 has been pressed, the controller 200 determines in step S201 whether or not the direction of movement of the mouse on the operation unit 250 is close to horizontal. If the direction of movement of the mouse is not close to horizontal, the process proceeds to step S202. On the other hand, if the direction of movement of the mouse is close to horizontal, the process proceeds to step S203, where the controller 200 fixes the rotation axis of the virtual object with an axis perpendicular to the virtual ground. Whether or not the direction of movement of the mouse is close to horizontal may be determined by the controller 200 based on, for example, the angle between the direction of movement of the mouse and the horizontal direction. Here, for example, the direction of movement of the mouse may be determined to be close to horizontal if the angle between the direction of movement of the mouse and the horizontal direction is 20 degrees or less. Furthermore, whether the mouse's direction of movement is close to horizontal may be determined by the controller 200, for example, based on the ratio of the vertical component to the horizontal component of the mouse's movement. Here, for example, if the ratio of the vertical component to the horizontal component of the mouse's movement is 0.1 or less, it may be determined that the mouse's direction of movement is close to horizontal.
[0117] In step S204, the controller 200 extracts the horizontal component of the mouse movement. In step S205, the controller 200 calculates the orientation rotated according to the extracted horizontal component around a fixed axis. In step S206, the controller 200 adjusts the positional relationship between the virtual object and the virtual ground. In step S207, the display of the virtual object is updated. In step S208, the controller 200 determines whether the mouse button has been released or not. If the mouse button has not been released, the process returns to step S200.
[0118] In step S202, the controller 200 determines whether the direction of movement of the mouse on the operating unit 250 is close to vertical. If the direction of movement of the mouse is close to vertical, the process proceeds to step S209, where the controller 200 fixes the rotation axis of the virtual object on the left-right axis in the line of sight direction. Whether the direction of movement of the mouse is close to vertical may be determined by the controller 200 based on, for example, the angle between the direction of movement of the mouse and the vertical direction. Here, for example, if the angle between the direction of movement of the mouse and the vertical direction is 20 degrees or less, it may be determined that the direction of movement of the mouse is close to vertical. Alternatively, whether the direction of movement of the mouse is close to vertical may be determined by the controller 200 based on, for example, the ratio of the horizontal component to the vertical component of the amount of movement of the mouse. Here, for example, if the ratio of the horizontal component to the vertical component of the amount of movement of the mouse is 0.1 or less, it may be determined that the direction of movement of the mouse is close to vertical. The rotation axis may be in a direction parallel to the virtual ground.
[0119] In step S210, the controller 200 extracts the vertical component of the mouse movement. In step S211, the controller 200 calculates the posture rotated according to the extracted vertical component around a fixed axis, and proceeds to step S206.
[0120] If it is determined in step S202 that the direction of mouse movement is not nearly vertical, the process proceeds to step S212 to extract the amount of mouse movement. In step S213, the posture rotated in an arbitrary direction according to the amount of mouse movement is calculated, and the process proceeds to step S206. Calculating the posture rotated in an arbitrary direction means, for example, that the controller 200 fixes a direction perpendicular to the direction of mouse movement as the axis of rotation, and calculates the posture of the virtual object rotated around the axis of rotation based on the amount of mouse movement.
[0121] If the result in step S200 is NO, the process proceeds to step S214 to extract the mouse movement amount. In step S215, the posture obtained by moving the mouse in an arbitrary direction according to the mouse movement amount is calculated, and the process proceeds to step S206.
[0122] Next, the process proceeds to step S104 shown in Figure 23, where the controller 200 calculates the distance between the virtual object and the virtual ground. In step S105, the controller 200 extracts the faces of the virtual object that are closest to the virtual ground. In step S106, the controller 200 calculates the degree of contact between the faces of the virtual object and the virtual ground. The degree of contact is calculated, for example, by the dot product of the normal vector of the extracted faces of the virtual object and the normal vector of the virtual ground. In this case, the dot product is 0 when the degree of contact is at its maximum. Alternatively, the degree of contact may be calculated by the size of the contact area when the faces of the virtual object and the virtual ground are in contact. In step S107, the controller 200 determines whether there are any extracted faces for which the degree of contact has not been calculated. If there are extracted faces for which the degree of contact has not been calculated, the next face is selected in step S108 and the process proceeds to step S106.
[0123] If there are no extracted surfaces for which the degree of contact has not been calculated, the process proceeds to step S109, where the controller 200 selects the surface with the highest degree of contact. In step S110, the controller 200 calculates the orientation in which the selected surface and the virtual ground are in contact. In step S111, the display of the virtual object is updated to reflect the calculated orientation.
[0124] The flowchart in Figure 25 shows the process of adjusting the positional relationship between a virtual object and the virtual ground. In step S300, the controller 200 calculates the distance between the virtual object and the virtual ground. In step S301, the controller 200 determines whether the virtual object is embedded in the virtual ground. An embedded virtual object is, for example, a state in which the Z coordinate of a part of the virtual object is less than 0, assuming that the Z direction is perpendicular to the surface on which the virtual ground is placed and the Z coordinate of the surface on which the virtual ground is placed is 0. If the result in step S301 is YES, the process proceeds to step S302, where the virtual object is pushed up onto the virtual ground and then proceeds to step S303. Pushing the virtual object up onto the virtual ground means, for example, translating the virtual object in a direction perpendicular to the virtual ground to eliminate the embedded state. If the result in step S301 is NO, the process proceeds to step S303. In step S303, the controller 200 determines whether the virtual object is floating above the virtual ground. A virtual object floating above the virtual ground means, for example, that the virtual object and the virtual ground have no contact points. If the result in step S303 is YES, the process proceeds to step S304, where the virtual object is grounded to the virtual ground. Grounding a virtual object to the virtual ground means, for example, translating the virtual object in a direction perpendicular to the virtual ground so that the virtual object and the virtual ground have contact points.
[0125] The flowchart in Figure 26 shows the stage surface detection process. In step S400, the controller 200 measures and acquires the three-dimensional shape of the rotating stage 143. In step S401, the controller 200 determines the position of the stage surface (mounting surface 142) from the three-dimensional shape of the rotating stage 143. In step S402, the controller 200 calculates the height information of the stage surface relative to the camera position based on the obtained planar position. In step S403, the calculated stage surface height information is stored in the storage device 240 or the like.
[0126] In step S404, the controller 200 determines whether or not a dedicated chart is available. A dedicated chart is, for example, a calibration board. If the result in step S404 is NO, the process proceeds to step S405, where the center position of the stage is calculated based on the known uneven shape of the stage surface. For the calculation of the center position, for example, the stage can be rotated and tilted to take measurements from multiple directions, and the center position can be calculated based on the measurement results. If the result in step S404 is YES, the process proceeds to step S406, where the dedicated chart is rotated and measurements are taken from multiple directions to calculate the center position of the stage. In step S407, the center position of the stage is stored in the memory device 240 or the like.
[0127] Figure 27 is a flowchart illustrating an example of the alignment function processing when the virtual object is rotated and moved while the virtual tilting table is enabled. Steps S500, S501, and S502 are the same as steps S100, S101, and S102 in Figure 23, respectively. Also, steps S505 to S512 are the same as steps S104 to S111 in Figure 23, respectively. Furthermore, step 504 is the same as the virtual object rotation and movement processing shown in Figure 24.
[0128] In step S503, the controller 200 determines whether the virtual inclined table is enabled. The virtual inclined table is a virtual representation of the inclined table provided on the rotating stage 143. The inclined table provided on the rotating stage 143 is configured such that the inclination angle with respect to the horizontal plane can be changed in multiple ways, and by placing the workpiece W on the inclined table, the workpiece W can be made to be inclined. If it is determined that the virtual inclined table is enabled, the process proceeds to step S513. If it is determined that the virtual inclined table is not enabled, the process proceeds to step S504.
[0129] In step S513, the virtual object is rotated and moved by dragging the mouse. Figure 28 is a flowchart showing an example of the process when the virtual object is rotated and moved while the virtual inclined platform is enabled. In step S600, the controller 200 determines whether the direction of movement of the mouse on the operating unit 250 is close to horizontal. If the direction of movement of the mouse is not close to horizontal, the process proceeds to step S601. On the other hand, if the direction of movement of the mouse is close to horizontal, the process proceeds to step S602, where the controller 200 fixes the rotation axis of the virtual object with an axis perpendicular to the virtual ground. Whether the direction of movement of the mouse is close to horizontal may be determined by the controller 200 based on, for example, the angle between the direction of movement of the mouse and the horizontal direction. Here, for example, the direction of movement of the mouse may be determined to be close to horizontal if the angle between the direction of movement of the mouse and the horizontal direction is 20 degrees or less. Alternatively, whether the direction of movement of the mouse is close to horizontal may be determined by the controller 200 based on, for example, the ratio of the vertical component to the horizontal component of the amount of mouse movement. Here, for example, if the ratio of the vertical component to the horizontal component of the mouse's movement is 0.1 or less, it may be determined that the mouse's direction of movement is close to the horizontal direction.
[0130] In step S603, the controller 200 extracts the horizontal component of the mouse movement. In step S604, the controller 200 calculates the orientation rotated according to the extracted horizontal component around a fixed axis. In step S605, the controller 200 adjusts the positional relationship between the virtual object and the virtual ground and proceeds to step 607. The adjustment of the positional relationship between the virtual object and the virtual ground is performed in the same manner as the flow shown in Figure 25. In step S606, the display of the virtual object is updated. In step S607, the controller 200 determines whether the mouse button has been released or not. If the mouse button has not been released, the process returns to step S603.
[0131] In step S601, the controller 200 determines whether the direction of movement of the mouse on the operating unit 250 is close to vertical. If the direction of movement of the mouse is close to vertical, the process proceeds to step S608, where the controller 200 fixes the rotation axis of the virtual object on the left-right axis in the line of sight direction. Whether the direction of movement of the mouse is close to vertical may be determined by the controller 200 based on, for example, the angle between the direction of movement of the mouse and the vertical direction. Here, for example, if the angle between the direction of movement of the mouse and the vertical direction is 20 degrees or less, the direction of movement of the mouse may be determined to be close to horizontal. Alternatively, whether the direction of movement of the mouse is close to vertical may be determined by the controller 200 based on, for example, the ratio of the horizontal component to the vertical component of the amount of movement of the mouse. Here, for example, if the ratio of the horizontal component to the vertical component of the amount of movement of the mouse is 0.1 or less, the direction of movement of the mouse may be determined to be close to horizontal. The rotation axis may be in a direction parallel to the virtual ground.
[0132] In step S609, the controller 200 extracts the vertical component of the mouse movement. In step S610, the controller 200 calculates the orientation rotated according to the extracted vertical component around a fixed axis and proceeds to step S611. In step S611, the controller 200 adjusts the positional relationship between the virtual object and the virtual ground and proceeds to step 612. The adjustment of the positional relationship between the virtual object and the virtual ground is performed in the same manner as the flow shown in Figure 25. In step S612, the display of the virtual object is updated. In step S613, the controller 200 determines whether the mouse button has been released or not. If the mouse button has not been released, the process returns to step S609.
[0133] If it is determined in step S601 that the mouse movement direction is not nearly vertical, the process proceeds to step S614 to extract the mouse movement amount. In step S615, the orientation of the virtual object rotated in an arbitrary direction according to the mouse movement amount is calculated, and the process proceeds to step S616. Rotating in an arbitrary direction means, for example, that the controller 200 fixes a direction perpendicular to the mouse movement direction as the axis of rotation, and calculates the orientation of the virtual object rotated around the axis of rotation based on the mouse movement amount. In step S616, the controller 200 adjusts the positional relationship between the virtual object and the virtual ground and proceeds to step 617. The adjustment of the positional relationship between the virtual object and the virtual ground is performed in the same manner as the flow in Figure 25. In step S617, the display of the virtual object is updated. In step S618, the controller 200 determines whether the mouse button has been released or not. If the mouse button has not been released, the process returns to step S614.
[0134] Figure 29 is a flowchart showing another example of the process when a virtual object is rotated and moved while the virtual inclined platform is enabled. In step S700, the controller 200 determines whether the rotation button on the operation unit 250 has been pressed. If it is determined that the rotation button on the operation unit 250 has been pressed, in step S701 the controller 200 determines whether the direction of movement of the mouse on the operation unit 250 is nearly parallel to the mounting surface of the virtual inclined platform. If the direction of movement of the mouse is not nearly parallel to the mounting surface of the virtual inclined platform, the process proceeds to step S702. On the other hand, if the direction of movement of the mouse is nearly parallel to the mounting surface of the virtual inclined platform, the process proceeds to step S703, where the controller 200 fixes the rotation axis of the virtual object with an axis perpendicular to the mounting surface of the virtual inclined platform. For example, the direction of movement of the mouse being nearly parallel to the mounting surface of the virtual inclined platform may mean that the angle between the direction of movement of the mouse and the direction parallel to the mounting surface of the virtual inclined platform is 20 degrees or less. Alternatively, for example, the ratio of the component of the mouse movement perpendicular to the virtual tilt platform's mounting surface to the component parallel to the virtual tilt platform's mounting surface is 0.1 or less. In step S704, the controller 200 extracts the component of the mouse movement parallel to the virtual tilt platform's mounting surface. In step S705, the controller 200 calculates the orientation of the virtual tilt platform rotated according to the extracted component parallel to the virtual tilt platform's mounting surface around a fixed axis. In step S706, the controller 200 adjusts the positional relationship between the virtual object and the virtual tilt platform. In step S707, the display of the virtual object is updated. In step S708, the controller 200 determines whether the mouse button has been released or not. If the mouse button has not been released, the process returns to step S700.
[0135] In step S702, the controller 200 determines whether the direction of movement of the mouse on the operating unit 250 is nearly perpendicular to the mounting surface of the virtual inclined platform. If the direction of movement of the mouse is nearly perpendicular to the mounting surface of the virtual inclined platform, the process proceeds to step S709, where the controller 200 fixes the rotation axis of the virtual object with an axis parallel to the mounting surface of the virtual inclined platform. For example, the direction of movement of the mouse being nearly perpendicular to the mounting surface of the virtual inclined platform may mean that the angle between the direction of movement of the mouse and the direction perpendicular to the mounting surface of the virtual inclined platform is 20 degrees or less. Alternatively, for example, the ratio of the component of the mouse movement amount parallel to the mounting surface of the virtual inclined platform to the component perpendicular to the mounting surface of the virtual inclined platform may be 0.1 or less. In step S710, the controller 200 extracts the component of the mouse movement amount perpendicular to the mounting surface of the virtual inclined platform. In step S711, the controller 200 calculates the orientation of the virtual inclined platform rotated according to a component perpendicular to the mounting surface of the virtual inclined platform extracted around a fixed axis, and then proceeds to step S706.
[0136] If it is determined in step S702 that the direction of mouse movement is not nearly perpendicular to the mounting surface of the virtual inclined platform, the process proceeds to step S712 to extract the amount of mouse movement. In step S713, the posture rotated in an arbitrary direction according to the amount of mouse movement is calculated, and the process proceeds to step S706. Rotating in an arbitrary direction means, for example, that the controller 200 fixes a direction perpendicular to the direction of mouse movement as the axis of rotation, and calculates the posture of the virtual object rotated around the axis of rotation based on the amount of mouse movement.
[0137] If the result in step S700 is NO, the process proceeds to step S714 to extract the mouse movement amount. In step S715, the posture obtained by moving the mouse in an arbitrary direction according to the mouse movement amount is calculated, and the process proceeds to step S706.
[0138] In step S514 of Figure 27, the controller 200 calculates the distance between the virtual object and the virtual inclined table. In step S515, the faces of the virtual object that are closest to the virtual inclined table are extracted. In step S516, the degree of contact between the faces of the virtual object and the virtual inclined table is calculated. In step S517, it is determined whether there are any extracted faces for which the degree of contact has not been calculated. If there are extracted faces for which the degree of contact has not been calculated, the process proceeds to step S518, where the next face is selected and the process proceeds to step S516. If there are no extracted faces for which the degree of contact has not been calculated, the process proceeds to step S519, where the face with the highest degree of contact is selected. In step S520, the orientation in which the selected face and the virtual inclined table are in contact is calculated.
[0139] Figure 30 is a flowchart showing an example of the process for adjusting the positional relationship between a virtual object, a virtual ground, and a virtual inclined platform. In step S800, the virtual object, virtual ground, and virtual inclined platform are adjusted. The controller 200 calculates the distance to the platform. In step S801, the controller 200 determines whether the virtual object is embedded in the virtual ground or virtual inclined platform. If the result in step S801 is YES, the process proceeds to step S802, where the virtual object is pushed onto the virtual ground or virtual inclined platform before proceeding to step S803. If the result in step S801 is NO, the process proceeds to step S803. In step S803, the controller 200 determines whether the virtual object is floating above the virtual ground or virtual inclined platform. If the result in step S803 is YES, the process proceeds to step S804, where the virtual object is grounded on the virtual ground or virtual inclined platform.
[0140] As described above, the same collision detection as the rotating stage 143 is performed in the space where the virtual object exists, and physical constraints are introduced such that the virtual object is in contact with the rotating stage 143. As a result, the rotation and translation are limited to the same degree of freedom as the actual workpiece W, making it easier for the user to align the virtual object.
[0141] Furthermore, while the mouse is being dragged on the control unit 250, an unstable posture may occur. However, when the mouse is released, a stable posture is calculated and automatically corrected to a posture in which the degree of contact between the rotation stage 143 and the virtual object is increased. Since the actual posture that the workpiece W can take also exists within its limited degrees of freedom, positioning becomes easier.
[0142] Furthermore, the rotation operation performed by dragging the mouse on the control unit 250 is restricted to rotating only one axis at a time relative to the workpiece: roll, pitch, or yaw. This allows the virtual object on the rotating stage 143 to be rotated while maintaining the ground contact state of the rotating stage 143, making positioning easier.
[0143] Furthermore, when linking the rotation of the rotating stage 143 with the display of the virtual object, one difficulty in alignment is that it can be difficult to grasp the positional relationship in the depth direction when imaging from a fixed camera. In contrast, by linking the rotation of the rotating stage 143 with the display state of the virtual object, it is possible to grasp the positional relationship between the object on the rotating stage 143 and the virtual object when the object is photographed from different angles, and use this to aid in alignment.
[0144] Furthermore, if the rotating stage 143 has a structure that allows it to be tilted, as described above, the tilt information can be linked with the alignment function. For example, by providing a section in the application to input tilt information (tilt angle information) of the rotating stage 143, and having the controller 200 acquire this information, it can be linked to the virtual space, and the virtual object can be positioned considering the tilt angle of the rotating stage 143.
[0145] The embodiments described above are in all respects merely illustrative and should not be interpreted restrictively. Furthermore, any modifications or changes that fall within the equivalent scope of the claims are all within the scope of the present invention. [Industrial applicability]
[0146] As described above, the three-dimensional scanner according to the present invention can be used to generate three-dimensional data of various workpieces. [Explanation of Symbols]
[0147] 1. Three-dimensional scanner 240 Storage device (storage unit) 255 Display Control Unit 270 Acquisition Department 271 Reading section 272 Data Processing Department 273 Calculation Section 274 Arithmetic section 275 Alignment section 280 Analysis Department 281 Analysis Preparation Department 282 Analysis Execution Unit 285 Reception Department 400 Display
Claims
1. A three-dimensional scanner that generates three-dimensional data of a workpiece, A reading unit that reads the CAD data of the workpiece stored in the memory unit, A calculation unit calculates the correspondence between the coordinate system of the CAD data read out by the reading unit and the scanner coordinate system. Based on the correspondence relationship obtained by the calculation unit, a display control unit displays CAD data on the display unit, A calculation unit that identifies the orientation of CAD data and calculates the relative positional relationship between the coordinate system of the CAD data corresponding to the identified orientation and the scanner coordinate system, An acquisition unit that acquires three-dimensional data of the workpiece, Based on the relative positional relationship calculated by the calculation unit and the scanner coordinate system, the alignment unit aligns the CAD data read by the reading unit with the three-dimensional data of the workpiece obtained by the acquisition unit. A three-dimensional scanner comprising: an analysis unit that performs analysis on the three-dimensional data of a workpiece obtained by the acquisition unit, based on the alignment result by the alignment unit and the CAD data read by the reading unit.
2. In the three-dimensional scanner according to claim 1, The calculation unit, with the coordinate system of the CAD data and the scanner coordinate system associated based on the correspondence obtained by the calculation unit, calculates the positional relationship between the origin of the coordinate system of the CAD data and the origin of the scanner coordinate system. The alignment unit is a three-dimensional scanner that aligns the CAD data read by the reading unit with the three-dimensional data of the workpiece obtained by the acquisition unit, based on the positional relationship calculated by the calculation unit and the positional coordinates of the three-dimensional data of the workpiece obtained by the acquisition unit in the scanner coordinate system.
3. In the three-dimensional scanner according to claim 1, The display unit further includes a receiving unit that receives instructions to change the orientation of the CAD data displayed on the display unit, and also receives instructions to start measurement. The calculation unit calculates a recommended orientation for the workpiece that can be placed during scanning based on the correspondence between the coordinate system of the CAD data of the workpiece read by the reading unit and the scanner coordinate system, and also calculates the correspondence between the coordinate system of the CAD data corresponding to the orientation of the modified CAD data and the scanner coordinate system based on the instructions received by the receiving unit. The display control unit causes the display unit to display the CAD data in the recommended orientation, and changes the orientation of the displayed CAD data based on the change instruction received by the reception unit and the correspondence obtained by the calculation unit. The calculation unit is a three-dimensional scanner that, when it receives a measurement start instruction from the reception unit, sets the orientation of the CAD displayed on the display unit to a specific orientation.
4. In the three-dimensional scanner according to claim 1, The display unit further includes a receiving unit that receives instructions to change the orientation of the CAD data displayed on the display unit, and also receives instructions to start measurement. The calculation unit calculates a recommended orientation with a large amount of data obtainable by the acquisition unit during scanning, based on the correspondence between the coordinate system of the CAD data of the workpiece read by the reading unit and the scanner coordinate system, and also calculates the correspondence between the coordinate system of the CAD data corresponding to the orientation of the modified CAD data and the scanner coordinate system, based on the instructions received by the receiving unit. The display control unit causes the display unit to display the CAD data in the recommended orientation, and changes the orientation of the displayed CAD data based on the change instruction received by the reception unit and the correspondence obtained by the calculation unit. The calculation unit is a three-dimensional scanner that, when it receives a measurement start instruction from the reception unit, sets the orientation of the CAD displayed on the display unit to a specific orientation.
5. In the three-dimensional scanner according to claim 1, The aforementioned analysis unit, An analysis preparation unit operates in two modes: an actual measurement analysis mode that assigns analysis settings to the three-dimensional data obtained by the acquisition unit, and an analysis preparation mode that assigns analysis settings to the CAD data read out by the readout unit. A three-dimensional scanner comprising: an analysis preparation unit that, when operating in the measurement analysis mode, performs an analysis on the three-dimensional data obtained by the acquisition unit based on the analysis settings assigned to the three-dimensional data in the analysis preparation unit; and an analysis execution unit that, when operating in the analysis preparation mode, performs an analysis on the three-dimensional data obtained by the acquisition unit based on the analysis settings assigned to the CAD data in the analysis preparation unit.
6. In the three-dimensional scanner according to claim 5, In the analysis preparation mode, the analysis preparation unit creates a CAD analysis template file that associates the CAD data read by the reading unit with the analysis settings, and stores it in the storage unit. The reading unit is configured to read the CAD analysis template file stored in the storage unit, The analysis execution unit is a three-dimensional scanner that performs analysis on the three-dimensional data obtained by the acquisition unit based on the analysis settings contained in the CAD analysis template file read by the reading unit.
7. In the three-dimensional scanner according to claim 5, The system further includes a reception unit that accepts settings for the analysis to be performed by the aforementioned analysis unit, In the above measurement analysis mode, The display control unit displays the three-dimensional data of the workpiece obtained by the acquisition unit and an analysis user interface screen that displays setting items related to the analysis on the display unit. The reception unit receives the analysis settings to be assigned to the three-dimensional data based on the analysis user interface screen. The analysis preparation unit assigns the analysis settings received by the reception unit to the three-dimensional data of the workpiece obtained by the acquisition unit. In the aforementioned analysis preparation mode, The display control unit causes the CAD data contained in the file read by the reading unit and the analysis user interface screen to be displayed on the display unit. The reception unit receives the analysis settings to be assigned to the CAD data based on the analysis user interface screen. The analysis preparation unit is a three-dimensional scanner that creates a CAD analysis template file by associating the CAD data with the analysis settings received by the reception unit and stores it in the storage unit.
8. In the three-dimensional scanner according to claim 5, A reception unit that accepts the settings for the analysis to be performed by the aforementioned analysis unit, The system further includes a data processing unit that tessellates the CAD data read by the aforementioned reading unit, The acquisition unit processes the three-dimensional data into a mesh at a predetermined density, The data processing unit tessellates the CAD data read by the reading unit based on the predetermined density. In the above measurement analysis mode, The display control unit causes the three-dimensional data processed by the acquisition unit to be displayed on the display unit. The reception unit accepts the specification of a position for the three-dimensional data obtained by the acquisition unit, and also accepts the analysis settings related to that position. The analysis preparation unit assigns the analysis settings to the three-dimensional data obtained by the acquisition unit, based on the position and analysis settings received by the reception unit. In the aforementioned analysis preparation mode, The display control unit causes the CAD data tessellated by the data processing unit to be displayed on the display unit. The receiving unit accepts the specification of a position for the CAD data obtained by the data processing unit, and also accepts the analysis settings related to said position. The analysis preparation unit is a three-dimensional scanner that creates a CAD analysis template file that associates the CAD data with the analysis settings based on the position and analysis settings received by the reception unit, and stores it in the storage unit.
9. A three-dimensional scanner that generates three-dimensional data of a workpiece, A reading unit that reads the CAD data of the workpiece stored in the memory unit, A calculation unit calculates the correspondence between the coordinate system of the CAD data and the scanner coordinate system, based on the CAD data read out by the aforementioned reading unit. Based on the correspondence relationship obtained by the calculation unit, a display control unit is provided to display the CAD data and the scan head on the display unit. Based on the display on the display unit, the positional relationship between the CAD data and the scan head is identified, and a calculation unit calculates the coordinate system of the CAD data corresponding to the identified positional relationship and the relative positional relationship of the scanner coordinate system. An acquisition unit that acquires three-dimensional data of the workpiece, Based on the relative positional relationship calculated by the calculation unit and the scanner coordinate system, the alignment unit aligns the CAD data read by the reading unit with the three-dimensional data of the workpiece obtained by the acquisition unit. A three-dimensional scanner comprising: an analysis unit that performs analysis on the three-dimensional data of a workpiece obtained by the acquisition unit, based on the alignment result by the alignment unit and the CAD data read by the reading unit.
Citation Information
Patent Citations
Three-dimensional shape data generation apparatus
JP2024051797A