揭开SolidWorks二次开发的神秘面纱

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了揭开SolidWorks二次开发的神秘面纱相关的知识,希望对你有一定的参考价值。

参考技术A 很多朋友都在好奇,我们使用的SolidWorks的插件是如何制作的,下面我就以这个垫片自动生成程序,来详细讲解一下SolidWorks的插件的制作过程和原理。首先我们看一下SolidWorks软件应用程序编程接口API的说明文件。

这个API帮助告诉我们,可以使用应用程序编程接口实现SolidWorks软件的自动化定制功能,也就是二次开发。应用程序编程接口可以支持B、C#、C++三种语言。里面详细介绍了这三种语言下的SolidWorks的命令的说明。以SolidWorks拉伸命令为例,我们看一下程序语言和我们操作的命令框的大致对应关系。

我们所编写的代码就对SolidWorks软件的操作过程的一种描述,也就是把我们手动操作记录成了一连串的程序代码,让电脑替我们去执行操作。这里有一个前提,我们所编写的代码必须与SolidWorks应用程序编程接口所规定的一致。API帮助是全英文的,而且有很多英文并不是英语单词而是英文缩写,这就对初学者很不友好,也是很难学习的原因之一。

既然我们知道了可以通过应用程序编程接口来实现SolidWorks的二次开发和功能定制,我们就需要学习一种语言和掌握一款编程软件,我以B语言和Visual Studio 2017这个编程软件为例介绍一下软件的编写。

使用Visual Studio 2017新建一个基于B语言开发环境的Windows窗体应用,也就是我们的插件的软件外观。

1.新建后会自动生成软件的窗体,可以通过属性更改窗体的大小。

2.在左边的工具箱的公共控件里,点住picturebox,拖入窗体图片控件,用于显示我们软件的示意图。

3.在左边的工具箱的公共控件里,点住label,拖入窗体文本说明。点住textboxl,拖入窗体文本框。重复上述操作。并且填入对应的数值。(SolidWorks的零件模板的路径可以查看系统选项)并且将一个下拉框combobox拖入窗体,用于选择草图的绘制平面。

4.在左边的工具箱的公共控件里,点住button,拖入窗体按钮。这样我们软件的界面就做好了,接下来我们要引用SolidWorks的类型库,也就是让应用程序能够调用SolidWorks API接口。

5.引用上图所示的两个SolidWorks的类型库,完成应用程序和SolidWorks软件的互通连接。

6.将软件界面中的文本框,下拉框,按钮进行代码编写,也就是将手动操作的过程用程序语言描述一遍。我在每行程序后面都加上了注释,有兴趣的可以详细看一下。

7.代码写完后,点击启动,就可以进入程序调试。

8.程序调试完成后,点击停止退出调试,软件会在相应的目录下生成一个后缀为.exe的应用程序。这个程序就是我们所完成的插件,双击即可运行。

低代码平台是什么鬼?带你揭开神秘面纱!

阿里云开发者大会大佬讲一个老师不懂开发,在钉钉低代码平台创造了18个应用打造了智慧校园。那么低代码平台是鬼?低代码意味着什么?它为什么重要?受众是谁?以及常见的用例!

什么是低码?

这里,"低代码"是指技术内部的运动。让我们从低代码的简单定义开始。

简而言之:一种可视化工具,可以代替一定程度的编写代码

就像这个定义一样简单,关于低代码和这个术语的含义存在很多混淆。

为什么"低代码"一词令人困惑?

因为"低代码"可能意味着多种含义。今天,它通常用于描述以下情况之一:

  • 可视化工具或WYSIWYG功能
    该术语通常用于描述传统上需要代码的解决方案的替代方案。自然语言处理和类似技术也属于这一类。
  • 无需代码
    代码即可使用或在其中创建无代码的软件。样式可能需要 HTML 和 CSS。例如,在Adalo 中,您无需代码即可创建简单的移动和 Web 应用程序。
  • 低代码
    这些解决方案通常需要声明式编程和有意义的编程,用于任何规模化应用程序的大部分(通常是产品数据、组合客户数据或任何有意义的关系信息)。Wordpress是广泛使用的低代码解决方案的一个例子。
  • 企业
    企业使用的低代码HpaPaaS 平台,是需要大量投资的大型可扩展平台。Mendix是 HpaPaaS 平台的一个示例。

