SolidWorks二次开发-关于录制宏保存的格式

SolidWorks二次开发-关于录制宏保存的格式

对于录制宏操作之后,之前的版本是可以直接另存了Vb.net 或者C# 的格式的文件的,虽然它只是VSTA的项目,但是语法基本是一样的。

刚接触SolidWorks二次开的小伙伴可能只知道swp这个原始格式。

而且Solidworks中还专门有个选项,如2018中

并且很多电脑上宏录制完成之后 ,根本就没有其它格式,只有swp.

这是为什么呢? 我们今天来看看官方的说明,打开API 帮助文件。

搜索一下VSTA这个关键字。

Prerequisite Software 
Installing VSTA 
Creating a .NET macro in SOLIDWORKS 2018 
Editing a .NET macro created in SOLIDWORKS 2018 
Upgrading a .NET macro created in SOLIDWORKS 2017 or earlier 
Running a .NET DLL created in SOLIDWORKS 2017 or earlier 
Prerequisite Software
Microsoft Visual Studio 2015 (Community, Professional, Premium or Enterprise version) must be installed in order to record, edit, or debug VB.NET and C# macros using VSTA (3.0) 2015 in SOLIDWORKS 2018. 
Notes: 

If you install a version of Microsoft Visual Studio that is later than 2015, you must ensure that a runtime version of Microsoft Visual Studio 2015 is also installed. 
If you do not install Microsoft Visual Studio 2015 before you install SOLIDWORKS 2018, you will not be able to record, edit, or debug VSTA 3.0 macros. You will only be able to run VSTA 3.0 DLLs. 
If you install Microsoft Visual Studio 2015 after you install SOLIDWORKS 2018, you must also install the VSTA runtime to record, edit, or debug VSTA 3.0 macros. 
Installing VSTA
SOLIDWORKS 2017 and earlier used VSTA 1.0 to create, edit, and run .NET macros. SOLIDWORKS 2018 supports both VSTA 1.0 and VSTA (3.0) 2015. SOLIDWORKS 2018 activates VSTA (3.0) 2015 by default on all Windows versions. If VSTA 3.0 is enabled, .NET macros created in previous releases are converted when they are edited in this release. If VSTA 3.0 is enabled, be sure to back up your VSTA 1.0 macros before editing them in SOLIDWORKS 2018. If you do not want to convert your .NET macros, you can still edit and run VSTA 1.0 macros in this release, provided you choose to install VSTA 1.0 during the SOLIDWORKS installation and then de-select Tools > Options > System Options > General > Enable VSTA VERSION 3.0.

If you need to edit or run VSTA 1.0 macros on:

Windows 8 or later machines:

During SOLIDWORKS 2018 installation, click Change above the Products window on the Summary screen. 
Expand SOLIDWORKS in the Product Selection window. 
Select Visual Studio Tools for Applications (VSTA). 
On the Summary screen, click Install Now. 
During installation, a message box appears with "An app on your PC needs the following Windows feature: .NET Framework 3.5 (includes .NET 2.0 and 3.0)." Click Download and install this feature. If you do not select to download and install this feature, then VSTA 1.0 will not work. 
Visual Studio Tools (1.0), Visual Studio Tools 2015, and other components are installed. 
Windows 7 machines:

During SOLIDWORKS 2018 installation, click Change above the Products window on the Summary page. 
Expand SOLIDWORKS in the Product Selection window. 
Visual Studio Tools for Applications (VSTA) is selected by default to install VSTA 2015 and VSTA 1.0. After installing .NET Framework 4.6.2, a system reboot occurs. When the system comes back up, Visual Studio Tools 2015 and the remaining components are installed. If VSTA is de-selected in the installer, then VSTA 1.0 is not installed. 
After installing SOLIDWORKS 2018:

Select Tools > Options > System Options > General > Enable VSTA VERSION 3.0 to configure VSTA (3.0) 2015. When opened, .NET macros created in previous releases are converted to VSTA 2015, and an instance of Visual Studio 2015 opens the converted .NET macro for editing. See Prerequisite Software.
  
