JP7343348B2 - Programming support device and programming support method - Google Patents

Programming support device and programming support method Download PDF

Info

Publication number
JP7343348B2
JP7343348B2 JP2019184677A JP2019184677A JP7343348B2 JP 7343348 B2 JP7343348 B2 JP 7343348B2 JP 2019184677 A JP2019184677 A JP 2019184677A JP 2019184677 A JP2019184677 A JP 2019184677A JP 7343348 B2 JP7343348 B2 JP 7343348B2
Authority
JP
Japan
Prior art keywords
module
keyword
search
common
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019184677A
Other languages
Japanese (ja)
Other versions
JP2021060807A (en
Inventor
伸夫 苗村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2019184677A priority Critical patent/JP7343348B2/en
Publication of JP2021060807A publication Critical patent/JP2021060807A/en
Application granted granted Critical
Publication of JP7343348B2 publication Critical patent/JP7343348B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、プログラミング支援装置及びプログラミング支援方法に関し、CADを用いて製品設計段階で製品の加工や製造及び保守のしやすさをチェックする設計ルールの判定プログラムの作成を支援するプログラミング支援装置及びプログラミング支援方法に適用して好適なものである。 The present invention relates to a programming support device and a programming support method, and relates to a programming support device and a programming support method that use CAD to support the creation of a design rule judgment program that checks the ease of processing, manufacturing, and maintenance of a product at the product design stage. This is suitable for application to support methods.

コンピュータ上のCADシステムを用いて製品を設計する際、作成中のCADモデルに対して、穴あけや曲げなどに代表される加工のしやすさ、溶接やネジ締結などに代表される組立のしやすさをまとめた製造ルールを満たすか、CAD操作者である設計者自身でチェックする必要がある。さらに、組立後の製品についても、点検が必要な部位については解体順や点検部位への工具のアクセスのしやすさなどをまとめた保守ルールをチェックする必要がある。ここでは、これらの製造ルールや保守ルールをまとめて、設計時に考慮すべきルールとして設計ルールと呼ぶ。 When designing a product using a computer-based CAD system, the CAD model being created is checked for ease of processing such as drilling and bending, and ease of assembly such as welding and screw fastening. It is necessary for the designer, who is a CAD operator, to check whether the manufacturing rules that summarize the details are satisfied. Furthermore, even after assembly, it is necessary to check the maintenance rules that outline the order of disassembly and ease of access of tools to inspection parts for parts that require inspection. Here, these manufacturing rules and maintenance rules are collectively referred to as design rules, which are rules to be considered during design.

設計ルールは、一つの製品に対して数万程度のルールが存在する場合もあり、通常、文章や図、表で定義されている。例えば、設計ルールの中には、「板厚〇mmのステンレス鋼材料の穴径は△mm以上とする」、「部品Aと部品Bの距離はある一定距離以上離すこと」のようなルールが存在する。 There may be tens of thousands of design rules for a single product, and they are usually defined in text, diagrams, or tables. For example, some of the design rules include rules such as ``The hole diameter of stainless steel material with a plate thickness of 〇mm shall be △mm or more'' and ``The distance between parts A and B must be at least a certain distance.'' exist.

従来、これら設計ルールについては、設計仕様書や経験に基づき、設計者自身が目視でCADモデルをチェックしてきた。しかし、近年の高度化及び複雑化したCADモデルにおいては、目視でチェックするにはチェック工数が多く、設計時間の増大が課題となっていた。また、目視で設計ルールを抜け漏れ無くチェックするのは困難であった。さらに、これらのチェック漏れが原因で、製造工程から設計への手戻りが生じていた。 Conventionally, regarding these design rules, designers themselves have visually checked CAD models based on design specifications and experience. However, in recent years, CAD models have become more sophisticated and complex, and visual checking requires a large number of man-hours, resulting in an increase in design time. In addition, it was difficult to visually check the design rules without omission. Furthermore, omissions in these checks led to rework from the manufacturing process to the design.

そこで、CAD上で動作するプログラムを用いて、これらの設計ルールを自動的にチェックする設計支援装置が提案されている。設計ルールをプログラムで自動的にチェックする場合、CAD形状から違反の有無を判定できるようルールを定量化する必要がある。そこで、設計ルールの内、CAD上での形状認識によりチェックできるルールを判定ルールと定義する。前述した設計ルールの例であれば、「板厚〇mmのステンレス鋼材料の穴径は△mm以上とする」が判定ルールに相当し、「If 板厚 閾値以上 Then 穴径 閾値未満」が違反箇所として抽出されるように、プログラム上でチェック可能な状態にする必要がある。 Therefore, a design support device has been proposed that automatically checks these design rules using a program running on CAD. When automatically checking design rules using a program, it is necessary to quantify the rules so that the presence or absence of violations can be determined from the CAD shape. Therefore, among the design rules, rules that can be checked by shape recognition on CAD are defined as determination rules. In the example of the design rule mentioned above, "The hole diameter of a stainless steel material with a plate thickness of 〇mm shall be △mm or more" corresponds to the judgment rule, and "If plate thickness is greater than or equal to the threshold value, then hole diameter is less than the threshold value" is a violation. It is necessary to make it possible to check it on the program so that it can be extracted as a part.

判定ルールは通常、幾何形状探索や数値演算等の関数を組み合わせた判定プログラムを構築することで、ルールチェックできる形態になる。ここで、前述した判定ルール「板厚〇mmのステンレス鋼材料の穴径は△mm以上とする」を例にとると、判定プログラムの具体例は以下の通りとなる。
1)板厚探索→2)閾値以上→3)穴探索→4)穴径計算→5)閾値未満
Judgment rules usually take the form of rules that can be checked by constructing a judgment program that combines functions such as geometric shape search and numerical calculation. Here, taking as an example the above-described determination rule "The hole diameter of a stainless steel material with a plate thickness of 0 mm shall be Δmm or more", a specific example of the determination program is as follows.
1) Plate thickness search → 2) More than threshold value → 3) Hole search → 4) Hole diameter calculation → 5) Less than threshold value

しかし、判定プログラムにおける関数の組合せはこの一通りに限らず、様々な関数の組合せや順序が存在し得る。形状認識に関する事前知識を有しないユーザにとって関数の選択は困難であり、さらに、関数の組合せや順序の違いにより、後述する違反箇所の評価結果に大きな差異が生じるため、判定プログラムに用いる最適な組合せを見つけるには、試行錯誤が必要で大きな工数がかかる。また、判定プログラムに限らず、一般のプログラムに対しても複雑なプログラム作成における試行錯誤の工数低減が課題とされている。 However, the combination of functions in the determination program is not limited to this one, and various combinations and orders of functions may exist. It is difficult for users who do not have prior knowledge about shape recognition to select a function, and furthermore, differences in the combination and order of functions can cause large differences in the evaluation results of violation points, which will be described later. Finding out requires trial and error and takes a lot of man-hours. In addition, reducing the number of trial-and-error steps required to create complex programs is an issue not only for determination programs but also for general programs.

例えば特許文献1には、一般のプログラムに対して、プログラムを機能ブロックに分解し、各機能ブロックに対して名称と要約文を設定することで、キーワードによる機能ブロック検索、再利用を行う方法が開示されている。特許文献1に開示された上記方法によれば、新規のプログラム作成時に既存のプログラムに含まれる機能ブロックを再利用し、プログラミングの工数を低減することができる。 For example, Patent Document 1 describes a method for searching and reusing functional blocks using keywords for general programs by breaking the program into functional blocks and setting a name and summary sentence for each functional block. Disclosed. According to the method disclosed in Patent Document 1, functional blocks included in an existing program can be reused when creating a new program, thereby reducing the number of programming steps.

特開平8-147154号公報Japanese Patent Application Publication No. 8-147154

特許文献1の方法によってプログラムの一部(例えば機能ブロック、言い換えればモジュール)を再利用する場合、使用者がモジュールを構成する関数を指定し、主に手動でキーワードや名称、要約文を付与する必要がある。しかし、複数の使用者がモジュールの構成を指定する場合、使用者によってモジュールの定義範囲が異なることで再利用が困難になる可能性がある。また、既存のプログラムに対して個別にモジュールを指定し、キーワードや名称、要約文を付与する作業の工数が大きく、実用化までに時間を要する場合がある。モジュールが階層構造をなす場合、これらの工数はさらに大きくなり、工数削減のためにモジュールの再利用範囲を限定することになる。 When reusing a part of a program (for example, a functional block, in other words, a module) by the method of Patent Document 1, the user specifies the functions that make up the module and mainly manually assigns keywords, names, and summary sentences. There is a need. However, when multiple users specify the configuration of a module, reuse may become difficult because the definition range of the module differs depending on the user. In addition, the work of individually specifying modules and assigning keywords, names, and summaries to existing programs requires a large amount of man-hours, and it may take time to put the program into practical use. When modules have a hierarchical structure, these man-hours become even larger, and the range of module reuse is limited in order to reduce man-hours.

本発明はこのような状況を鑑みて成されたものであり、既存の複数のプログラムから再利用しやすいモジュールを抽出し、プログラム作成におけるモジュールの再利用を支援することを目的とする。 The present invention was made in view of the above situation, and it is an object of the present invention to extract modules that are easy to reuse from a plurality of existing programs and to support the reuse of modules in program creation.

上記課題を解決するため、本発明に係るプログラミング支援装置は、複数の既存プログラムを保存する既存プログラム記憶部と、前記既存プログラム記憶部に保存された前記複数のうちの2以上の前記既存プログラムの共通部分をモジュールと定義して抽出する共通モジュール抽出部と、前記共通モジュール抽出部で抽出された前記モジュールを保存するモジュール記憶部と、前記モジュール記憶部に保存された前記モジュールを検索するモジュール検索部と、前記モジュール検索部による検索結果を出力する出力部と、を備える。 In order to solve the above problems, a programming support device according to the present invention includes an existing program storage section that stores a plurality of existing programs, and a programming support device that stores two or more of the plurality of existing programs stored in the existing program storage section. a common module extraction unit that defines and extracts a common part as a module; a module storage unit that stores the module extracted by the common module extraction unit; and a module search that searches for the module stored in the module storage unit. and an output unit that outputs the search results by the module search unit.