为什么低代码变得重要?

低代码工具背后的一个关键驱动因素是电子商务的增长。在过去的四年里,网上销售从实体店销售中夺走了大量的业务。

“2015年,电子商务占全球零售销售的份额为7.4%……2019年,这一数字上升到13.7%,在2019年25.038万亿美元的零售市场价值中占3.43万亿美元。” — Oblero 研究

那个的真实意义是什么?在过去的四年里,人们在网上花费的钱比在零售店花费的钱几乎翻了一番。

显示了增加:

image.png

预计未来电子商务将进一步增长

为什么会存在低代码?

这些工具旨在改进企业可以利用他们的人员和资源完成工作。

许多低代码公司都有公民开发者的愿景。斯科特-布林克尔,VP平台系统在Hubspot解释说得好

相反,公民分析师、公民数据科学家、公民开发人员、公民集成商等的标签,指的是不是特定学科的专家------例如数据分析、数据科学、软件开发、系统集成等------但谁能像专家一样运用新一代工具来完成这些学科的任务。

但是,低代码解决方案并不能取代开发人员或数据科学家。

这些工具使公司能够利用他们可能无法利用的技能和技术。

这可能是真的,因为该公司没有开发人员。可能对于开发人员来说,其业务优先级太低,或者公司当前的开发人员没有工作所需的特定技能或培训。

低代码工具用于业务支持 - 而不是替代品。

机器学习和人工智能是低代码如何支持开发团队的例子。因为很大团队没有丰富的AI或ML实战经验。

为了提供帮助,公司正在创建以开发人员为中心的低代码工具。

例如,亚马逊已经开始专注于将机器学习工具交到现有开发人员和其他技术资源的手中。这种方法可以帮助公司摆脱寻找和配备数据科学家团队的麻烦。

“在这些其他创新中,我们能做的最好的事情之一就是让您现有的人才能够通过机器学习变得富有成效。而且,特别是开发人员人才和业务分析师人才。” — AWS 负责人Matt Asay 。

低代码工具的常见用例是什么?

低代码工具支持许多不同的用例。下面是一些今天看到的更常见的用例。

  1. 集成/自动化
  2. 客户服务
  3. 网络体验
  4. 电子商务
  5. 数据分析
  6. 开发运营
  7. 内部公司
  8. 模板代码
  9. 创建 Web 应用程序
  10. 企业软件开发

稍后我们将更详细地介绍这些用例。但在此之前,为了加深低代码的理解,让我们讨论一下低代码工具旨在帮助谁。

低代码受众和市场

制造商

这些都是diy运动的成员。制造商解决方案通常将多个工具集成在一起,以构建受众和数字产品。

也有一个单一应用程序的制造者受众创建web和移动应用程序。

当制造商使用多种解决方案时,他们可能会结合Webflow、Typeform、Airtable和Zapier来制作数字产品。

当开发者想要使用单一的应用程序时,他们可能会使用Adalo这样的平台。用户可以使用Adalo为web、iOS和Android平台创建应用程序。

创客也有一个活跃的在线社区,其中Makerpad是最大的。

个人开发者/自由职业者

美国的自由职业者人数预计到2027 年将达到1 亿。从事项目的自由职业者能够利用低代码、模板、平台和工具来更快地生产。

一个自由职业者可能使用的解决方案的例子是Divjoy,一个React代码库生成器。像Divjoy这样的工具提供了登陆页面、表单、身份验证、密码流程、路由等基础。

自由职业者在以下情况下使用这些工具:

  1. 没有经验
  2. 需要帮助开始
  3. 想要使用模板的设计
  4. 想要节省时间

代理商

美国的定制软件机构雇佣了大约100万人,收入超过1550亿美元。广告公司竞争激烈,压力很大,不得不降低预估和成本。低代码的工具正在帮助解决这个问题。