If you prefer to use VSTA 1.0 to edit or run VSTA 1.0 macros created in previous releases, you must first activate VSTA 1.0 by de-selecting Tools > Options > System Options > General > Enable VSTA VERSION 3.0. 
Note: You  must have installed VSTA during SOLIDWORKS 2018 installation. 
  
Tools > Macro > Edit > Open > File name dropdown contains:
 
SW VBA Macros (*.swp) 
SW VSTA VB Macro (*.vbproj) 
SW VSTA C# Macro (*.csproj) 
SW Macros (*.swp, *.swb, *.csproj, *.vbproj)
  
Tools > Macro > New > Save As > Save as type dropdown contains:
 
SW VBA Macros (*.swp) 
SW VSTA VB Macro (*.vbproj) 
SW VSTA C# Macro (*.csproj)
  
If you did not select to install VSTA when you installed SOLIDWORKS, then all of the SOLIDWORKS macro dialog dropdowns contain only: 
        SW VBA Macros (*.swp)

You cannot modify or repair your SOLIDWORKS installation to add VSTA. You must uninstall and re-install SOLIDWORKS, selecting to install Visual Studio Tools for Applications (VSTA) during the installation. 
Creating a .NET macro in SOLIDWORKS 2018 using VSTA 3.0
Read Installing VSTA. 
In SOLIDWORKS, select Tools > Macro > New. 
In the Save As dialog, navigate to the directory where to save the project. 
Specify File name. 
In Save as type select SW VSTA VB Macro (*.vbproj) or SW VSTA C# Macro (*.csproj). 
Click Save. 
A new instance of Visual Studio 2015 opens. See Prerequisite Software. 
Solution Explorer shows:
The solution, VstaProjects. 
The project name. 
My Project 
References (sldworks and swconst interop assemblies added from install_dir\api\redist\) 
SolidWorksMacro.vb or SolidWorksMacro.cs. 
The SolidWorksMacro class is assigned a GUID attribute. If you change this attribute, the macro will not run. 
When you compile the macro, the project's configuration (Debug or Release) and output directory are not read. Only a release DLL is saved in project_folder/bin. 
Editing a .NET macro created in SOLIDWORKS 2018 using VSTA 3.0
Read Installing VSTA. 
In SOLIDWORKS, select Tools > Macro > Edit. 
In the Open dialog, navigate to the project folder. 
Select SW Macros in the project type dropdown. 
Select the *.vbproj or *.csproj project file. 
Click Open. 
A new instance of Visual Studio 2015 opens the project you selected. See Prerequisite Software. 
Upgrading a .NET macro created in SOLIDWORKS 2017 or earlier
Read Installing VSTA. 
If VSTA 3.0 is enabled, be sure to back up your VSTA 1.0 .NET macro files before editing them in SOLIDWORKS 2018. 
In order to successfully upgrade a .NET macro, the class name, "SolidWorksMacro", and the method name, "Execute", must be preserved. If you renamed those entities in your VSTA 1.0 macro, the macro cannot be upgraded to VSTA 2015. 
In SOLIDWORKS, select Tools > Macro > Edit. 
In the Open dialog, navigate to the SwMacro directory of the project folder created in a previous release. 
Select SW Macros in the project type dropdown. 
Select the *.vbproj or *.csproj project file. 
Click Open. 
A new project is created in project_folder/SwMacro/upgradedmacro. 
A new instance of Visual Studio 2015 opens the upgraded project. See Prerequisite Software. 
When you compile the macro, the project's configuration (Debug or Release) and output directory are not read. Only a release DLL is saved in project_folder/SwMacro/upgradedmacro/bin. 
The original macro is not modified or moved. 
Running a .NET DLL created in SOLIDWORKS 2017 or earlier
Read Installing VSTA. If you selected to install VSTA 1.0, and de-selected Tools > Options > System Options > General > Enable VSTA VERSION 3.0, you can edit or run VSTA 1.0 macros. If you did not install VSTA 1.0, then VSTA 2015 is active by default, and you must upgrade VSTA 1.0 macros to VSTA 2015: 

Follow the instructions in Upgrading a .NET macro created in SOLIDWORKS 2017 or earlier. 
Select Tools > Macro > Run. 
Select SW VSTA Macros (*.dll) in the file type dropdown. 
Navigate to project_folder\SwMacro\upgradedmacro\bin. 
Select the DLL. 
Click Open to run the macro. 

