はじめに
前の資料では、SolidWorks 3Dモデリングシステム用のAPIアプリケーションを開発するための基本原則を概説しました。 この記事では、設計エンジニアの効率を高めるために設計されたアプリケーションである実際のAPIの開発を紹介したいと思います。
設計段階の1つは、製品の3次元モデルの開発です。 複雑なアセンブリは、設計者自身が直接開発した多くの標準化されたファスナーを使用します。
もちろん、代替オプションはSolidWorksの構成を使用することですが、標準化されていないファスナーを使用する必要がある場合、エンジニアは必要なサイズと構成を事前に知りません。 したがって、複雑な部品の開発と組み立てのプロセスは、ファスナーをモデル化する必要があるため、常に中断されます。
この作業の一環として、APIが開発されました。これは、指定された幾何学的パラメーターを持つボルトモデルを自動的に作成するためのアプリケーションです。
目標と目的
この作業の目的は、設計された製品をモデリングする段階で、エンジニア(設計者)の労働効率を高めることです。 目標に従って、次のタスクが特定されました。
•ボルトの標準モデルの開発。
•APIの作成-アプリケーション。
•モデル構築を実装するライブラリの開発。
開発ツール
•SolidWorks;
•C#;
•WPF;
•VSTA(Visual Studio Tools for Applications);
モデル開発
モデリングの結果、次の図に示す3次元モデルが得られました。

インターフェース設計
アプリケーションインターフェイスを開発するためのツールとして、Windows Presentation Foundationテクノロジが選択されました。 インターフェイスのXAMLマークアップがリストに表示されます。
<Window x:Class="APIHabr.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="API-" Height="250" Width="375"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="auto"></RowDefinition> <RowDefinition Height="auto"></RowDefinition> <RowDefinition Height="auto"></RowDefinition> <RowDefinition Height="auto"></RowDefinition> <RowDefinition Height="auto"></RowDefinition> <RowDefinition Height="auto"></RowDefinition> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="auto"></ColumnDefinition> <ColumnDefinition Width="auto"></ColumnDefinition> </Grid.ColumnDefinitions> <TextBlock Grid.Row="0" Grid.Column="0" Margin="5,5,5,5" FontSize="16" FontWeight="Bold"> :</TextBlock> <TextBlock Grid.Row="1" Grid.Column="0" Margin="5,5,5,5" FontSize="16"> :</TextBlock> <TextBlock Grid.Row="2" Grid.Column="0" Margin="5,5,5,5" FontSize="16"> :</TextBlock> <TextBlock Grid.Row="3" Grid.Column="0" Margin="5,5,5,5" FontSize="16"> :</TextBlock> <TextBlock Grid.Row="4" Grid.Column="0" Margin="5,5,5,5" FontSize="16">:</TextBlock> <Button Grid.Row="5" Grid.Column="1" Width="170" Height="30" Margin="5,5,5,5" Content="" FontSize="16"></Button> <TextBox Grid.Column="1" Grid.Row="1" Margin="5,5,5,5"></TextBox> <TextBox Grid.Column="1" Grid.Row="2" Margin="5,5,5,5"></TextBox> <TextBox Grid.Column="1" Grid.Row="3" Margin="5,5,5,5"></TextBox> <TextBox Grid.Column="1" Grid.Row="4" Margin="5,5,5,5"></TextBox> </Grid> </Window>
その結果、次の図に示すように、簡素化されたアプリケーションインターフェイスが開発されました。

ソフトウェア実装
public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } public SldWorks swApp; void Button_Click_1(object sender, RoutedEventArgs e) { ModelDoc2 swDoc = null; PartDoc swPart = null; DrawingDoc swDrawing = null; AssemblyDoc swAssembly = null; bool boolstatus = false; int longstatus = 0; int longwarnings = 0; swDoc = ((ModelDoc2)(swApp.ActiveDoc)); OpenDoc(ref swDoc, ref longstatus, ref longwarnings); swApp.ActivateDoc2("", false, ref longstatus); swDoc = ((ModelDoc2)(swApp.ActiveDoc)); ModelView myModelView = null; boolstatus = GrooveDiameter(swDoc, boolstatus); boolstatus = SetBoltHeadHeight(swDoc, boolstatus); boolstatus = SetDimensionUnderKey(swDoc, boolstatus); boolstatus = SetLength(swDoc, boolstatus); }
おわりに
このようなAPIアプリケーションの主な目標は、モデルの作成プロセスを自動化することです。 この作業のフレームワークでは、ファスナー(ボルト)の自動化モデリングのみが考慮されました。 将来的には、次の自動化の問題が考慮されます。
•API-SolidWorksソフトウェアパッケージの典型的な構造のモデルを組み立てるためのアプリケーション。
•API-設計ドキュメントの開発を自動化するためのアプリケーション。
•API-複雑な製品をモデリングするためのアプリケーション。