また、上記課題を解決するため、本発明に係るプログラミング支援方法は、複数の既存プログラムを保存する既存プログラム保存ステップと、前記既存プログラム保存ステップで保存された前記複数のうちの2以上の既存プログラムの共通部分をモジュールと定義して抽出する共通モジュール抽出ステップと、前記共通モジュール抽出ステップで抽出された前記モジュールを保存するモジュール保存ステップと、前記モジュール保存ステップで保存された前記モジュールを検索するモジュール検索ステップと、前記モジュール検索ステップによる検索結果を出力する出力ステップと、を備える。 Furthermore, in order to solve the above problems, the programming support method according to the present invention includes an existing program saving step for saving a plurality of existing programs; and two or more existing programs among the plurality of existing programs saved in the existing program saving step. a common module extracting step of defining and extracting a common part of the common module as a module; a module saving step of saving the module extracted in the common module extracting step; and a module searching for the module saved in the module saving step. The method includes a search step, and an output step for outputting the search results from the module search step.

本発明によれば、既存の複数のプログラムから再利用しやすいモジュールを抽出し、プログラム作成におけるモジュールの再利用を支援することができる。 According to the present invention, it is possible to extract modules that are easy to reuse from a plurality of existing programs, and to support module reuse in program creation.

本発明の一実施形態に係るプログラミング支援装置を利用したCADシステムの設計支援装置の全体構成例を示すブロック図である。1 is a block diagram showing an example of the overall configuration of a design support device for a CAD system using a programming support device according to an embodiment of the present invention. 本発明の一実施例に係るプログラミング支援装置の構成例を示すブロック図である。FIG. 1 is a block diagram showing an example of the configuration of a programming support device according to an embodiment of the present invention. 判定プログラムを一般的なグラフ構造で表現した一例を示す図である。FIG. 2 is a diagram showing an example of a determination program expressed in a general graph structure. キーワードを木構造で表現した一例を示す図である。FIG. 2 is a diagram showing an example of keywords expressed in a tree structure. モジュールの抽出例を説明するイメージ図である。FIG. 3 is an image diagram illustrating an example of module extraction. モジュール抽出の処理手順例を示すフローチャートである。3 is a flowchart illustrating an example of a processing procedure for module extraction. キーワードの抽出例を説明するイメージ図である。FIG. 3 is an image diagram illustrating an example of keyword extraction. キーワード抽出の処理手順例を示すフローチャートである。3 is a flowchart illustrating an example of a processing procedure for keyword extraction. モジュールDBに保存されるモジュール及びキーワードの一例を示す図である。It is a diagram showing an example of modules and keywords stored in a module DB. キーワード選択画面の一例を示す図である。It is a figure showing an example of a keyword selection screen. 検索結果表示画面の一例を示す図である。It is a figure showing an example of a search result display screen. キーワードを用いない場合のモジュール検索画面の一例を示す図である。It is a figure showing an example of a module search screen when a keyword is not used.

図1は、本発明の一実施形態に係るプログラミング支援装置を利用したCADシステムの設計支援装置の全体構成例を示すブロック図である。図1に示すように、設計支援装置100は、判定ルール選択部101、判定プログラムDB(データベース)102、及びモデル判定部103から構成され、CADシステム104と接続される。 FIG. 1 is a block diagram showing an example of the overall configuration of a design support device for a CAD system using a programming support device according to an embodiment of the present invention. As shown in FIG. 1, the design support apparatus 100 includes a judgment rule selection section 101, a judgment program DB (database) 102, and a model judgment section 103, and is connected to a CAD system 104.

設計支援装置100は、CADシステム104に読み込むCADモデル105について、使用者が選択した判定ルールに違反していないかを判定し、その判定結果を出力することによって、CADの設計支援を行う装置である。設計支援装置100の動作について、以下に説明する。 The design support device 100 is a device that provides CAD design support by determining whether a CAD model 105 read into the CAD system 104 violates a determination rule selected by the user and outputting the determination result. be. The operation of the design support device 100 will be explained below.

まず、判定プログラムDB102には、個々の判定ルールの違反を判定する複数の判定プログラムが保存されており、判定ルール選択部101は、判定プログラムDB102に保存された判定プログラムに関する可読情報を表示する。可読情報には、例えば、判定プログラムに対応する判定ルールの名称、キーワード、要約文、または数式などを含めることができる。 First, the determination program DB 102 stores a plurality of determination programs for determining violations of individual determination rules, and the determination rule selection unit 101 displays readable information regarding the determination programs stored in the determination program DB 102. The readable information can include, for example, the name of the determination rule corresponding to the determination program, a keyword, a summary sentence, or a mathematical formula.

上記の可読情報の表示に基づいて、使用者は、判定ルール選択部101によって、CADモデル105に適用する判定ルールを選択し、判定ルール選択部101は、選択された判定ルールに対応する判定プログラムをモデル判定部103に送信する。 Based on the above display of the readable information, the user selects a judgment rule to be applied to the CAD model 105 using the judgment rule selection unit 101, and the judgment rule selection unit 101 selects a judgment rule corresponding to the selected judgment rule. is transmitted to the model determination unit 103.

そしてモデル判定部103は、CADシステム104からCADモデル105に関する情報を受信し、受信したCADモデル105に関する情報に対して判定ルール選択部101から受信した判定プログラムを実行することにより、CADモデル105における判定ルールの違反の有無を判定する。モデル判定部103による判定結果はCADシステム104に送信され、違反の有無や違反箇所が可視化されて表示される。なお、判定結果の利用方法はこの限りではなく、例えばCADシステム104を用いずに判定結果をファイル出力したり、CADモデル105の違反箇所強調したCADモデルを出力したりしてもよい。 Then, the model determination unit 103 receives information regarding the CAD model 105 from the CAD system 104, and executes the determination program received from the determination rule selection unit 101 on the received information regarding the CAD model 105. Determine whether or not there is a violation of the determination rule. The determination result by the model determination unit 103 is transmitted to the CAD system 104, and the presence or absence of a violation and the location of the violation are visualized and displayed. Note that the method of using the determination results is not limited to this. For example, the determination results may be output to a file without using the CAD system 104, or a CAD model in which the violation portions of the CAD model 105 are highlighted may be output.

上記のような設計支援装置100に対して、本実施形態に係るプログラミング支援装置200は、既存の複数の判定プログラムに基づいて、新たな判定プログラムを作成する際に部品として再利用可能なモジュール(さらにはキーワード)を抽出することにより、設計支援装置100の判定プログラムDB102に保存する新たな判定プログラムの作成(図1に示したプログラミング106)を支援することができる。以下では、このような本実施形態に係るプログラミング支援装置200について、図面を参照しながら説明する。なお、本発明のプログラミング支援装置は、設計支援装置100で使用されるCADモデル105用の判定プログラムの作成支援に限定されるものではなく、一般のプログラムの作成支援にも同様に適用できる。 In contrast to the design support device 100 described above, the programming support device 200 according to the present embodiment has modules ( Furthermore, by extracting keywords), it is possible to support creation of a new determination program (programming 106 shown in FIG. 1) to be stored in the determination program DB 102 of the design support apparatus 100. The programming support device 200 according to this embodiment will be described below with reference to the drawings. Note that the programming support device of the present invention is not limited to support for creating a determination program for the CAD model 105 used in the design support device 100, but can be similarly applied to support for creating a general program.

図2は、本発明の一実施形態に係るプログラミング支援装置の構成例を示すブロック図である。図2に示すように、プログラミング支援装置200は、既存プログラムDB(データベース)201、共通モジュール抽出部202、共通キーワード抽出部203、モジュールDB204、キーワード選択部205、モジュール検索部206、及びモジュール表示部207を備えて構成される。 FIG. 2 is a block diagram showing a configuration example of a programming support device according to an embodiment of the present invention. As shown in FIG. 2, the programming support device 200 includes an existing program DB (database) 201, a common module extraction section 202, a common keyword extraction section 203, a module DB 204, a keyword selection section 205, a module search section 206, and a module display section. 207.

プログラミング支援装置200は、一般的なコンピュータで実現することができ、例えば中央処理装置(CPU:Central Processing Unit)、主記憶装置、補助記憶装置、入力装置、出力装置、及び各種インタフェースを備えて構成される。プログラミング支援装置200が上記のハードウェア構成を有する場合、図2に示した既存プログラムDB201及びモジュールDB204は、補助記憶装置によって実現される。また、共通モジュール抽出部202、共通キーワード抽出部203、及びモジュール検索部206は、CPUが、主記憶装置に予め記憶された所定のプログラムを読み出し、必要に応じて補助記憶装置に格納された情報等を参照しながら当該プログラムを実行することによって実現される。また、キーワード選択部205は、出力装置に表示された入力画面(キーワード選択画面)に対して使用者が行った操作を入力装置が受け付けることによって実現される。モジュール表示部207は、出力装置が所定の出力画面(結果表示画面)を出力することによって実現される。 The programming support device 200 can be realized by a general computer, and includes, for example, a central processing unit (CPU), a main storage device, an auxiliary storage device, an input device, an output device, and various interfaces. be done. When the programming support device 200 has the above hardware configuration, the existing program DB 201 and module DB 204 shown in FIG. 2 are realized by an auxiliary storage device. In addition, the common module extraction unit 202, the common keyword extraction unit 203, and the module search unit 206 allow the CPU to read out a predetermined program stored in advance in the main storage device, and, as necessary, retrieve information stored in the auxiliary storage device. This is achieved by executing the program while referring to the above. Further, the keyword selection unit 205 is realized by the input device receiving an operation performed by a user on an input screen (keyword selection screen) displayed on the output device. The module display section 207 is realized by the output device outputting a predetermined output screen (result display screen).

既存プログラムDB201には、既存の判定プログラム208が対応するキーワード209とともに複数保存されている。既存プログラムDB201は、図1に示した設計支援装置100の判定プログラムDB102と同一のデータベースとしてもよいが、判定プログラムDB102が適用する製品や部位ごとに分けて設けられている場合には、それらを統合したものを既存プログラムDB201として扱ってもよい。 In the existing program DB 201, a plurality of existing determination programs 208 are stored together with corresponding keywords 209. The existing program DB 201 may be the same database as the judgment program DB 102 of the design support apparatus 100 shown in FIG. The integrated program may be treated as the existing program DB 201.