其实官方说了很多,其实很容易看懂的。
和安装(需要单独去选VSTA环境)以及选项都有关系。
因为我不常用这种方式,毕竟一部分操作通过宏也是录制不到的,而且用swp格式也非常方便,录好的代码自己再使用VS环境再写一次,能更好的加深印象,理解和消化掉知识点。

所以我还是建议大家不要纠结这个录制的格式,习惯就好了,花太多时间去弄这个没必要的环境,不划算。
而且直接用VS 比那个方便的多。

posted @
2021-04-08 15:24 
painezeng  阅读(
0)  评论(
0
编辑 
收藏 
举报  
来源

SolidWorks二次开发—高级配合(轮廓中心)

SolidWorks二次开发—高级配合(轮廓中心)

今天有网友咨询高级配合中的面中心配合无法生成。所以我特意来测试了一下,做个总结。
先打开简单的装配体,确认配合操作。

开始录制宏:

点击Mate ,切换到高级配合中的轮廓中心配合。

再选第一步确定的2个面,配合自动完成了。

停止录制,然后保存录制的文件,然后用最后面的编辑按钮打开刚保存过的swp文件。

录制出来的宏,其实都有英文的注释。把Solidworks退回一步,取消掉我们刚刚手动配合的操作。
直接在VBA宏编辑器中按F5,Solidworks就再次把这个面中心的配合做好了。
下面是我大概注释的几步,大家可以参考修改为自己想要的代码,如vb.net 或者C#

当然我们还可以去API中搜索一下 这个配合所出来的关键字:

录制出来的关键字:
ProfileCenterMateFeatureData

API中也只是给了一个VBA的例子,大家可以参考的去看看,实现一下。

后来网友说他也是用C#。但是就是不成功,我就来改成C#的来测试,也是可以了,就是设置配合对象的时候要动态转换。

源码如下:

            //请先分别在两个零件中选中用于轮廓配合的面。
            //连接到Solidworks
            SldWorks swApp = Utility.ConnectToSolidWorks();

            ModelDoc2 swModel = (ModelDoc2)swApp.ActiveDoc;

            Face2 swSelFace = default(Face2);
            Face2 swSelFace2 = default(Face2);

            SelectionMgr swSelMgr = (SelectionMgr)swModel.SelectionManager;

            //获取选择数据
            SelectData swSelData = default(SelectData);

            swSelData = swSelMgr.CreateSelectData();

            swSelFace = (Face2)swSelMgr.GetSelectedObject6(1, 0);
            swSelFace2 = (Face2)swSelMgr.GetSelectedObject6(2, 0);

            var swAsmembly = swModel as AssemblyDoc;

            ProfileCenterMateFeatureData profileCenterMateFeatureData =
                (ProfileCenterMateFeatureData)swAsmembly.CreateMateData((int)swMateType_e.swMatePROFILECENTER);

            object[] mateFaces = new object[2];

            mateFaces[0] = swSelFace;
            mateFaces[1] = swSelFace2;

            var lisFaces = (DispatchWrapper[])ObjectArrayToDispatchWrapperArray((mateFaces));

            profileCenterMateFeatureData.EntitiesToMate = lisFaces;

            profileCenterMateFeatureData.MateAlignment = 0;

            profileCenterMateFeatureData.LockRotation = false;

            profileCenterMateFeatureData.FlipDimension = false;

            profileCenterMateFeatureData.OffsetDistance = 0;

            Feature newMateFeature = (Feature)swAsmembly.CreateMate(profileCenterMateFeatureData);

            swModel.EditRebuild3();

            if (newMateFeature != null)
            {
                MessageBox.Show("配合完成。");
            }

选中两个圆的面,执行之后:

完成,我顺带查了下api,EntitiesToMate中根本没有C#相关的写法,所以不好理解这里面的东西。


源代码还是老地方,有兴趣的自己拿。

posted @
2021-04-02 15:42 
painezeng  阅读(
0)  评论(
0
编辑 
收藏 
举报  
来源