AI4CAD:利用 Python 实现 SolidWorks 自动化建模小尝试(基于Python的Solidworks二次开发)

AI4CAD:利用 Python 实现 SolidWorks 自动化建模小尝试(基于Python的Solidworks二次开发)

近年来,AI 已经逐渐渗透到我们工作的方方面面。你是否曾想过,如果建模也能交给 AI 来完成,我们只需告诉它:“帮我画一个杯子,高 12 厘米,直径 8 厘米,壁厚 2 毫米”,它就能自动完成?这听起来可能像是未来科幻,但如今借助 SolidWorks 的开放接口和 Python 的强大生态,我们正一步步迈向这个目标。
🧠 AI 建模设想:告诉它“我要一个杯子”
想象一个未来的建模流程:
你说:“我要一个杯子”
AI 追问:“多高?多大直径?底厚多少?是否带把手?”
你回答参数
AI 自动在 SolidWorks 中建模并保存。
当然以上还只是个美好的幻想,想要实现还需要发展自动化建模技术以及大语言模型交互。
这里我基于pycharm+anaconda实现了与SolidWorks 的关联,实现了以下小操作:
1、建立 Python 与 SolidWorks 的连接
2、通过代码新建零件文档
3、在前视基准面绘制一个正八边形
4、对该草图进行拉伸
5、保存生成的零件文件
当然了,重点是如何建立 Python 与 SolidWorks 的连接。其他不管是新建零件绘图什么的都是通过调用SolidWorks 里的API实现。
如何建立 Python 与 SolidWorks 之间的连接呢?
1、找到你项目所在的虚拟环境下的makepy.py。
我的虚拟环境是Myenv1:

在这里插入图片描述


2、运行后分别选择SOLIDWORKS 20XX Type library和SOLIDWORKS 20XX Constant type library的文件,选择ok后,运行窗会出现一行地址,根据地址找到对应的文件。

在这里插入图片描述


地址里的文件如下:

在这里插入图片描述


3、将上方红色的py文件复制出一份副本,命名为为swconnect(8开头的)和swconst(4开头的)。
4、将起复制到虚拟环境下win32com的client。

在这里插入图片描述


大功告成!
接下来就是写代码实现了:
运行结果:

在这里插入图片描述


在这里插入图片描述


代码如下:

import time import math import win32com.client from win32com.client import VARIANT import pythoncom swApp = win32com.client.Dispatch("SldWorks.Application") swApp.Visible =True time.sleep(2)# 新建零件 template_path =r"C:\ProgramData\SolidWorks\SOLIDWORKS 2021\templates\gb_part.prtdot" swModel = swApp.NewDocument(template_path,0,0,0)if swModel isNone:raise RuntimeError("❌ 新建失败")print("✅ 成功新建零件文档") modelView = swModel.ActiveView if modelView: modelView.FrameState =1 swModelExt = swModel.Extension swSketchMgr = swModel.SketchManager swFeatMgr = swModel.FeatureManager arg_null = VARIANT(pythoncom.VT_DISPATCH,None)# === 正八边形 === swModelExt.SelectByID2("Front Plane","PLANE",0,0,0,False,0, arg_null,0) swSketchMgr.InsertSketch(True) R =1/(2* math.sin(math.pi /8)) points =[]for i inrange(8): angle = i *(2* math.pi /8) x = R * math.cos(angle) y = R * math.sin(angle) points.append((x, y))for i inrange(8): x1, y1 = points[i] x2, y2 = points[(i +1)%8] swSketchMgr.CreateLine(x1, y1,0, x2, y2,0) swSketchMgr.InsertSketch(True)# === 拉伸 0.5 m === extrude = swFeatMgr.FeatureExtrusion2(True,False,False,0,0,0.5,0.0,False,False,0.0,0.0,False,False,0.0,0.0,False,False,False,0,0,False,False,False)if extrude isNone:raise RuntimeError("❌ 拉伸失败")print("✅ 已完成拉伸")

代码挺简单的,一看就知道意图,也没什么好讲的。
既然已经打通了,那就可以学习 SolidWorks 的API,然后尽情开发吧!

Read more

Flutter for OpenHarmony: Flutter 三方库 google_maps 在鸿蒙应用中嵌入全球地图服务的架构实践(跨平台地图方案库)