判定プログラム208はどのようなプログラミング言語で作成されていてもよく、例えば、単純な機能を有するノードを接続することでプログラムとなるようなビジュアルプログラミングを用いてもよい。ここでは、判定プログラム208がビジュアルプログラミングのように、ノードの組合せによってグラフ構造で表現される場合を例として、プログラミング支援装置200の機能について説明する。ただし、判定プログラム208がビジュアルプログラミングではない通常のプログラミング言語であっても、その処理は、関数やサブルーチン間をノード、変数のやり取りを有効のエッジで表すことにより、プログラムをグラフ構造で表現できるため、同様の機能を実現できる。 The determination program 208 may be created in any programming language; for example, visual programming may be used in which a program is created by connecting nodes with simple functions. Here, the functions of the programming support device 200 will be described using an example in which the determination program 208 is expressed in a graph structure by a combination of nodes, such as in visual programming. However, even if the judgment program 208 is a normal programming language that is not visual programming, the program can be expressed in a graph structure by representing nodes between functions and subroutines, and valid edges representing the exchange of variables. , similar functionality can be achieved.

図3は、判定プログラムを一般的なグラフ構造で表現した一例を示す図である。図3において判定プログラム208は、複数のノード2081及び各ノード間を接続するエッジ2082によって構造が表現されている。各ノード2081は、最小単位の処理を実現する関数を表しており、ノード2081内の文字は関数の種類を表す。各エッジ2082は、関数から関数への変数の入出力を表している。すなわち、ノード2081及びエッジ2082は、判定プログラム208に含まれる関数のパラメータともいえる。なお、判定プログラム208をグラフ構造で表すことが困難な場合、判定プログラム208が複数のノードから成ることを表現できれば、ノードの羅列や木構造、その他の構造を用いてもよい。 FIG. 3 is a diagram showing an example of a determination program expressed in a general graph structure. In FIG. 3, the structure of the determination program 208 is expressed by a plurality of nodes 2081 and edges 2082 connecting the nodes. Each node 2081 represents a function that implements minimum unit processing, and the characters within the node 2081 represent the type of function. Each edge 2082 represents an input/output of a variable from function to function. In other words, the node 2081 and the edge 2082 can be said to be parameters of a function included in the determination program 208. Note that if it is difficult to represent the determination program 208 in a graph structure, a list of nodes, a tree structure, or other structure may be used as long as it can be expressed that the determination program 208 is composed of a plurality of nodes.

図4は、キーワードを木構造で表現した一例を示す図である。判定プログラム208に対応するキーワード209は、単純に順不同で羅列されていてもよいが、ここでは一例として、図4に示したようにキーワード209が木構造で表現される場合を考える。これは、CADモデル(例えば図1のCADモデル105)における判定ルールは、寸法に関連することが多く、寸法は複数の構成部品間の距離や位置関係から計算されることがあるためである。具体的には図4では、判定ルールが「M4」の「ボルト」の「穴」と、「面」の「端辺」との距離である場合におけるキーワード209の木構造を表している。このとき、木構造の根ノード2091には、判定ルールの適用対象である「距離」が入り、その子ノード2092として距離を測るべき「穴」と「端辺」、さらに下層の子ノード2092には穴や端辺を説明する「ボルト」、「面」、「M4」という情報が格納されている。 FIG. 4 is a diagram showing an example of keywords expressed in a tree structure. The keywords 209 corresponding to the determination program 208 may simply be listed in random order, but here, as an example, we will consider a case where the keywords 209 are expressed in a tree structure as shown in FIG. This is because determination rules in a CAD model (for example, the CAD model 105 in FIG. 1) are often related to dimensions, and dimensions may be calculated from the distances and positional relationships between multiple component parts. Specifically, FIG. 4 shows the tree structure of the keywords 209 when the determination rule is the distance between the "hole" of the "bolt" of "M4" and the "edge" of the "face". At this time, the root node 2091 of the tree structure contains the "distance" to which the judgment rule is applied, and its child nodes 2092 include the "hole" and "edge" to which the distance should be measured, and the child nodes 2092 in the lower layer contain Information such as ``bolt'', ``face'', and ``M4'' that describe holes and edges is stored.

共通モジュール抽出部202は、既存プログラムDB201に保存されている全ての判定プログラム208のグラフ構造を比較し、複数の判定プログラム208に共通する部分構造をモジュール210として抽出する。 The common module extraction unit 202 compares the graph structures of all the determination programs 208 stored in the existing program DB 201 and extracts a partial structure common to the plurality of determination programs 208 as a module 210.

共通モジュール抽出部202によるモジュール210の抽出方法は、以下の通りである。本例では、共通モジュール抽出部202は、グラフ構造で表現可能な複数の判定プログラム208を対象として、判定プログラム208に含まれる関数が有するパラメータ(ノード、エッジに相当)の値の一致に基づいて、共通部分を抽出してモジュール210として定義する。具体的にはまず、共通モジュール抽出部202は、複数の判定プログラム208のグラフ構造の間で、共通するノードまたはエッジの数が多い、大きな部分構造から順にモジュール210として抽出する。次に、共通モジュール抽出部202は、モジュール210として抽出した大きな部分構造(上位モジュール)の一部を形成する小さな部分構造(下位モジュール)について、下位モジュールを含む判定プログラム208の数が、上位モジュールを含む判定プログラム208の数よりも多い場合に、当該下位モジュールもモジュール210として抽出する。 The method for extracting the module 210 by the common module extraction unit 202 is as follows. In this example, the common module extraction unit 202 targets a plurality of determination programs 208 that can be expressed in a graph structure, based on matching values of parameters (corresponding to nodes and edges) of functions included in the determination programs 208. , a common part is extracted and defined as a module 210. Specifically, first, the common module extraction unit 202 extracts the graph structures of the plurality of determination programs 208 as modules 210 in descending order of the number of nodes or edges in common, starting with the largest partial structure. Next, the common module extracting unit 202 determines whether the number of determination programs 208 including the lower module is higher than the upper module for the small partial structure (lower module) that forms part of the larger partial structure (upper module) extracted as the module 210. , the lower module is also extracted as a module 210.

図5は、モジュールの抽出例を説明するイメージ図である。図5では簡便のため、最も単純な直列のグラフ構造を有する3つの判定プログラムA~Cを用いる。 FIG. 5 is an image diagram illustrating an example of module extraction. In FIG. 5, for simplicity, three determination programs A to C having the simplest serial graph structure are used.

上述した抽出方法に従って、図5の判定プログラムA~Cのグラフ構造を比較すると、まず、領域301において、最も多い3つのノードと3つのエッジからなる「A-B-C-」の部分構造を見つけることができ、これが最上位のモジュール210(モジュールA)として抽出される。モジュールAを含む判定プログラムの数は2である。なお、上記の部分構造の記載において、英字はノードを表し、「-」はエッジを表す。 Comparing the graph structures of the determination programs A to C in FIG. 5 according to the extraction method described above, first, in the area 301, the partial structure of "A-B-C-" consisting of the three nodes and three edges that is the most common is found. This is extracted as the top module 210 (module A). The number of determination programs including module A is two. Note that in the above description of the partial structure, alphabetic characters represent nodes, and "-" represents edges.

次に、領域302において、モジュールAの部分構造である「A-B-」を検討する。この部分構造「A-B-」を含む判定プログラムの数は3であり、上位モジュールであるモジュールAを含む判定プログラムの数2よりも多いことから、モジュール210(モジュールB)として抽出される。 Next, in area 302, the partial structure of module A, "AB-", is considered. The number of determination programs that include this partial structure "AB-" is three, which is greater than the number of determination programs that include module A, which is a higher-level module (two), and is therefore extracted as module 210 (module B).

次に、領域303において、2つのノードと2つのエッジからなる「-E-F」の部分構造を検討する。この部分構造「-E-F」には上位モジュールは存在しないため、モジュール210(モジュールC)として抽出される。 Next, in the region 303, consider the partial structure of "-EF" consisting of two nodes and two edges. Since there is no upper module in this partial structure "-EF", it is extracted as module 210 (module C).

図5の場合、上記以外の部分構造は、本抽出方法の条件に該当しないため、抽出するモジュール210とは判定されない(非モジュール)。具体的には例えば、領域304には、モジュールAまたはモジュールBの部分構造の1つとして、「A-」の部分構造が示されており、この部分構造「A-」を含む判定プログラムの数は3である。しかし、上位モジュールである「A-B-」によるモジュールBを含む判定プログラムの数も3であることから、抽出条件に合致せず、モジュール210とは判定されない。 In the case of FIG. 5, partial structures other than the above do not meet the conditions of this extraction method, and therefore are not determined to be the module 210 to be extracted (non-modules). Specifically, for example, in the area 304, a partial structure "A-" is shown as one of the partial structures of module A or module B, and the number of determination programs that include this partial structure "A-" is is 3. However, since the number of determination programs including module B based on the upper module "AB-" is also three, the extraction condition is not met and module 210 is not determined.

以上に説明したように、図5の場合は、共通モジュール抽出部202は、3つのモジュールA~Cをモジュール210として抽出する。なお、ノードやエッジが独自の変数、パラメータ、またはスイッチ等を持つ場合、これらの数値やスイッチのオン/オフが共通するか否かを用いてモジュールの抽出を行ってもよい。例えば、ボルトねじ部の直径を計測するノードがあった場合、パラメータAが0の場合は呼び径、1の場合は谷径を用いる、といった方法を採用してもよい。 As explained above, in the case of FIG. 5, the common module extraction unit 202 extracts three modules A to C as modules 210. Note that when nodes and edges have unique variables, parameters, switches, etc., modules may be extracted using whether these numerical values or switch on/off states are common. For example, if there is a node that measures the diameter of a bolt thread, a method may be adopted in which if the parameter A is 0, the nominal diameter is used, and if the parameter A is 1, the root diameter is used.

なお、図5では、判定プログラムA~Cが最も単純な直列のグラフ構造を有するとして説明したが、共通モジュール抽出部202は、一般のグラフ構造を有する判定プログラムでも同様にしてモジュール210を抽出することができる。このようなモジュール抽出のプログラム処理によるアルゴリズムを図6に示す。 In addition, in FIG. 5, the description has been made assuming that the determination programs A to C have the simplest serial graph structure, but the common module extraction unit 202 extracts the module 210 in the same manner even in determination programs that have a general graph structure. be able to. FIG. 6 shows an algorithm based on program processing for such module extraction.

