JP7343348B2 - Programming support device and programming support method - Google Patents
Programming support device and programming support method Download PDFInfo
- 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
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,
特許文献1の方法によってプログラムの一部(例えば機能ブロック、言い換えればモジュール)を再利用する場合、使用者がモジュールを構成する関数を指定し、主に手動でキーワードや名称、要約文を付与する必要がある。しかし、複数の使用者がモジュールの構成を指定する場合、使用者によってモジュールの定義範囲が異なることで再利用が困難になる可能性がある。また、既存のプログラムに対して個別にモジュールを指定し、キーワードや名称、要約文を付与する作業の工数が大きく、実用化までに時間を要する場合がある。モジュールが階層構造をなす場合、これらの工数はさらに大きくなり、工数削減のためにモジュールの再利用範囲を限定することになる。
When reusing a part of a program (for example, a functional block, in other words, a module) by the method of
本発明はこのような状況を鑑みて成されたものであり、既存の複数のプログラムから再利用しやすいモジュールを抽出し、プログラム作成におけるモジュールの再利用を支援することを目的とする。 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.
図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
設計支援装置100は、CADシステム104に読み込むCADモデル105について、使用者が選択した判定ルールに違反していないかを判定し、その判定結果を出力することによって、CADの設計支援を行う装置である。設計支援装置100の動作について、以下に説明する。
The
まず、判定プログラム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
上記の可読情報の表示に基づいて、使用者は、判定ルール選択部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
そしてモデル判定部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
上記のような設計支援装置100に対して、本実施形態に係るプログラミング支援装置200は、既存の複数の判定プログラムに基づいて、新たな判定プログラムを作成する際に部品として再利用可能なモジュール(さらにはキーワード)を抽出することにより、設計支援装置100の判定プログラムDB102に保存する新たな判定プログラムの作成(図1に示したプログラミング106)を支援することができる。以下では、このような本実施形態に係るプログラミング支援装置200について、図面を参照しながら説明する。なお、本発明のプログラミング支援装置は、設計支援装置100で使用されるCADモデル105用の判定プログラムの作成支援に限定されるものではなく、一般のプログラムの作成支援にも同様に適用できる。
In contrast to the
図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
プログラミング支援装置200は、一般的なコンピュータで実現することができ、例えば中央処理装置(CPU:Central Processing Unit)、主記憶装置、補助記憶装置、入力装置、出力装置、及び各種インタフェースを備えて構成される。プログラミング支援装置200が上記のハードウェア構成を有する場合、図2に示した既存プログラムDB201及びモジュールDB204は、補助記憶装置によって実現される。また、共通モジュール抽出部202、共通キーワード抽出部203、及びモジュール検索部206は、CPUが、主記憶装置に予め記憶された所定のプログラムを読み出し、必要に応じて補助記憶装置に格納された情報等を参照しながら当該プログラムを実行することによって実現される。また、キーワード選択部205は、出力装置に表示された入力画面(キーワード選択画面)に対して使用者が行った操作を入力装置が受け付けることによって実現される。モジュール表示部207は、出力装置が所定の出力画面(結果表示画面)を出力することによって実現される。
The
既存プログラムDB201には、既存の判定プログラム208が対応するキーワード209とともに複数保存されている。既存プログラムDB201は、図1に示した設計支援装置100の判定プログラムDB102と同一のデータベースとしてもよいが、判定プログラムDB102が適用する製品や部位ごとに分けて設けられている場合には、それらを統合したものを既存プログラムDB201として扱ってもよい。
In the existing
判定プログラム208はどのようなプログラミング言語で作成されていてもよく、例えば、単純な機能を有するノードを接続することでプログラムとなるようなビジュアルプログラミングを用いてもよい。ここでは、判定プログラム208がビジュアルプログラミングのように、ノードの組合せによってグラフ構造で表現される場合を例として、プログラミング支援装置200の機能について説明する。ただし、判定プログラム208がビジュアルプログラミングではない通常のプログラミング言語であっても、その処理は、関数やサブルーチン間をノード、変数のやり取りを有効のエッジで表すことにより、プログラムをグラフ構造で表現できるため、同様の機能を実現できる。
The
図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
図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
共通モジュール抽出部202は、既存プログラムDB201に保存されている全ての判定プログラム208のグラフ構造を比較し、複数の判定プログラム208に共通する部分構造をモジュール210として抽出する。
The common
共通モジュール抽出部202によるモジュール210の抽出方法は、以下の通りである。本例では、共通モジュール抽出部202は、グラフ構造で表現可能な複数の判定プログラム208を対象として、判定プログラム208に含まれる関数が有するパラメータ(ノード、エッジに相当)の値の一致に基づいて、共通部分を抽出してモジュール210として定義する。具体的にはまず、共通モジュール抽出部202は、複数の判定プログラム208のグラフ構造の間で、共通するノードまたはエッジの数が多い、大きな部分構造から順にモジュール210として抽出する。次に、共通モジュール抽出部202は、モジュール210として抽出した大きな部分構造(上位モジュール)の一部を形成する小さな部分構造(下位モジュール)について、下位モジュールを含む判定プログラム208の数が、上位モジュールを含む判定プログラム208の数よりも多い場合に、当該下位モジュールもモジュール210として抽出する。
The method for extracting the
図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
次に、領域302において、モジュールAの部分構造である「A-B-」を検討する。この部分構造「A-B-」を含む判定プログラムの数は3であり、上位モジュールであるモジュールAを含む判定プログラムの数2よりも多いことから、モジュール210(モジュールB)として抽出される。
Next, in
次に、領域303において、2つのノードと2つのエッジからなる「-E-F」の部分構造を検討する。この部分構造「-E-F」には上位モジュールは存在しないため、モジュール210(モジュールC)として抽出される。
Next, in the
図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
以上に説明したように、図5の場合は、共通モジュール抽出部202は、3つのモジュールA~Cをモジュール210として抽出する。なお、ノードやエッジが独自の変数、パラメータ、またはスイッチ等を持つ場合、これらの数値やスイッチのオン/オフが共通するか否かを用いてモジュールの抽出を行ってもよい。例えば、ボルトねじ部の直径を計測するノードがあった場合、パラメータAが0の場合は呼び径、1の場合は谷径を用いる、といった方法を採用してもよい。
As explained above, in the case of FIG. 5, the common
なお、図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
図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
図6によればまず、共通モジュール抽出部202は、登録済みモジュールの数を示す変数mの値を0とする(ステップS101)。そして、共通モジュール抽出部202は、既存プログラムDB201に保存された判定プログラム208のそれぞれについて、ノード数及びエッジ数の和を計算し(ステップS102)、それらの和のうちの最大値をNとして、一時変数nにNをセットする(ステップS103)。
According to FIG. 6, first, the common
次に、共通モジュール抽出部202は、一時変数iに「m+1」の値(例えば、初回時の処理では1となる)をセットする(ステップS104)。
Next, the common
次に、共通モジュール抽出部202は、全ての判定プログラム208に対して、ノード数とエッジ数の和がnである共通部分を検索する(ステップS105)。なお、ステップS105の処理では、検索済みの共通部分は検索対象から除外する。
Next, the common
そして、共通モジュール抽出部202は、ステップS105の検索によって、長さnの共通部分が存在したかを判定し(ステップS106)、存在した場合はステップS107に進み、存在しない場合はステップS112に進む。ステップS106の処理を具体的に補足すると、例えば初回時の処理では、nの値はステップS103でセットされたNであるため、ノード数とエッジ数の和の最大値に相当する長さの共通部分が見つかったか否かが判定される。そしてnの値は、その後の処理を進めることによって、後述するステップS113で1デクリメントされる。すなわち、図6全体では、徐々にnの値を減らしながら、ノード数とエッジ数の和が多い順から共通部分が検索される。
Then, the common
ステップS107では、共通モジュール抽出部202は、ステップS106で判定された共通部分を含む判定プログラム208の数を「ki」とする。
In step S107, the common
ステップS107に次いで、共通モジュール抽出部202は、ステップS106で判定された共通部分がm個の登録済みモジュールのうちの何れかの部分構造に相当するかを判定し(ステップS108)、何れかの部分構造である場合はステップS109に進み、何れの部分構造でもない場合はステップS110に進む。
Following step S107, the common
ステップS109では、共通モジュール抽出部202は、ステップS108で部分構造であると判定された共通部分がm個のうちのj番目の登録済みモジュールの部分構造である場合に、共通する判定プログラム208の数が「ki>kj」の関係であるかを判定する。ステップS109において「ki>kj」の関係が成立する場合は、ステップS110に進み、「ki>kj」の関係が成立しない場合はステップ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
In step S110, the common
On the other hand, if it is determined in step S106 that there is no common portion of length n, the common
以上のようにして、共通モジュール抽出部202は、既存プログラムDB201に保存されている複数の判定プログラム208から、共通する部分構造をモジュール210として抽出することができる。共通モジュール抽出部202が抽出したモジュール210は、モジュールDB204に定義(登録)される。後述するように、共通キーワード抽出部203によってモジュール210に継承するキーワード211の抽出が行われる場合は、モジュール210は継承するキーワード211と関連付けてモジュールDB204に定義(登録)される。
As described above, the common
共通キーワード抽出部203は、共通するモジュール210を含む複数の判定プログラム208にそれぞれ対応付けられたキーワード209を比較して、上記複数の判定プログラム208の全てに共通するキーワード211を抽出し、このキーワード211を当該モジュール210に継承する。共通キーワード抽出部203が継承させたキーワード211は、モジュール210と関連付けてモジュールDB204に定義(登録)される。
The common
図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
まず、モジュール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
また、共通キーワード抽出部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
また、共通キーワード抽出部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
以上のように、共通キーワード抽出部203は、共通モジュール抽出部202が抽出したモジュール210のそれぞれについて、継承するキーワード211を抽出し、モジュール210と関連付けてモジュールDB204に定義するだけでなく、判定プログラム208やモジュール210の差分を用いて、新たなモジュール210を抽出し、継承するキーワード211とともにモジュールDB204に定義することもできる。
As described above, the common
図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
図8によればまず、共通キーワード抽出部203は、既存プログラムDB201から、対象とするモジュール210(モジュールX)を含む判定プログラム208の集合Pを取得する(ステップS201)。
According to FIG. 8, the common
次に、共通キーワード抽出部203は、集合Pに属する全ての判定プログラム208に共通するキーワードを共通部分として抽出する(ステップS202)。
Next, the common
次いで、共通キーワード抽出部203は、ステップS202で抽出した共通部分を、モジュールXのキーワード211として、モジュールDB204に定義(登録)する(ステップS203)。
Next, the common
そして共通キーワード抽出部203は、上記ステップS201~S203の処理を全てのモジュール210を対象に実行した後、処理を終了する。
Then, the common
なお、図8では、判定プログラム208やモジュール210の差分を用いて新たなモジュール210を抽出する処理については記載を省略している。
In addition, in FIG. 8, the description of the process of extracting a
モジュールDB204は、共通モジュール抽出部202によって抽出されたモジュール210を、共通キーワード抽出部203によって抽出された、当該モジュール210に継承するキーワード211と紐付けて保存する。モジュール210はグラフ構造、キーワード211は木構造で保存することが望ましいが、これらに限定される必要はなく、ノードやキーワードの羅列で保存してもよいし、キーワード211をグラフ構造で保存するなどしてもよい。
The
図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
キーワード選択部205は、使用者の選択操作または入力操作に基づいて、新たな判定プログラム208を作成する際に再利用可能なモジュール210をモジュールDB204から検索するための検索キーワードを入力または選択する。上記検索キーワードは、所定の入力画面(キーワード選択画面)における使用者の入力操作に基づいて入力(選択)される。
The
図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
具体的には、寸法の領域411に「距離」が入力され、対象数の領域412に「2」が入力されると、これらの検索キーワードから、根が「距離」で、その子ノードの数が「2」である木構造が決定される。そして、対象数が「2」であることから、対象1及び対象2という2つの領域413が表示される。そして各領域413において、計測対象(領域414)、関連部品(領域415)、及び属性(領域416)が入力されることで、図4に示した木構造が検索キーワードとして生成される。
Specifically, when "distance" is input in the
なお、キーワード選択画面における検索キーワードの入力は、使用者が任意の文字を入力してもよいが、任意の文字が入力される場合、同様の意味を表す複数の語が入力された場合に検索が困難となる場合がある。このため、事前に定めた検索キーワードの候補をプルダウンに表示し、そのなかから使用者が検索キーワードを選択するようにしてもよい。この場合、キーワード選択部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
また、図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
モジュール検索部206は、モジュールDB204に保存されたモジュール210の中から、キーワード選択部205で入力された検索キーワードを含むモジュール210を検索する。具体的には例えば、モジュール検索部206は、モジュールDBに保存されたモジュール210のそれぞれについて、継承するキーワード211が検索キーワードに含まれるかを判定することによって、モジュール210を検索する。
The
なお、モジュールが継承するキーワード211が木構造やグラフ構造で表現される場合、モジュール検索部206は、検索キーワードとの一致(部分一致を含むものであり、原則として以降の「一致」も同様)だけではなく、木構造やグラフ構造としての接続関係の一致を含めて検索することで、再利用しやすいモジュール210を優先的に検索することができる。また、モジュール検索部206は、接続関係が一致するモジュール210が存在しない場合には、検索キーワードのみが一致するモジュール210を検索するようにしてもよい。また、検索キーワードが構造を成さず、羅列されている場合には、モジュール検索部206は、単純に羅列された個々の検索キーワードを含むモジュール210を検索すればよい。
Note that when the
また、使用者が任意の文字を検索キーワードとして入力している場合、検索対象のモジュール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
モジュール表示部207は、モジュール検索部206による検索結果を出力する。検索結果の出力は、記憶媒体への保存や他装置へのデータ送信等、任意の出力形態を採用可能であるが、本例では、モジュール表示部207は、上記検索結果を所定の表示画面(検索結果表示画面)に表示することで、再利用可能なモジュール210を使用者に提示し、プログラム作成におけるモジュール210の再利用を支援する。
The
図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
領域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
また、図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
なお、図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
また、モジュール表示部207は、モジュール検索部206による検索結果を表示する代わりに、上述した片側がノードに接続されていないエッジや検索キーワードの木構造等に基づいて、検索された複数のモジュール210を自動的に接続し、最も好適には判定プログラム208の形式にしてから、検索結果として表示や出力を行うようにしてもよい。このとき、使用者は、判定プログラムの作成におけるプログラムの再利用が非常に容易になる。
In addition, instead of displaying the search results by the
以上、本実施形態に係るプログラミング支援装置200について説明したが、本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。
Although the
例えば、上記の実施形態では、共通キーワード抽出部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
図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
また、第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
また、第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
以上に説明したように、本発明のプログラミング支援装置200によれば、既存の複数のプログラムから、共通部分に着目して、再利用しやすいモジュールを自動的に抽出することで、新規にプログラムを作成する際に、モジュールの再利用を支援することができる。
As explained above, according to the
また、本発明のプログラミング支援装置200によれば、抽出したモジュールのうちから、使用者の希望に応じたモジュールを自動的に提示できることから、使用者がモジュールを再利用するために要する工数、例えば使用者がモジュールを解析する時間を大幅に削減する効果に期待できる。
Furthermore, according to the
なお、上記した実施形態は、本発明を分かり易く説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。したがって、実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。 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
103
202 Common
205
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.
ことを特徴とする請求項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.
ことを特徴とする請求項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.
ことを特徴とする請求項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:
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102509361B1 (en) * | 2022-01-11 | 2023-03-14 | (주)샘플피씨비 | Smart BOM system |
Citations (5)
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 |
-
2019
- 2019-10-07 JP JP2019184677A patent/JP7343348B2/en active Active
Patent Citations (5)
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 |