在我们最近的一次谈话中,Philip, Generato的联合创始人,说明了这些公司是如何看待自己的:“在2年内,Generato将成为软件开发团队的中心枢纽,很快启动任何项目。”

这些公司的共同主题是提供速度和灵活性的结合。这两者对于一个机构的商业模式都是必不可少的。

一个机构的盈利能力基本上是按小时收费x销售小时-成本。当代理机构降低成本时,它既可以用来赚取更多的利润,也可以在项目上以更低的出价(可能是两者的结合)。代理机构需要灵活性,因为他们要投标各种各样的项目和工作。
机构在以下情况下会使用这些工具:

  1. 想要节省时间和成本
  2. 提高盈利能力
  3. 使用精益原则进行创新
  4. 创建快速原型
  5. 支持营销部门

小型企业和初创企业

低代码为小型企业和初创企业提供了他们永远无法负担的能力。这可能是一个看起来很专业的网站、定制聊天机器人、客户门户和一个在线商店,所有这些都无需代码即可运行。
例如,小企业可能请不起全职数据科学家。因此,小企业可能无法使用机器学习从数据集预测潜在客户行为。

显然,人工智能是一个低代码解决方案的例子,初创公司或小型企业可能想要使用。他们希望将机器学习工具带给非技术受众——这一趋势很可能会持续下去。
当我成为Vanick Digital的运营副总裁时,我们面临的最大挑战之一是软件的运营支持成本。

我们的大部分基础设施都是基于本地的,而不是云计算。这意味着我们的团队必须学习如何支持这些技术,然后他们通常是事故的第一反应者。

通过将我们几乎所有的工具、基础设施和平台迁移到云解决方案,我们能够显著地降低运营成本,同时提高我们的速度和能力。

转向SaaS、IaaS和PaaS的混合帮助我们的开发人员更少地担心基础设施和操作。

他们可以专注于他们喜欢的事情——编写代码而不是支持代码。同样,低代码技术可以帮助团队减少担忧。

小型企业和初创公司使用这些工具时:

  1. 希望提高运营效率
  2. 增加功能
  3. 运用精益原则进行创新
  4. 利用他们内部不具备的技能
  5. 提高盈利能力

中型企业

任何这类公司都面临着与企业公司竞争的挑战。换句话说,这些公司如何与谷歌、Facebook等竞争?这些公司中就不能有一家比任何人都强大吗?

Jotform的首席执行官Aytekin Tank曾在谷歌和Adobe都进入他的市场时向他展示过这种情况。

那么Jotform 是如何存活下来的呢?

Menlo Ventures 的合伙人史蒂夫-斯隆( Steve Sloane )表示,风投希望在与企业竞争的小公司中看到什么

_“_首先,小公司比竞争对手建立更灵活,因此更精简的管理结构,减少固定成本甚至精简代码库的科技公司。”通过倾听客户的所有的形状和大小和准备快速迭代,中型企业能够保持领先地位的市场力量。”

中型企业面临的一个持续挑战是,内部人员无法参与创新。团队忙于管理自己的渠道和增长,他们没有足够的时间去创新。

像SLINGR这样的公司看到了低成本开发的市场和外包创新的需要。在实践中,这通常看起来像是创建概念证明和想法测试实验室。SLINGR的独特之处在于使用低代码为客户省钱。

中型公司在以下情况下使用此类工具:

  1. 分散业务实现
  2. 在新业务线上快速迭代
  3. 创建快速原型或产品
  4. 增加员工的影响
  5. 想要外包问题

营销团队

任何为营销团队工作过的开发人员都知道你永远都不够快。营销人员想要立即得到东西------即使是不完美的。

这是低代码解决方案的理想用例。

低代码工具使营销人员能够快速迭代,通常完全靠自己而不需要开发资源。

image.png

成功的营销需要不断的实验。

低代码工具可以帮助在现实的预算范围内提供这些。例如,在Unbounce中,营销人员可以创建自己的登陆页面,而无需等待开发者。

这可以让他们持续执行A/B测试,而不是依赖于外部人员或团队。