Flutter for OpenHarmony: Flutter 三方库 google_maps 在鸿蒙应用中嵌入全球地图服务的架构实践(跨平台地图方案库)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 在进行 OpenHarmony 的全球化应用开发时,地图服务是出海项目绕不开的核心组件。对于已经在海外市场成熟运行、深度依赖 Google 地图生态的 Flutter 应用,如何将现有的地图逻辑迁移或适配到鸿蒙平台,是许多出海大企关注的焦点。 虽然鸿蒙在国内市场主要使用高德或百度地图,但在处理“全球一张图”需求时,google_maps 相关的 Flutter 插件及其底层的 Dart 模型定义,依然是定义地理围栏、标记点(Marker)和轨迹绘制的标准参考。本篇将探讨如何在鸿蒙跨平台架构中,平衡 Google 地图的通用逻辑与鸿蒙的原生渲染。 一、跨平台地图适配架构 在鸿蒙适配中,我们通常采用“统一接口层,分平台实现”的策略。 模型转换 适配层 Flutter 业务层 (Dart) 地图抽象层

By Ne0inhk
Flutter 组件 csv2json 适配鸿蒙 HarmonyOS 实战:高性能异构数据转换,构建 CSV 流式解析与全栈式数据映射架构

Flutter 组件 csv2json 适配鸿蒙 HarmonyOS 实战:高性能异构数据转换,构建 CSV 流式解析与全栈式数据映射架构

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 csv2json 适配鸿蒙 HarmonyOS 实战:高性能异构数据转换,构建 CSV 流式解析与全栈式数据映射架构 前言 在鸿蒙(OpenHarmony)生态迈向工业数字化、涉及海量历史报表同步、离线数据采集及跨系统异构数据对齐的背景下,如何实现一种既能处理超大规模文本、又能保障转换极速且具备“非阻塞”特性的数据清洗方案,已成为决定应用数据吞吐能力与内存稳健性的核心因素。在鸿蒙设备这类强调 AOT 极致性能与受限内存足迹的环境下,如果应用依然采用原始的循环分割或同步全量加载 CSV,由于由于数据规模的膨胀,极易由于由于“内存瞬时爆表”导致鸿蒙应用的任务栈卡死。 我们需要一种能够流式处理(Streaming)、支持自动化字段映射(Auto-mapping)且具备零样板代码特性的转换方案。 csv2json 为 Flutter 开发者引入了“数据流变幻”范式。它将结构松散的 CSV 文本精确轰击为高维度的 JSON

By Ne0inhk
EnvPilot:一款基于 Rust 的跨平台环境变量神器,一键搞定 Windows/Linux 环境配置!

EnvPilot:一款基于 Rust 的跨平台环境变量神器,一键搞定 Windows/Linux 环境配置!

文章目录 * 1. 项目介绍🎯 * 1.1. 什么是 EnvPilot? * 1.2. 为什么选择 EnvPilot? * 2. 核心优势:四大痛点全部解决!💪 * ✅ 痛点一:添加不生效?已修复! * ✅ 痛点二:删除删不掉?已修复! * ✅ 痛点三:PATH 清理失效?已修复! * ✅ 痛点四:误操作无法恢复?已解决! * 3. 支持的开发环境🛠️ * 4. 详细使用教程📖 * 4.1. Windows 平台使用教程 * 1️⃣ 下载安装 * 2️⃣ 配置环境变量 * 3️⃣ 清除环境变量 * 4.2. Linux 平台使用教程 * 1️⃣ 从源码编译 * 2️⃣ 配置环境变量 * 3️

By Ne0inhk
Spring Boot 机制三: ApplicationContext 生命周期与事件机制源码解析

Spring Boot 机制三: ApplicationContext 生命周期与事件机制源码解析

博主社群介绍: ① 群内初中生、高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。 ② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。 ③ 群内也有职场精英,大厂大佬,跨国企业主管,可交流技术、面试、找工作的经验。 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬,进群赠送ZEEKLOG评论防封脚本,送真活跃粉丝,助你提升文章热度。 群公告里还有全网大赛约稿汇总/博客提效工具集/ZEEKLOG自动化运营脚本 有兴趣的加文末联系方式,备注自己的ZEEKLOG昵称,拉你进群,互相学习共同进步。 文章目录 * Spring Boot 机制三: ApplicationContext 生命周期与事件机制源码解析 * 目录 * 1. Spring Boot 启动概览 * 2. ApplicationContext 生命周期概览 * 3. BeanFactoryPostProcessor 与 BeanPostProcessor 调用顺序

By Ne0inhk