図6は、モジュール抽出の処理手順例を示すフローチャートである。図6の処理は共通モジュール抽出部202によって実行される。 FIG. 6 is a flowchart illustrating an example of a processing procedure for module extraction. The process in FIG. 6 is executed by the common module extraction unit 202.

図6によればまず、共通モジュール抽出部202は、登録済みモジュールの数を示す変数mの値を0とする(ステップS101)。そして、共通モジュール抽出部202は、既存プログラムDB201に保存された判定プログラム208のそれぞれについて、ノード数及びエッジ数の和を計算し(ステップS102)、それらの和のうちの最大値をNとして、一時変数nにNをセットする(ステップS103)。 According to FIG. 6, first, the common module extraction unit 202 sets the value of the variable m indicating the number of registered modules to 0 (step S101). Then, the common module extraction unit 202 calculates the sum of the number of nodes and the number of edges for each of the determination programs 208 stored in the existing program DB 201 (step S102), and sets the maximum value of these sums to N, A temporary variable n is set to N (step S103).

次に、共通モジュール抽出部202は、一時変数iに「m+1」の値(例えば、初回時の処理では1となる)をセットする(ステップS104)。 Next, the common module extraction unit 202 sets a value of "m+1" (for example, 1 in the first processing) to a temporary variable i (step S104).

次に、共通モジュール抽出部202は、全ての判定プログラム208に対して、ノード数とエッジ数の和がnである共通部分を検索する(ステップS105)。なお、ステップS105の処理では、検索済みの共通部分は検索対象から除外する。 Next, the common module extraction unit 202 searches all the determination programs 208 for a common part where the sum of the number of nodes and the number of edges is n (step S105). Note that in the process of step S105, the searched common parts are excluded from the search targets.

そして、共通モジュール抽出部202は、ステップS105の検索によって、長さnの共通部分が存在したかを判定し(ステップS106)、存在した場合はステップS107に進み、存在しない場合はステップS112に進む。ステップS106の処理を具体的に補足すると、例えば初回時の処理では、nの値はステップS103でセットされたNであるため、ノード数とエッジ数の和の最大値に相当する長さの共通部分が見つかったか否かが判定される。そしてnの値は、その後の処理を進めることによって、後述するステップS113で1デクリメントされる。すなわち、図6全体では、徐々にnの値を減らしながら、ノード数とエッジ数の和が多い順から共通部分が検索される。 Then, the common module extraction unit 202 determines whether a common part of length n exists through the search in step S105 (step S106), and if it exists, the process proceeds to step S107; if it does not exist, the process proceeds to step S112. . To specifically supplement the processing in step S106, for example, in the first processing, the value of n is N set in step S103, so the common length corresponding to the maximum value of the sum of the number of nodes and the number of edges is It is determined whether the portion is found. Then, the value of n is decremented by 1 in step S113, which will be described later, by proceeding with the subsequent processing. That is, in the entirety of FIG. 6, common parts are searched in descending order of the sum of the number of nodes and the number of edges, while gradually decreasing the value of n.

ステップS107では、共通モジュール抽出部202は、ステップS106で判定された共通部分を含む判定プログラム208の数を「k」とする。 In step S107, the common module extraction unit 202 sets the number of determination programs 208 that include the common portion determined in step S106 to "k i ".

ステップS107に次いで、共通モジュール抽出部202は、ステップS106で判定された共通部分がm個の登録済みモジュールのうちの何れかの部分構造に相当するかを判定し(ステップS108)、何れかの部分構造である場合はステップS109に進み、何れの部分構造でもない場合はステップS110に進む。 Following step S107, the common module extraction unit 202 determines whether the common portion determined in step S106 corresponds to a partial structure of any of the m registered modules (step S108), and If it is a partial structure, the process advances to step S109; if it is not any partial structure, the process advances to step S110.

ステップS109では、共通モジュール抽出部202は、ステップS108で部分構造であると判定された共通部分がm個のうちのj番目の登録済みモジュールの部分構造である場合に、共通する判定プログラム208の数が「k>k」の関係であるかを判定する。ステップS109において「k>k」の関係が成立する場合は、ステップS110に進み、「k>k」の関係が成立しない場合はステップS104に戻って処理を繰り返す。
ステップS110では、共通モジュール抽出部202は、ステップS106で判定された共通部分をi番目のモジュール210として登録し、次いでmにiをセットしたうえで(ステップS111)、ステップS104に戻って処理を繰り返す。
一方、ステップS106において長さnの共通部分が存在しないと判定された場合、共通モジュール抽出部202は、ステップS112において、「n>1」であるかを判定する。ステップS112において「n>1」であった場合は、nの値を1デクリメントして(ステップS113)、ステップS105に戻って処理を繰り返す。なお、ステップS112において「n>1」ではなかった場合は(ステップS112のNO)、ステップS103で決定した最大値Nから1までの全てに対して共通部分の検索が終了したことを意味するので、モジュール抽出の処理を終了する。
In step S109, if the common part determined to be a partial structure in step S108 is a partial structure of the j-th registered module among m pieces, the common module extraction unit 202 extracts the common part from the common determination program 208. It is determined whether the numbers have a relationship of "k i >k j ". If the relationship “k i >k j ” holds true in step S109, the process proceeds to step S110, and if the relationship “k i >k j ” does not hold, the process returns to step S104 and repeats the process.
In step S110, the common module extraction unit 202 registers the common part determined in step S106 as the i-th module 210, then sets m to i (step S111), and returns to step S104 to perform the process. repeat.
On the other hand, if it is determined in step S106 that there is no common portion of length n, the common module extraction unit 202 determines in step S112 whether "n>1". If "n>1" in step S112, the value of n is decremented by 1 (step S113), and the process returns to step S105 to repeat the process. Note that if "n>1" is not satisfied in step S112 (NO in step S112), this means that the search for a common part has been completed for all values from the maximum value N determined in step S103 to 1. , ends the module extraction process.

以上のようにして、共通モジュール抽出部202は、既存プログラムDB201に保存されている複数の判定プログラム208から、共通する部分構造をモジュール210として抽出することができる。共通モジュール抽出部202が抽出したモジュール210は、モジュールDB204に定義(登録)される。後述するように、共通キーワード抽出部203によってモジュール210に継承するキーワード211の抽出が行われる場合は、モジュール210は継承するキーワード211と関連付けてモジュールDB204に定義(登録)される。 As described above, the common module extraction unit 202 can extract a common partial structure as a module 210 from the plurality of determination programs 208 stored in the existing program DB 201. The module 210 extracted by the common module extraction unit 202 is defined (registered) in the module DB 204. As will be described later, when the common keyword extraction unit 203 extracts the keyword 211 to be inherited by the module 210, the module 210 is defined (registered) in the module DB 204 in association with the keyword 211 to be inherited.

共通キーワード抽出部203は、共通するモジュール210を含む複数の判定プログラム208にそれぞれ対応付けられたキーワード209を比較して、上記複数の判定プログラム208の全てに共通するキーワード211を抽出し、このキーワード211を当該モジュール210に継承する。共通キーワード抽出部203が継承させたキーワード211は、モジュール210と関連付けてモジュールDB204に定義(登録)される。 The common keyword extracting unit 203 compares keywords 209 respectively associated with a plurality of determination programs 208 including a common module 210, extracts a keyword 211 common to all of the plurality of determination programs 208, and extracts a keyword 211 common to all of the plurality of determination programs 208, 211 is inherited by the module 210. The keyword 211 inherited by the common keyword extraction unit 203 is defined (registered) in the module DB 204 in association with the module 210.

図5で抽出されたモジュールA~Cを例にとり、キーワード211の具体的な抽出方法を説明する。図7は、キーワードの抽出例を説明するイメージ図である。図7(A)に示したキーワードAは、図5の判定プログラムAに対応付けられたキーワード209を木構造で表したものである。同様に、図7(B)に示したキーワードBは、図5の判定プログラムBに対応付けられたキーワード209を、図7(C)に示したキーワードCは、図5の判定プログラムCに対応付けられたキーワード209を、それぞれ木構造で表したものである。 A specific method for extracting the keyword 211 will be explained by taking the modules A to C extracted in FIG. 5 as an example. FIG. 7 is an image diagram illustrating an example of keyword extraction. The keyword A shown in FIG. 7(A) is a tree structure representation of the keyword 209 associated with the determination program A of FIG. Similarly, the keyword B shown in FIG. 7(B) corresponds to the keyword 209 associated with the determination program B of FIG. 5, and the keyword C shown in FIG. 7(C) corresponds to the determination program C of FIG. The attached keywords 209 are each expressed in a tree structure.

まず、モジュールAに継承されるキーワード211(キーワード311)について考える。図5で説明したように、モジュールAは判定プログラムA,Bに共通するモジュールであるため、図7においてキーワードA及びキーワードBだけに共通する構成を探すと、「-穴-ボルト」という部分が該当する。そこで、図7に示したキーワード311(「-穴-ボルト」)が、モジュールAに継承される。 First, consider the keyword 211 (keyword 311) inherited by module A. As explained in FIG. 5, module A is a module common to determination programs A and B, so when searching for a configuration common only to keyword A and keyword B in FIG. 7, the part "-hole-bolt" is found. Applicable. Therefore, the keyword 311 (“-hole-bolt”) shown in FIG. 7 is inherited by module A.

同様に、モジュールBに継承されるキーワード211(キーワード312)について考えると、モジュールBは判定プログラムA~Cに共通するモジュールであるため、図7においてキーワードA~Cの全てに共通する構成を探すと、「-ボルト」という部分が該当する。そこで、図7に示したキーワード312(「-ボルト」)が、モジュールBに継承される。 Similarly, considering the keyword 211 (keyword 312) inherited by module B, since module B is a module common to determination programs A to C, search for a configuration common to all keywords A to C in FIG. This corresponds to the "-volt" part. Therefore, the keyword 312 (“-volt”) shown in FIG. 7 is inherited by module B.

同様に、モジュールCに継承されるキーワード211(キーワード313)について考えると、モジュールCは判定プログラムA,Cに共通するモジュールであるため、図7においてキーワードA及びキーワードCだけに共通する構成を探すと、「一致-内径-」という部分が該当する。そこで、図7に示したキーワード313(「一致-内径-」)が、モジュールCに継承される。 Similarly, considering the keyword 211 (keyword 313) inherited by module C, since module C is a module common to determination programs A and C, we search for a configuration common only to keyword A and keyword C in FIG. This corresponds to the part "matching - inner diameter". Therefore, the keyword 313 (“match-inner diameter-”) shown in FIG. 7 is inherited by module C.