营销人员在以下情况下使用此类工具:

  1. 需要授权和速度
  2. 重视实验而不是完美
  3. 与 IT 部门关系紧张

软件团队

随着技术变得越来越专门化,低代码可以帮助团队利用他们没有经验或没有时间来扩展的技术。例如,我在Vanick Digital担任运营副总裁时,我们在运营中尽可能多地自动化或外包。

我的公司为客户提供的价值是编写代码,而不是手动检查服务器或服务。正因为如此,我们接受了尽可能多外包的合同、工具和哲学。

软件团队在以下情况下使用这些工具:

  1. 专注于他们提供最大价值的地方
  2. 创建原型
  3. 拥有诸如 BA 和 PM 之类的资源来利用这些工具
  4. 产生运营改进
  5. 有可重复的工作
  6. 想要可视化开发运营

企业公司

拥有大量员工的企业公司希望尽可能多地利用他们的集体技能。小规模的效率可以创造巨大的收益。

企业 公司在以下情况下使用此类工具:

  1. 分散工作或拥有跨职能团队
  2. 拥有创新实验室或创新团队
  3. 有重要的业务流程管理需求
  4. 希望提高营销对 IT 的独立性

低代码用例与示例

1. 集成/自动化

这些工具可以自动操作并连接web应用程序。工作流自动化是低代码技术中较为成熟的领域之一。

例如,用户可以使用Zapier将客户从网站上的表单推送到营销平台。

image.png
The Zapier Interface

这些工具通过为您执行基本任务来帮助节省时间。

集成示例:ActiondeskParabola、FlowIFTT、Zapier

2.网络体验

这些程序用最少的代码创造出有意义的网络体验。

Wordpress和Squarespace是这方面的知名工具。用户必须熟悉标记语言(HTML和CSS)才能使用许多特性和高级样式。

image.png

这些工具包括内容管理系统、登陆页面创建者、机器人——任何用户可能在数字体验中合理互动的东西。

营销人员在这一群体中占了相当大的比例。网站平均占整个营销年度预算的11.7%。

Web 体验示例:GhostSquarespaceUnbounceWordpress

3.客户服务

十年前,软件专注于帮助小团队管理入站客户的问题和需求。现在,技术允许并实现了这一过程的自动化——但它们也创造了大量的自助服务选项。

像Zendesk这样的工具让用户能够使用门户和自我管理工具创建完整的客户支持系统,而无需编写一行代码。

Landbot等其他工具可以让企业创建无需代码的自助机器人。

这些工具可以与您的web体验平台、电子商务等集成,以提供组合的客户体验。

客户服务示例:ZendeskLandbotSalesforce、Zoho

4. 电子商务

这些平台使流程能够在线销售、运输和管理产品。预计到2040年,95%的交易将在网上完成。

Shopify是时下流行的电子商务平台之一。它允许用户在没有代码的情况下创建完整的电子商务体验。

image.png
Shopify 与您的商店集成

这些平台必须努力在亚马逊之外创造价值——亚马逊目前占据了大约50%的电子商务市场。

电子商务示例:MagentoWoocommerce

5. 数据分析

如今,利用机器学习已经超出了普通人的能力范围。尼尔曼•戴夫是obvious AI的首席执行官,他与人共同创办了这家初创公司,旨在帮助人们日常使用机器学习。

“除了我们的产品,我们公司希望通过将数据科学交给每个人,而不是你们公司的少数技术工程师,来增加包容性,消除ML偏见。——尼尔曼·戴夫

显然,人工智能可以让你使用自然语言进行分析和预测。

image.png

Obviously.ai演示

开发人员也需要低代码的数据科学。像Yellowfin这样的公司为开发者提供解决方案。

没有数据科学家的公司可能不具备在自己的应用程序中构建高级分析的技能或时间。在这种情况下,可以使用像Yellowfin这样的工具在现有应用程序中嵌入数据分析解决方案,而不是自定义编写一个应用程序。

数据科学示例:Obviously.ai, Parabola

6. 开发运营

可视化工具帮助DevOps成为信息辐射器和团队放大器。现在,您可以使用可视化工具跨环境管理、监视和提升构建。在过去,这需要代码、命令行界面等。
image.png

