基于Python的Solidworks二次开发小尝试(二)


前言

能够对solidworks进行基本的参数修改的操作后,开始练习新建组装等操作。


步骤

1.通过录制宏,自动绘图

因为本人对Solidworks的操作,了解的非常非常的少,从来没有用过,所以只能绘制简单操作。
以下丑图形就是本人所画!切勿嘲笑,非专业绘图人员!
在这里插入图片描述
通过录制宏获取VB代码如下:
在这里插入图片描述

python复写VB代码如下(示例):

skSegment1 = Part.SketchManager.CreateLine(-0.048795, 0.036914, 0, -0.010456, -0.030693, 0)
skSegment2 = Part.SketchManager.CreateLine(-0.046616, 0.036914, 0, 0.077874, 0.10751, 0)
skSegment3 = Part.SketchManager.CreateLine(0.077874, 0.10751, 0, 0.108911, 0.052778, 0)
skSegment4 = Part.SketchManager.CreateLine(0.104995, 0.052778, 0, -0.009218, -0.029035, 0)
skSegment5 = Part.SketchManager.CreateLine(-0.009218, -0.029035, 0, 0.064043, -0.034573, 0)
skSegment6 = Part.SketchManager.CreateLine(-0.046616, 0.036914, 0, 0.064043, -0.031804, 0)
skSegment7 = Part.SketchManager.CreateLine(0.077874, 0.10751, 0, 0.064043, -0.031804, 0)
skSegment8 = Part.SketchManager.CreateLine(0.108911, 0.052778, 0, 0.064043, -0.034573, 0)
skSegment9 = Part.SketchManager.CreateLine(0.104995, 0.052778, 0, 0.178241, 0.076312, 0)
boolstatus1 = Part.Extension.SelectByID2("Line4", "SKETCHSEGMENT", 0.048329634906583, -3.7731758658148E-04, -4.79523786397384E-02, False, 0, Nothing, 0)
boolstatus2 = Part.Extension.SelectByID2("Point6", "SKETCHPOINT", 0.104995317939597, 5.27778683844579E-02, 0, False, 0, Nothing, 0)
boolstatus3 = Part.Extension.SelectByID2("Point6", "SKETCHPOINT", 0.106216416398708, 4.75317583675488E-02, 0, False, 0, Nothing, 0)

2.修改问题

1、VB中0#表示浮点型,python运行显示格式错误
修改方案:把0#换成0即可
2、Nothing并不是python中的类型,所以需要转换
直接讲python转换为Nothing会显示新的报错。
在这里插入图片描述修改方案:打开swcommand文件,根据报错搜索SelectByID2 函数,修改第第 8 位为 (9, 1)中的9为16进制 (0x0009, 1),保存。

并添加代码::

import pythoncom
arg_Nothing = win32.VARIANT(pythoncom.VT_DISPATCH, None) 

最后将Nothing替换为arg_Nothing即可。

完整代码如下:

import win32com.client as win32
import pythoncom
from swconst import constants

sw_app = win32.Dispatch("Sldworks.application")           
sw_app.Visible = True                                      
arg_Nothing = win32.VARIANT(pythoncom.VT_DISPATCH, None) 
Part = sw_app.ActiveDoc

skSegment1 = Part.SketchManager.CreateLine(-0.048795, 0.036914, 0, -0.010456, -0.030693, 0)
skSegment2 = Part.SketchManager.CreateLine(-0.046616, 0.036914, 0, 0.077874, 0.10751, 0)
skSegment3 = Part.SketchManager.CreateLine(0.077874, 0.10751, 0, 0.108911, 0.052778, 0)
skSegment4 = Part.SketchManager.CreateLine(0.104995, 0.052778, 0, -0.009218, -0.029035, 0)
skSegment5 = Part.SketchManager.CreateLine(-0.009218, -0.029035, 0, 0.064043, -0.034573, 0)
skSegment6 = Part.SketchManager.CreateLine(-0.046616, 0.036914, 0, 0.064043, -0.031804, 0)
skSegment7 = Part.SketchManager.CreateLine(0.077874, 0.10751, 0, 0.064043, -0.031804, 0)
skSegment8 = Part.SketchManager.CreateLine(0.108911, 0.052778, 0, 0.064043, -0.034573, 0)
skSegment9 = Part.SketchManager.CreateLine(0.104995, 0.052778, 0, 0.178241, 0.076312, 0)
boolstatus1 = Part.Extension.SelectByID2("Line4", "SKETCHSEGMENT", 0.048329634906583, -3.7731758658148E-04, -4.79523786397384E-02, False, 0, arg_Nothing, 0)
boolstatus2 = Part.Extension.SelectByID2("Point6", "SKETCHPOINT", 0.104995317939597, 5.27778683844579E-02, 0, False, 0, arg_Nothing, 0)
boolstatus3 = Part.Extension.SelectByID2("Point6", "SKETCHPOINT", 0.106216416398708, 4.75317583675488E-02, 0, False, 0, arg_Nothing, 0)
Part.SaveAs3(r"D:\船舱\test\test.SLDPRT", 0, 2)

最后就会生成我画的丑图啦!再放一次!在这里插入图片描述


总结

我觉得Solidworks中绘图方式,就是对象名+位置,python复写的过程就是对位置对象的位置生成的过程。
才疏学浅,如有问题,希望大佬多多指教!
循序渐进,继续加油!

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
SolidWorks可以通过Python编程语言进行二次开发Python是一种简单易学的脚本语言,拥有丰富的库和模块,可以很好地与Solidworks集成。 首先,为了进行SolidWorks二次开发,我们需要安装SolidWorks API以及Python的相关库。SolidWorks API是一组可用于对SolidWorks进行编程访问的库和接口。Python的相关库包括pywin32和comtypes,用于与SolidWorks的COM接口进行交互。 使用Python进行SolidWorks二次开发可以实现许多功能,如自动化生成零件、装配件和工程图。我们可以使用Python脚本读取和修改SolidWorks文件、创建和操作零件和装配件,以及生成和管理工程图。Python也可以帮助我们进行CAD数据的处理和分析,如提取尺寸信息、计算质量和重心等。 在二次开发中,我们可以编写Python脚本来快速完成重复性的任务,提高工作效率。Python的易学性和代码的简洁性使得二次开发变得更加容易,无需编写繁琐的代码,可以快速实现想要的功能。 除了使用已有的库和模块,我们还可以使用SolidWorks的API文档和示例代码来学习和开发自己的功能。SolidWorks提供了详细的API文档,其中包含各种对象和方法的说明,以及示例代码和教程来帮助我们开始二次开发。 总之,通过使用Python进行SolidWorks二次开发,我们可以实现自动化、快速和高效的CAD任务处理,并且具有灵活性和可扩展性。这极大地促进了CAD工程师在实际工作中的效率和创造力。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小张Tt

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值