なお、モジュールCに対応するキーワードとしては、キーワードA,Cの共通部分である「-ボルト」も含まれる可能性があるが、モジュールCを含む判定プログラムA,Cの何れも、「-ボルト」をキーワードとして継承するモジュールBを含むことから、共通キーワード抽出部203は、モジュールCは「―ボルト」と無関係であると判別できる。 Note that the keyword corresponding to module C may include "-volt", which is a common part of keywords A and C, but both determination programs A and C that include module C do not include "-volt". Since it includes module B that inherits "--BOLT" as a keyword, the common keyword extraction unit 203 can determine that module C is unrelated to "-BOLT".

また、共通キーワード抽出部203は、モジュールAとモジュールBとの差分を用いてキーワードを比較することにより、モジュールAには含まれるがモジュールBには含まれないノードCが、「-穴-」というキーワードに対応することを判別できる。そこで、共通キーワード抽出部203は、ノードCを新たなモジュール210として定義し、当該モジュールにキーワード「-穴-」を継承させるようにしてもよい。 In addition, by comparing the keywords using the difference between module A and module B, the common keyword extraction unit 203 identifies node C that is included in module A but not included in module B as "-hole-". It can be determined that it corresponds to the keyword . Therefore, the common keyword extraction unit 203 may define the node C as a new module 210, and cause the module to inherit the keyword "-hole-".

また、共通キーワード抽出部203は、判定プログラムA,B及びキーワードA,Bの差分に着目することにより、判定プログラムBにおける「-G-H-I」の部分構造がキーワード「-距離-端辺-面」に対応することを抽出することができる。また他にも、共通キーワード抽出部203は、判定プログラムAにおいてモジュールA~Cの何れにも含まれないノードDが、キーワードAにおいてキーワード311~313の何れにも含まれないキーワード「-座金」に対応すること等も抽出することができる。そこで共通キーワード抽出部203は、差分を用いて抽出可能なこれらのモジュール210についても、キーワード211と紐付けて定義するようにしてもよい。 In addition, by focusing on the difference between the determination programs A and B and the keywords A and B, the common keyword extraction unit 203 determines that the partial structure of "-G-H-I" in the determination program B is the keyword "-distance-edge." - surface” can be extracted. In addition, the common keyword extracting unit 203 extracts the keyword "-washer" which is not included in any of the keywords 311 to 313 in the keyword A, and the node D which is not included in any of the modules A to C in the determination program A. It is also possible to extract information that corresponds to . Therefore, the common keyword extraction unit 203 may also define these modules 210 that can be extracted using the difference in association with the keywords 211.

以上のように、共通キーワード抽出部203は、共通モジュール抽出部202が抽出したモジュール210のそれぞれについて、継承するキーワード211を抽出し、モジュール210と関連付けてモジュールDB204に定義するだけでなく、判定プログラム208やモジュール210の差分を用いて、新たなモジュール210を抽出し、継承するキーワード211とともにモジュールDB204に定義することもできる。 As described above, the common keyword extraction unit 203 not only extracts the inherited keyword 211 for each of the modules 210 extracted by the common module extraction unit 202 and defines it in the module DB 204 in association with the module 210, but also defines it in the module DB 204. 208 and the module 210, a new module 210 can be extracted and defined in the module DB 204 together with the inherited keyword 211.

図8は、キーワード抽出の処理手順例を示すフローチャートである。図8は、キーワード抽出のプログラム処理によるアルゴリズムを示すものであり、各処理は共通キーワード抽出部203によって実行される。 FIG. 8 is a flowchart illustrating an example of a keyword extraction processing procedure. FIG. 8 shows an algorithm based on program processing for keyword extraction, and each process is executed by the common keyword extraction unit 203.

図8によればまず、共通キーワード抽出部203は、既存プログラムDB201から、対象とするモジュール210(モジュールX)を含む判定プログラム208の集合Pを取得する(ステップS201)。 According to FIG. 8, the common keyword extraction unit 203 first obtains a set P of determination programs 208 including the target module 210 (module X) from the existing program DB 201 (step S201).

次に、共通キーワード抽出部203は、集合Pに属する全ての判定プログラム208に共通するキーワードを共通部分として抽出する(ステップS202)。 Next, the common keyword extraction unit 203 extracts a keyword common to all the determination programs 208 belonging to the set P as a common part (step S202).

次いで、共通キーワード抽出部203は、ステップS202で抽出した共通部分を、モジュールXのキーワード211として、モジュールDB204に定義(登録)する(ステップS203)。 Next, the common keyword extraction unit 203 defines (registers) the common part extracted in step S202 in the module DB 204 as the keyword 211 of module X (step S203).

そして共通キーワード抽出部203は、上記ステップS201~S203の処理を全てのモジュール210を対象に実行した後、処理を終了する。 Then, the common keyword extraction unit 203 executes the processes of steps S201 to S203 described above for all modules 210, and then ends the process.

なお、図8では、判定プログラム208やモジュール210の差分を用いて新たなモジュール210を抽出する処理については記載を省略している。 In addition, in FIG. 8, the description of the process of extracting a new module 210 using the difference between the determination program 208 and the module 210 is omitted.

モジュールDB204は、共通モジュール抽出部202によって抽出されたモジュール210を、共通キーワード抽出部203によって抽出された、当該モジュール210に継承するキーワード211と紐付けて保存する。モジュール210はグラフ構造、キーワード211は木構造で保存することが望ましいが、これらに限定される必要はなく、ノードやキーワードの羅列で保存してもよいし、キーワード211をグラフ構造で保存するなどしてもよい。 The module DB 204 stores the module 210 extracted by the common module extraction unit 202 in association with the keyword 211 extracted by the common keyword extraction unit 203 and inherited by the module 210. It is desirable to save the module 210 in a graph structure and the keywords 211 in a tree structure, but it is not necessary to be limited to these; they may be saved in an enumeration of nodes or keywords, or the keywords 211 can be saved in a graph structure, etc. You may.

図9は、モジュールDBに保存されるモジュール及びキーワードの一例を示す図である。図9には、前述した共通モジュール抽出部202及び共通キーワード抽出部203によって抽出されたモジュール210と各モジュールに継承されるキーワード211について、モジュールDB204に登録された具体例が示されている。図9の場合、各モジュール210はグラフ構造で保存され、各キーワード211は木構造で保存されている。 FIG. 9 is a diagram showing an example of modules and keywords stored in the module DB. FIG. 9 shows a specific example of the module 210 extracted by the common module extracting unit 202 and the common keyword extracting unit 203 and the keywords 211 inherited by each module registered in the module DB 204. In the case of FIG. 9, each module 210 is saved in a graph structure, and each keyword 211 is saved in a tree structure.

キーワード選択部205は、使用者の選択操作または入力操作に基づいて、新たな判定プログラム208を作成する際に再利用可能なモジュール210をモジュールDB204から検索するための検索キーワードを入力または選択する。上記検索キーワードは、所定の入力画面(キーワード選択画面)における使用者の入力操作に基づいて入力(選択)される。 The keyword selection unit 205 inputs or selects a search keyword for searching the module DB 204 for a reusable module 210 when creating a new determination program 208, based on a user's selection or input operation. The search keyword is input (selected) based on a user's input operation on a predetermined input screen (keyword selection screen).

図10は、キーワード選択画面の一例を示す図である。図10には、検索キーワードが図4に例示した木構造で表現される場合の入力例が示されており、各領域411~416に入力(選択)された検索キーワードから木構造が生成される。キーワード選択画面410において、領域411には、判定ルールの適用対象となる寸法が入力され、領域412には、寸法の対象数が入力され、領域413には、各対象の詳細情報(計測対象、関連部品、属性)が入力される。 FIG. 10 is a diagram showing an example of a keyword selection screen. FIG. 10 shows an input example where the search keyword is expressed in the tree structure illustrated in FIG. 4, and the tree structure is generated from the search keywords input (selected) in each area 411 to 416. . In the keyword selection screen 410, the dimension to which the determination rule is applied is entered in the area 411, the number of objects of the dimension is entered in the area 412, and the detailed information of each object (measurement object, related parts, attributes) are input.

具体的には、寸法の領域411に「距離」が入力され、対象数の領域412に「2」が入力されると、これらの検索キーワードから、根が「距離」で、その子ノードの数が「2」である木構造が決定される。そして、対象数が「2」であることから、対象1及び対象2という2つの領域413が表示される。そして各領域413において、計測対象(領域414)、関連部品(領域415)、及び属性(領域416)が入力されることで、図4に示した木構造が検索キーワードとして生成される。 Specifically, when "distance" is input in the dimension area 411 and "2" is input in the target number area 412, from these search keywords, the root is "distance" and the number of child nodes is A tree structure of "2" is determined. Since the number of objects is "2", two areas 413, object 1 and object 2, are displayed. Then, in each area 413, the measurement target (area 414), related parts (area 415), and attributes (area 416) are input, thereby generating the tree structure shown in FIG. 4 as a search keyword.

なお、キーワード選択画面における検索キーワードの入力は、使用者が任意の文字を入力してもよいが、任意の文字が入力される場合、同様の意味を表す複数の語が入力された場合に検索が困難となる場合がある。このため、事前に定めた検索キーワードの候補をプルダウンに表示し、そのなかから使用者が検索キーワードを選択するようにしてもよい。この場合、キーワード選択部205は、既存プログラムDB201に保存されたキーワード209やモジュールDB204に保存されたキーワード211を事前に参照して、各キーワードの構造解析を実行しておくこと等により、表示候補の検索キーワードを事前に決定すればよい。 Note that the user may enter any characters when entering a search keyword on the keyword selection screen, but if any characters are entered or multiple words with the same meaning are entered, the search will be disabled. may be difficult. Therefore, predetermined search keyword candidates may be displayed in a pull-down menu, and the user may select a search keyword from among them. In this case, the keyword selection unit 205 refers to the keywords 209 stored in the existing program DB 201 and the keywords 211 stored in the module DB 204 in advance, and performs a structural analysis of each keyword. All you need to do is decide on the search keywords in advance.