XebiaLabs发布和部署屏幕截图

这些工具可以让软件开发团队快速移动。例如,当我担任项目经理时,我的公司创建了一个自定义web应用程序来创建和管理我们的AWS实例。

我们可以在需要的时候在QA实例中部署和管理我们的构建,而无需等待我们的运营团队。这在当时(大约七年前)是很了不起的。

对于那些能够帮助规划经理、产品经理和业务分析师的工具来说,有一个巨大的未来市场。

DevOps 示例:Bitbucket Pipelines、Jenkins、XebiaLabs 发布和部署

7. 公司内部

大多数公司都有成千上万的电子表格通过电子邮件发送。它们很难管理,版本控制也很困难,而且不能用于api或集成。
image.png
像Airtable这样的解决方案可以为公司提供一种标准化数据的方法,以及提供API访问。Airtable是一个没有代码的数据库,对大多数人来说,它和Excel很相似。

微软有一个解决方案,可能对拥有O365许可的用户免费。PowerApps一直被评为低代码平台,在帮助创建和管理类似电子表格的用例方面非常出色。

例如,为卡车检查员创建一个简单的应用程序(下图):

在这里插入图片描述

MS PowerApps 演示创建卡车检查应用程序

今天,这些创建了非常简单的应用程序。他们还不够成熟,无法创建企业级生产软件。

内部公司示例:GlideMS PowerApps、Airtable

8. 模板代码/部分网页应用

模板一直存在。

新的是Divjoy这样的工具。

Divjoy是一个反应代码生成器,功能就像一个低代码模板生成器。开发人员选择他们想要的页面、组件和样式。然后,生成器导出为这些设置生成的代码。

image.png

像Divjoy这样的工具将变得更加普遍。
它们帮助开发者在使用诸如Material Design等标准时删除不必要的细节。

模板代码示例:Divjoy

9. 标准网页应用

这是低代码中比较不成熟的领域之一。今天,没有一个低代码的应用程序能够像大规模的定制代码那样构建web应用程序。

这一点可能永远不会改变。简单带来了妥协。

这并不意味着妥协就更好或更糟。这意味着你应该理解所使用平台的局限性,就像任何平台选择一样。

有一些解决方案,如Adalo(见下文)。但这些解决方案还有很长的路要走。然而,这是一个新市场,并将迅速改善。

image.png

来自他们网站的快速Adalo演练(可用的最佳工具之一)

Adalo这样的解决方案非常适合创客,但它们还不是为了规模化。随着这些平台越来越多地被采用和测试,这种情况将在未来几年发生变化。

标准 Web 应用程序示例:Adalo、Bubble、Glide

10. 企业软件开发

这是低代码的“正确”使用,也被Gartner称为aPaaS、HpaPaaS平台和“企业低代码应用平台”。

这些不仅仅是软件的一部分;它们是一种完整的云技术。下面的信息图表有助于提供上下文:

1_LyWYp3ph5QccHDFrr7Iahg.png

这些解决方案需要大量的投资,但可以为企业提供巨大的利益。它们允许大公司利用更多的员工作为创造者,授权部门,更好地标准化数据接收和管理。

企业软件开发示例:OutsystemsMendix

低代码行业需要更多的福音

在低代码领域,几乎没有跨行业的宣传。

换句话说,有很多声音几乎没有自我组织。

两个关键问题——整个生态系统的混乱和一些技术专家的偏见——主要是由于快速增长和不成熟的市场。

与开发人员的低代码对话包含了很多激情——这是正确的。

有一个共同的主题,低代码是“为开发人员的工作而存在的”。

以上是关于揭开SolidWorks二次开发的神秘面纱的主要内容,如果未能解决你的问题,请参考以下文章

solidworks 二次开发

SolidWorks二次开发

SolidWorks二次开发

“五一”小假期之后看什么?《揭开LoopBack4的神秘面纱》来袭!

我做solidworks二次开发时,运行程序界面无反应,请专业人士指点,不胜感谢

solidworks 二次开发 如何遍历文件夹下所有子文件的文件?