また、図10では検索キーワードから木構造を生成するような入力画面としたが、本実施形態はこれに限定されるものではなく、検索において、木構造を用いずに単純に個々の検索キーワードを用いるようにしてもよい。あるいは、キーワード選択画面410の代わりに、図4に例示した木構造そのものを入力画面として用いてもよい。また、検索キーワードをグラフ構造などの異なる構造で表現する場合には、各々の構造に応じた入力画面を用いてもよい。 In addition, although FIG. 10 shows an input screen that generates a tree structure from search keywords, this embodiment is not limited to this, and in a search, individual search keywords are simply entered without using a tree structure. You may also use it. Alternatively, instead of the keyword selection screen 410, the tree structure itself illustrated in FIG. 4 may be used as the input screen. Moreover, when expressing a search keyword in a different structure such as a graph structure, an input screen corresponding to each structure may be used.

モジュール検索部206は、モジュールDB204に保存されたモジュール210の中から、キーワード選択部205で入力された検索キーワードを含むモジュール210を検索する。具体的には例えば、モジュール検索部206は、モジュールDBに保存されたモジュール210のそれぞれについて、継承するキーワード211が検索キーワードに含まれるかを判定することによって、モジュール210を検索する。 The module search unit 206 searches for a module 210 that includes the search keyword input by the keyword selection unit 205 from among the modules 210 stored in the module DB 204 . Specifically, for example, the module search unit 206 searches for a module 210 by determining whether the inherited keyword 211 is included in the search keyword for each module 210 stored in the module DB.

なお、モジュールが継承するキーワード211が木構造やグラフ構造で表現される場合、モジュール検索部206は、検索キーワードとの一致(部分一致を含むものであり、原則として以降の「一致」も同様)だけではなく、木構造やグラフ構造としての接続関係の一致を含めて検索することで、再利用しやすいモジュール210を優先的に検索することができる。また、モジュール検索部206は、接続関係が一致するモジュール210が存在しない場合には、検索キーワードのみが一致するモジュール210を検索するようにしてもよい。また、検索キーワードが構造を成さず、羅列されている場合には、モジュール検索部206は、単純に羅列された個々の検索キーワードを含むモジュール210を検索すればよい。 Note that when the keyword 211 inherited by the module is expressed in a tree structure or graph structure, the module search unit 206 searches for matches (including partial matches, and in principle, the same applies to subsequent "matches") with the search keywords. In addition, by searching for matching connections in the form of a tree structure or a graph structure, it is possible to preferentially search for modules 210 that are easy to reuse. Furthermore, if there is no module 210 with a matching connection relationship, the module search unit 206 may search for a module 210 with a matching search keyword only. Furthermore, if the search keywords do not form a structure and are listed, the module search unit 206 may simply search for modules 210 that include the individual listed search keywords.

また、使用者が任意の文字を検索キーワードとして入力している場合、検索対象のモジュール210(特にキーワード211)において同じ寸法(図10の領域411参照)や部品(図10の領域414~領域416参照)を意味する別の語句が用いられている可能性があるため、モジュール検索部206は、語句の一致を特定するために辞書機能を備えるようにし、この辞書機能を活用して検索キーワードで入力された語句とモジュール210(キーワード211)との一致性を判定してモジュール210を検索するようにしてもよい。具体的には、図9の例ではモジュールDB204に保存されたモジュールFは「座金」というキーワードを継承しているが、使用者が検索キーワードに「ワッシャ」という語句を用いた場合には、辞書機能によって「ワッシャ」と「座金」とを置換し、キーワード211に「座金」を含むモジュール210を検索できるようにすればよい。 In addition, when the user inputs arbitrary characters as a search keyword, the same dimensions (see area 411 in FIG. 10) or parts (areas 414 to 416 in FIG. Since there is a possibility that another word meaning ``Reference'' is used, the module search unit 206 is equipped with a dictionary function to identify matching words and phrases, and utilizes this dictionary function to search for a search keyword. The module 210 may be searched by determining the match between the input word and the module 210 (keyword 211). Specifically, in the example of FIG. 9, module F stored in the module DB 204 inherits the keyword "washer," but if the user uses the word "washer" as a search keyword, the dictionary What is necessary is to replace "washer" with "washer" depending on the function, so that a module 210 including "washer" in the keyword 211 can be searched.

モジュール表示部207は、モジュール検索部206による検索結果を出力する。検索結果の出力は、記憶媒体への保存や他装置へのデータ送信等、任意の出力形態を採用可能であるが、本例では、モジュール表示部207は、上記検索結果を所定の表示画面(検索結果表示画面)に表示することで、再利用可能なモジュール210を使用者に提示し、プログラム作成におけるモジュール210の再利用を支援する。 The module display section 207 outputs the search results by the module search section 206. The search results can be output in any format such as saving to a storage medium or transmitting data to another device, but in this example, the module display unit 207 displays the search results on a predetermined display screen ( By displaying the reusable modules 210 on the search result display screen), the reusable modules 210 are presented to the user, and the reuse of the modules 210 in program creation is supported.

図11は、検索結果表示画面の一例を示す図である。図11に例示した検索結果表示画面420は、検索キーワードを表示する領域421と、検索で該当したモジュール210について、検索キーワードとの一致度を表示する領域422、検索キーワードとの一致部分を表示する領域423、及び当該モジュール210を表示する領域424とを備える。 FIG. 11 is a diagram showing an example of a search result display screen. The search result display screen 420 illustrated in FIG. 11 includes an area 421 for displaying the search keyword, an area 422 for displaying the degree of match with the search keyword for the module 210 found in the search, and an area 422 for displaying the portion that matches the search keyword. It includes an area 423 and an area 424 in which the module 210 is displayed.

領域423に表示される一致度は、例えばモジュール検索部206がモジュールを検索する際に算出することができ、その算出には、当該モジュール210(厳密には継承するキーワード211)に含まれる検索キーワードの数や、検索キーワードの接続関係の数を用いることができる。具体的には例えば、図11で領域424に表示されたモジュール「-G-H-I」の場合、継承するキーワード(領域423)を検索キーワード(領域421)と比較すると、「距離」、「端辺」、及び「面」の3つのキーワード(ノード)と3本の接続線(エッジ)が一致していることが分かる。そこでこの場合、キーワードの一致数「3」と接続関係の一致数「3」との和である「6」が、一致度として領域422に表示されている。同様に算出すると、モジュール「A-B-C-」の場合は、キーワードの一致数「2」と接続関係の一致数「2」から一致度は「4」となる。なお、検索結果表示画面420では、この一致度に応じて検索結果に優先度を付け、例えばモジュールを一致度の高い順に並び替えて表示するようにしてもよい。このように、キーワード211と検索キーワードの構成要素の一致度合いに基づいて、検索結果の表示態様を変更することで、使用者が再利用の有用性が高いモジュール210を認識し易くなる。 The degree of matching displayed in the area 423 can be calculated, for example, when the module search unit 206 searches for a module. The number of search keywords or the number of connection relationships of search keywords can be used. Specifically, for example, in the case of the module "-GH-I" displayed in the area 424 in FIG. 11, when the inherited keyword (area 423) is compared with the search keyword (area 421), "distance", " It can be seen that the three keywords (nodes) of "edge" and "face" match the three connecting lines (edges). Therefore, in this case, "6", which is the sum of the number of matching keywords "3" and the number of matching connections "3", is displayed in the area 422 as the matching degree. Similarly calculated, in the case of the module "ABC-", the degree of matching is "4" from the number of matching keywords "2" and the number of matching connections "2". In addition, on the search result display screen 420, the search results may be prioritized according to the degree of matching, and the modules may be rearranged and displayed in descending order of the degree of matching, for example. In this way, by changing the display mode of search results based on the degree of matching between the keyword 211 and the constituent elements of the search keyword, it becomes easier for the user to recognize modules 210 that are highly useful for reuse.

また、図11の表示画面例では、検索結果として一致度(領域422)、キーワード(領域423)、及びモジュール(領域424)の組が表示されているが、本実施形態はこのような表示形態に限定されるものではなく、検索で該当したキーワード211またはモジュール210の少なくとも何れかが表示されていればよい。また、キーワードやモジュールの表示形態は木構造やグラフ構造でなく、その他の構造や、キーワードまたはノードの羅列で表示される等であってもよい。 Furthermore, in the display screen example of FIG. 11, a set of matching degree (area 422), keyword (area 423), and module (area 424) is displayed as a search result, but this embodiment The search is not limited to this, and it is sufficient that at least either the keyword 211 or the module 210 matching the search is displayed. Further, the display form of keywords and modules is not limited to a tree structure or a graph structure, but may be displayed in other structures or as an enumeration of keywords or nodes.

なお、図11の表示画面例では、領域423に表示されたキーワードの木構造や領域424に表示されたモジュールのグラフ構造において、片側がノードに接続されていないエッジが含まれている。このエッジは、モジュールDB204に保存されなくてもよいが、敢えてモジュールDB204に保存して検索結果表示画面420に表示可能にすることで、他のモジュール210やキーワード211の構造との接続場所が判断し易くなり、モジュール210の再利用を容易にする効果が期待できる。 In the display screen example of FIG. 11, the tree structure of the keywords displayed in the area 423 and the graph structure of the modules displayed in the area 424 include edges that are not connected to a node on one side. Although this edge does not need to be saved in the module DB 204, by intentionally saving it in the module DB 204 and making it possible to display it on the search result display screen 420, the connection location with the structure of other modules 210 and keywords 211 can be determined. This can be expected to have the effect of making it easier to reuse the module 210.

また、モジュール表示部207は、モジュール検索部206による検索結果を表示する代わりに、上述した片側がノードに接続されていないエッジや検索キーワードの木構造等に基づいて、検索された複数のモジュール210を自動的に接続し、最も好適には判定プログラム208の形式にしてから、検索結果として表示や出力を行うようにしてもよい。このとき、使用者は、判定プログラムの作成におけるプログラムの再利用が非常に容易になる。 In addition, instead of displaying the search results by the module search unit 206, the module display unit 207 displays a plurality of searched modules 210 based on the above-mentioned edge whose one side is not connected to a node, the tree structure of the search keyword, etc. may be automatically connected, most preferably in the form of the determination program 208, and then displayed or output as the search results. At this time, it becomes very easy for the user to reuse the program in creating the determination program.

以上、本実施形態に係るプログラミング支援装置200について説明したが、本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。 Although the programming support device 200 according to the present embodiment has been described above, the present invention is not limited to the above-described embodiment, and includes various modifications.

例えば、上記の実施形態では、共通キーワード抽出部203によるキーワード211の抽出、及びキーワード選択部205による検索キーワードの入力に基づくモジュール検索部206によるモジュール210の検索方法を説明したが、第1の変形例として、プログラミング支援装置200は、共通キーワード抽出部203及びキーワード選択部205を省略し、キーワードを用いることなく、再利用可能なモジュール210を検索することもできる。この場合、モジュールDB204には、共通モジュール抽出部202によって抽出されたモジュール210のみを保存し、モジュール検索部206によるモジュール210の検索(またはモジュール表示部207によるモジュール210の出力)において、モジュールDB204に保存されたモジュール210のみを所定画面(モジュール検索画面)に表示する。 For example, in the above embodiment, the common keyword extraction unit 203 extracts the keyword 211, and the module search unit 206 searches for the module 210 based on input of the search keyword by the keyword selection unit 205. As an example, the programming support device 200 may omit the common keyword extraction unit 203 and the keyword selection unit 205 and search for reusable modules 210 without using keywords. In this case, the module DB 204 stores only the module 210 extracted by the common module extraction unit 202, and when the module search unit 206 searches for the module 210 (or the module display unit 207 outputs the module 210), the module DB 204 stores the module 210 extracted by the common module extraction unit 202. Only the saved modules 210 are displayed on a predetermined screen (module search screen).

図12は、キーワードを用いない場合のモジュール検索画面の一例を示す図である。図12に示したように、モジュール検索画面430では、モジュールDB204に保存されたモジュール210がそれぞれ、領域431に可視化表示される。このようなモジュール検索画面430から、使用者は、有用なモジュールを探してプログラム作成に再利用することができる。 FIG. 12 is a diagram showing an example of a module search screen when keywords are not used. As shown in FIG. 12, on the module search screen 430, each of the modules 210 stored in the module DB 204 is visually displayed in an area 431. From such a module search screen 430, the user can search for useful modules and reuse them in program creation.

また、第2の変形例として、プログラミング支援装置200は、既存プログラムDB201に保存するキーワード209を以下の様々な設定方法を利用して設定してもよい。例えば、判定プログラム208に対応するキーワード209を、使用者が個別に定義してもよいし、プログラミング支援装置200が判定プログラム208の構文解析等を行うことによって判定プログラム208に含まれる関数の名称や変数名を抽出して、キーワード209として自動的に設定するようにしてもよい。また、モジュール表示部207による検索結果の表示において別例として上述したように、モジュール検索部206で検索された複数のモジュール210を自動的に接続して作成されたプログラムが検索結果としてモジュール表示部207に出力されるとき、このプログラムが判定プログラム208として再利用されて改めて既存プログラムDB201に保存する場合には、当該判定プログラム208の作成時の検索キーワードを、そのままキーワード209に流用して既存プログラムDB201に保存するようにしてもよい。このように、判定プログラム208の作成時の検索キーワードを当該判定プログラム208のキーワード209として利用することにより、キーワード209を再指定する手間が省けるだけでなく、実績のある精度の高いキーワードを設定することができる。 Furthermore, as a second modification, the programming support device 200 may set the keyword 209 to be stored in the existing program DB 201 using the following various setting methods. For example, the user may individually define the keyword 209 corresponding to the determination program 208, or the programming support device 200 may analyze the syntax of the determination program 208 to define the name of the function included in the determination program 208. The variable name may be extracted and automatically set as the keyword 209. In addition, as another example of displaying search results by the module display section 207, as described above, a program created by automatically connecting a plurality of modules 210 searched by the module search section 206 is displayed as a search result in the module display section. 207, if this program is to be reused as the determination program 208 and saved in the existing program DB 201, the search keyword used when creating the determination program 208 can be used as it is as the keyword 209, and the existing program It may also be saved in the DB 201. In this way, by using the search keyword when creating the determination program 208 as the keyword 209 of the determination program 208, not only can the trouble of respecifying the keyword 209 be saved, but also a proven and highly accurate keyword can be set. be able to.

また、第3の変形例として、プログラミング支援装置200は、設計支援装置100における判定ルールの違反の有無のチェックを考慮して、既存プログラムDB201に保存する判定プログラム208に対応するキーワード209を設定するようにしてもよい。詳しく説明すると、設計支援装置100が、CADモデル105に対して判定プログラム208に対応する判定ルールの違反の有無をチェックする場合、プログラミング支援装置200は、CADモデル105に含まれる所定の情報、例えばパーツやアッセンブリの名称や属性を、キーワード209として判定プログラム208に対応付けて、既存プログラムDB201に保存するようにしてもよい。具体的には、CADモデル105が部品表(BOM:Bills Of Materials)に関連づけられている場合には、部品表内の部品名や寸法、型式番号をキーワード209として用いることができる。なお一般に、設計支援装置100において判定プログラムDB102に保存される判定プログラムは複数のCADモデル105に適用されるため、プログラミング支援装置200において、既存プログラムDB201に保存する判定プログラム208に対して、CADモデル105の所定の情報(部品名や寸法、型式番号、属性等)をキーワード209とする場合には、設計支援装置100において過去に判定プログラム208が適用された全てのCADモデル105に共通する所定の情報(部品名や寸法、型式番号、属性等)をキーワード209として収集して用いることにより、キーワード209をより適切に定めることに期待できる。 Furthermore, as a third modification, the programming support device 200 sets a keyword 209 corresponding to the determination program 208 to be stored in the existing program DB 201, taking into account the check for the presence or absence of a violation of the determination rule in the design support device 100. You can do it like this. To explain in detail, when the design support device 100 checks the CAD model 105 for a violation of the determination rule corresponding to the determination program 208, the programming support device 200 checks the predetermined information included in the CAD model 105, for example. The names and attributes of parts and assemblies may be stored in the existing program DB 201 in association with the determination program 208 as keywords 209. Specifically, when the CAD model 105 is associated with a bill of materials (BOM), part names, dimensions, and model numbers in the bill of materials can be used as the keywords 209. Generally, in the design support device 100, the determination program stored in the determination program DB 102 is applied to a plurality of CAD models 105, so in the programming support device 200, the determination program 208 stored in the existing program DB 201 is 105 (part name, dimensions, model number, attributes, etc.) as the keyword 209, the predetermined information common to all CAD models 105 to which the determination program 208 has been applied in the past in the design support device 100 is used as the keyword 209. By collecting and using information (part names, dimensions, model numbers, attributes, etc.) as keywords 209, it can be expected that the keywords 209 can be defined more appropriately.

以上に説明したように、本発明のプログラミング支援装置200によれば、既存の複数のプログラムから、共通部分に着目して、再利用しやすいモジュールを自動的に抽出することで、新規にプログラムを作成する際に、モジュールの再利用を支援することができる。 As explained above, according to the programming support device 200 of the present invention, a new program can be created by focusing on common parts from multiple existing programs and automatically extracting modules that are easy to reuse. It can support reuse of modules when creating them.

また、本発明のプログラミング支援装置200によれば、抽出したモジュールのうちから、使用者の希望に応じたモジュールを自動的に提示できることから、使用者がモジュールを再利用するために要する工数、例えば使用者がモジュールを解析する時間を大幅に削減する効果に期待できる。 Furthermore, according to the programming support device 200 of the present invention, it is possible to automatically present a module according to the user's wishes from among the extracted modules. This can be expected to have the effect of significantly reducing the amount of time users spend analyzing modules.

なお、上記した実施形態は、本発明を分かり易く説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。したがって、実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。 Note that the above-described embodiments have been described in detail to explain the present invention in an easy-to-understand manner, and are not necessarily limited to those having all the configurations described. Therefore, it is possible to add, delete, or replace some of the configurations of the embodiment with other configurations.

また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。 Further, each of the above-mentioned configurations, functions, processing units, processing means, etc. may be partially or entirely realized in hardware by designing, for example, an integrated circuit. Furthermore, each of the above configurations, functions, etc. may be realized by software by a processor interpreting and executing a program for realizing each function. Information such as programs, tables, files, etc. that implement each function can be stored in a memory, a recording device such as a hard disk, an SSD (Solid State Drive), or a recording medium such as an IC card, SD card, or DVD.

また、図面において制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実施にはほとんど全ての構成が相互に接続されていると考えてもよい。 Furthermore, in the drawings, control lines and information lines are shown that are considered necessary for explanation, and not all control lines and information lines are necessarily shown in the product. In implementation, almost all components may be considered interconnected.

100 設計支援装置
101 判定ルール選択部
102 判定プログラムDB
103 モデル判定部
104 CADシステム
105 CADモデル
106 プログラミング
200 プログラミング支援装置
201 既存プログラムDB
202 共通モジュール抽出部
203 共通キーワード抽出部
204 モジュールDB
205 キーワード選択部
206 モジュール検索部
207 モジュール表示部
208 判定プログラム
209,211 キーワード
210 モジュール
410 キーワード選択画面
420 検索結果表示画面
430 モジュール検索画面
100 Design support device 101 Judgment rule selection unit 102 Judgment program DB
103 Model judgment unit 104 CAD system 105 CAD model 106 Programming 200 Programming support device 201 Existing program DB
202 Common module extraction unit 203 Common keyword extraction unit 204 Module DB
205 Keyword selection section 206 Module search section 207 Module display section 208 Judgment program 209, 211 Keyword 210 Module 410 Keyword selection screen 420 Search result display screen 430 Module search screen

Claims (11)

複数の既存プログラムを保存する既存プログラム記憶部と、
前記既存プログラム記憶部に保存された前記複数のうちの2以上の前記既存プログラムの共通部分をモジュールと定義して抽出する共通モジュール抽出部と、
前記共通モジュール抽出部で抽出された前記モジュールを保存するモジュール記憶部と、
前記モジュール記憶部に保存された前記モジュールを検索するモジュール検索部と、
前記モジュール検索部による検索結果を出力する出力部と、
を備えることを特徴とするプログラミング支援装置。
an existing program storage section for storing a plurality of existing programs;
a common module extraction unit that defines and extracts a common part of two or more of the plurality of existing programs stored in the existing program storage unit as a module;
a module storage unit that stores the module extracted by the common module extraction unit;
a module search unit that searches for the module stored in the module storage unit;
an output unit that outputs search results by the module search unit;
A programming support device comprising:
前記既存プログラム記憶部は、前記複数の既存プログラムと各既存プログラムに対応するキーワードとを保存し、
前記プログラミング支援装置は、
前記共通モジュール抽出部で抽出された前記モジュールに対して、前記モジュールを含む複数の前記既存プログラムに共通するキーワードを、当該モジュールに継承するキーワードとして前記既存プログラム記憶部から抽出する共通キーワード抽出部と、
前記モジュールの検索に用いる検索キーワードを入力するキーワード選択部と、
をさらに備え、
前記モジュール記憶部は、前記共通モジュール抽出部で抽出された前記モジュールと、前記共通キーワード抽出部で抽出された前記モジュールが継承する前記キーワードとを紐付けて保存し、
前記モジュール検索部は、前記検索キーワードを用いて前記モジュール記憶部に保存された前記モジュールを検索し、
前記出力部は、前記モジュール検索部で検索された前記モジュール、または当該モジュールが継承する前記キーワードの少なくとも何れかを表示する
ことを特徴とする請求項1に記載のプログラミング支援装置。
The existing program storage unit stores the plurality of existing programs and keywords corresponding to each existing program,
The programming support device includes:
a common keyword extraction unit that extracts a keyword common to the plurality of existing programs including the module from the existing program storage unit as a keyword to be inherited by the module for the module extracted by the common module extraction unit; ,
a keyword selection section for inputting a search keyword to be used for searching for the module;
Furthermore,
The module storage unit associates and stores the module extracted by the common module extraction unit and the keyword inherited by the module extracted by the common keyword extraction unit,
The module search unit searches the module stored in the module storage unit using the search keyword,
The programming support device according to claim 1, wherein the output unit displays at least one of the module searched by the module search unit or the keyword inherited by the module.
前記既存プログラムは、設計支援装置においてCADシステムに読み込むCADモデルに対して判定ルールの違反の有無を判定するために用いられるプログラムである
ことを特徴とする請求項2に記載のプログラミング支援装置。
The programming support device according to claim 2, wherein the existing program is a program used in the design support device to determine whether a CAD model read into a CAD system violates a determination rule.
前記共通モジュール抽出部は、前記既存プログラムに含まれる関数が持つパラメータの値の一致に基づいて、前記2以上の既存プログラムの共通部分を抽出する
ことを特徴とする請求項1に記載のプログラミング支援装置。
The programming support according to claim 1, wherein the common module extraction unit extracts a common part of the two or more existing programs based on a match between values of parameters of functions included in the existing programs. Device.
前記共通キーワード抽出部は、前記既存プログラムまたは前記モジュールの差分に対して、対応する前記キーワードの差分を付与して、新たな前記モジュールを定義する
ことを特徴とする請求項2に記載のプログラミング支援装置。
The programming support according to claim 2, wherein the common keyword extraction unit defines the new module by adding a corresponding difference in the keyword to a difference in the existing program or the module. Device.
前記モジュール検索部は、前記検索キーワードを用いた前記モジュールの検索において、前記検索キーワードと前記キーワードとの間で構成要素が一致する度合いに基づく一致度を算出し、
前記出力部は、前記一致度に応じた優先順位で、前記モジュール検索部による検索結果を表示する
ことを特徴とする請求項2に記載のプログラミング支援装置。
The module search unit calculates a degree of matching based on a degree of matching of constituent elements between the search keyword and the keyword in searching for the module using the search keyword,
The programming support device according to claim 2, wherein the output unit displays the search results by the module search unit in a priority order according to the degree of matching.
前記出力部は、前記モジュール検索部によって前記検索キーワードを用いて前記検索された複数の前記モジュールを接続してプログラムを作成したうえで、前記検索結果として出力することができ、
前記既存プログラム記憶部は、前記出力されたプログラムを前記既存プログラムとして保存する際に、前記モジュール検索部による検索で用いられた前記検索キーワードを当該プログラムに対応する前記キーワードとして保存する
ことを特徴とする請求項2に記載のプログラミング支援装置。
The output unit may create a program by connecting the plurality of modules searched by the module search unit using the search keyword, and output the program as the search result;
The existing program storage section stores the search keyword used in the search by the module search section as the keyword corresponding to the program when saving the output program as the existing program. The programming support device according to claim 2.
前記既存プログラムが適用された前記CADモデルに含まれる所定の情報を、前記既存プログラム記憶部に保存する前記キーワードに利用する
ことを特徴とする請求項3に記載のプログラミング支援装置。
The programming support device according to claim 3, wherein predetermined information included in the CAD model to which the existing program is applied is used as the keyword to be stored in the existing program storage unit.
前記既存プログラムがグラフ構造で表現可能であるとき、前記共通モジュール抽出部は前記モジュールをグラフ構造で抽出する
ことを特徴とする請求項1に記載のプログラミング支援装置。
The programming support device according to claim 1, wherein when the existing program can be expressed in a graph structure, the common module extraction unit extracts the module in a graph structure.
前記モジュール記憶部に保存される前記キーワードが木構造で表現されるとき、前記検索キーワードは木構造で表現される
ことを特徴とする請求項2に記載のプログラミング支援装置。
The programming support device according to claim 2, wherein when the keywords stored in the module storage unit are expressed in a tree structure, the search keywords are expressed in a tree structure.
複数の既存プログラムを保存する既存プログラム保存ステップと、
前記既存プログラム保存ステップで保存された前記複数のうちの2以上の既存プログラムの共通部分をモジュールと定義して抽出する共通モジュール抽出ステップと、
前記共通モジュール抽出ステップで抽出された前記モジュールを保存するモジュール保存ステップと、
前記モジュール保存ステップで保存された前記モジュールを検索するモジュール検索ステップと、
前記モジュール検索ステップによる検索結果を出力する出力ステップと、
を備えることを特徴とするプログラミング支援方法。
an existing program saving step for saving multiple existing programs;
a common module extracting step of defining and extracting a common part of two or more of the plurality of existing programs saved in the existing program saving step as a module;
a module storage step for storing the module extracted in the common module extraction step;
a module searching step of searching for the module saved in the module saving step;
an output step of outputting the search results from the module search step;
A programming support method comprising:
JP2019184677A 2019-10-07 2019-10-07 Programming support device and programming support method Active JP7343348B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019184677A JP7343348B2 (en) 2019-10-07 2019-10-07 Programming support device and programming support method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019184677A JP7343348B2 (en) 2019-10-07 2019-10-07 Programming support device and programming support method

Publications (2)

Publication Number Publication Date
JP2021060807A JP2021060807A (en) 2021-04-15
JP7343348B2 true JP7343348B2 (en) 2023-09-12

Family

ID=75380239

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019184677A Active JP7343348B2 (en) 2019-10-07 2019-10-07 Programming support device and programming support method

Country Status (1)

Country Link
JP (1) JP7343348B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102509361B1 (en) * 2022-01-11 2023-03-14 (주)샘플피씨비 Smart BOM system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001306649A (en) 2000-04-17 2001-11-02 Asahi Kasei Corp House development and designing system
JP2004513449A (en) 2000-11-01 2004-04-30 松下電器産業株式会社 Data transmitting device and data receiving device
JP2010529688A (en) 2007-06-13 2010-08-26 ショッキング テクノロジーズ インコーポレイテッド System and method for introducing a protective voltage switchable insulating material into a substrate device design or simulation
WO2015132836A1 (en) 2014-03-03 2015-09-11 株式会社日立製作所 Cad geometry creation assistance device
JP6202929B2 (en) 2012-08-20 2017-09-27 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Gap detection in temporally unique indexes in relational databases

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001306649A (en) 2000-04-17 2001-11-02 Asahi Kasei Corp House development and designing system
JP2004513449A (en) 2000-11-01 2004-04-30 松下電器産業株式会社 Data transmitting device and data receiving device
JP2010529688A (en) 2007-06-13 2010-08-26 ショッキング テクノロジーズ インコーポレイテッド System and method for introducing a protective voltage switchable insulating material into a substrate device design or simulation
JP6202929B2 (en) 2012-08-20 2017-09-27 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Gap detection in temporally unique indexes in relational databases
WO2015132836A1 (en) 2014-03-03 2015-09-11 株式会社日立製作所 Cad geometry creation assistance device

Also Published As

Publication number Publication date
JP2021060807A (en) 2021-04-15

Similar Documents

Publication Publication Date Title
JP5602247B2 (en) Design support system
CN102089762A (en) Method and system for model-based design and layout of an integrated circuit
Martínez-Rojas et al. Management of construction Safety and Health Plans based on automated content analysis
EP3872626A1 (en) Utilizing artificial intelligence and machine learning models to reverse engineer an application from application artifacts
CN112199512B (en) Scientific and technological service-oriented case map construction method, device, equipment and storage medium
Huang et al. An effective numerical control machining process reuse approach by merging feature similarity assessment and data mining for computer-aided manufacturing models
JP4326731B2 (en) Process management system having risk monitor and process management method having risk display function
Soeken et al. Automating the translation of assertions using natural language processing techniques
US20130198201A1 (en) Specification Document Check Method, Program, and System
JP2003296383A (en) Three-dimensional modeling system
Giudice Disassembly depth distribution for ease of service: a rule-based approach
JP2007011604A (en) Fault diagnostic system and program
JP7343348B2 (en) Programming support device and programming support method
JP3024350B2 (en) Automatic manufacturability evaluation method and system
Malhotra et al. Analyzing and evaluating security features in software requirements
Staub-French et al. Reasoning about component similarity in building product models from the construction perspective
US20240086592A1 (en) Design Support Device, Design Support Method, and Design Support Program
JP5790820B2 (en) Inconsistency detection apparatus, program and method, correction support apparatus, program and method
JP5168099B2 (en) Renovation work range division program, refurbishment work range division device, and refurbishment work range division method
Bačíková et al. Towards automated evaluation of domain usability
Prosvirnova et al. Strategies for Modelling Failure Propagation in Dynamic Systems with AltaRica
CN114741052B (en) Formalized semantic analysis and inspection method for demand form model
JP2006190085A (en) Modeling method and design method for digital circuit
WO2021020055A1 (en) Design assistance system, design assistance method, and design assistance program
EP4345677A1 (en) System and method for managing simulation artifacts

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220829

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230712

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230829

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230831

R150 Certificate of patent or registration of utility model

Ref document number: 7343348

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150