iCAx开思工具箱

标题: 【原创】SW的二次开发工具 [打印本页]

作者: 玲玲零零    时间: 2002-11-4 19:56
标题: 【原创】SW的二次开发工具
SW的二次开发工具较多,下面分别对其作一概述。希望大家继续补充、评论。   
  
我个人感觉Delphi仅是计算机专业出身的人在用,非计算机专业的人用的很少,完全没有在中国普及,不知对否???   
  
  一、Delphi  
   Delphi是Borland公司的产品。它是一个运行在Windows下的可视化编程环境,可以创建Windows应用程序。1995年2月,Borland公司推出了Delphi1.0,它提供给用户一种全新的可视化环境,用于快速开发Windows 3.1的应用程序。1996年1月,Borland公司正式宣布了Delphi2.0的诞生。Delphi 2.0是在Windows 95和WindowsNT平台上的一套既方便又功能强大的开发工具,此外,还增加了如数据模块(data module)等多种高效的数据重用功能。Delphi客户机/服务器开发工具在高性能的快速应用程序开发领域已经成为新的标准。随后,Borland又推出Delphi的第三代版本——Delphi 3.0多层client/server的32位快速开发工具。  
   1998年8月,在完成了必要的法律程序后,美国著名软件厂商Borland公司正式更名INPRISE公司。1998年8月20日,INPRISE公司在北京的新闻发布会上发布了其备受关注的企业级开发工具——Delphi4.0。该产品系列包括标准版、专业版、客户/服务器版三个版本,可全面支持Oracle 8对象关联扩展功能及CORBA分布式对象技术。  
  Delphi是基于Object Pascal的开发工具,它具有高性能的32位本地优化代码编译器。其应用程序像用C++语言编写的应用程序一样,可直接运行,能够最终生成可单独执行的DLL与EXE文件。Delphi作为一种面向对象的可视化开发工具,其主要特点是能快速开发应用程序;具有高效的可视化构件库与面向对象的架构;具有集成的快速报表生成工具和集成的图表构件,能将企业数据转换成决策信息;能可视化地创建构件,以及通过鼠标施放生成构件模板;具有多种操作向导,可加速程序编写和减少语法错误;具有开放式数据库架构,可轻松连接企业内的各式数据库结构;具有集成的数据库开发工具、强大的客户/服务器运算开发功能;具有可伸缩的多层面数据库架构,便于维护和增加重用性;具有Web数据库应用程序开发的能力;具有先进的分布式数据管理;能一步生成COM和CORBA对象;能与分布式Java的完全互操作性。是一种先进的开发工具 。
作者: 玲玲零零    时间: 2002-11-5 20:16
二   C语言
  
  个人感觉这种语言现在用的人比较少了,都转用其它的C类语言了。
  C语言是一种通用的计算机程序设计语言,它既可用来编写系统程序,又可以用来设计一般的应用软件。C语言与UNIX操作系统有着十分密切的关系。这主要是由于C语言是基于UNIX操作系统之上发展形成的。另一方面,UNIX操作系统以及运行其上的绝大部分软件又都是用C语言编写而成。
    UNIX的最初版本是1970年由贝尔实验室(Bell Laboratories)的K.Thompson和D.M.Ritchie等完成的,当时的UNIX主要是作为PDP-7型计算机的操作系统,并且全部用汇编语言写成。K.Thompson和D.M.Ritchie在开发UNIX系统的同时,还对M.Richards所提出的BCPL语言作了改进,形成了一种被称为B的语言,然后在B语言的基础上又进行了进一步的完善,最终形成了C语言。之所以取名为C,就是因为它派生于B的缘故。
作者: 玲玲零零    时间: 2002-11-5 20:16
 三 C++语言     
  
  由于C语言存在着一些局限:
    (1)C语言的类型检查机制相对较弱,这使得程序中的一些错误不能在编译阶段由编译器检查出来。
    (2)C语言本身几乎没有支持代码重用的语言结构。
    (3)C语言不适合开发大型程序,当程序的规模达到一定的程度时,程序员就很难控制程序的复杂性。
    为了弥补了C语言存在的这些缺陷,美国贝尔实验室的Bjarne Stroustrup博士在C语言的基础上,增加了面向对象的特征,于1980年开发出来的一种过程性与对象性结合的程序设计语言。最初他把这种新的语言叫做“含类的C”,到1983年才取名为C++。C++继承了C的原有精髓,如高效率、灵活性;扩充增加了对开发大型软件颇为有效的面向对象机制;弥补了C语言不支持代码重用、不适宜开发大型软件的不足,成为一种既可用于表现过程模型,又可用于表现对象模型的优秀的程序设计语言之一。
    C++现在已经成为被广泛使用的通用程序设计语言。它不但继承了C语言的优点,而且有自己独到的特点,最主要的有:
    (1)C++保持与C兼容,这就使许多C代码不经修改就可以为C++所用,用C编写的众多的库函数和实用软件可以用于C++中。
    (2)用C++编写的程序可读性更好,代码结构更为合理,可直接地在程序中映射问题空间的结构。
  (3)生成代码的质量高,运行效率仅比汇编语言慢10%到20%。
    (4)从开发时间、费用到形成的软件的可重用性、可扩充性、可维护性和可靠性等方面有了很大的提高,使得大中型的程序开发变得更加容易。
    (5)支持面向对象的机制,可方便地构造出模拟现实问题的实体和操作。
作者: donkey    时间: 2002-11-5 22:11
请问Delphi这个软件能用于其他的三维CAD软件的二次开发吗?例如
  imageware surfacer!
作者: wlzhao33    时间: 2003-1-6 17:53
问一个很菜的问题,SW中有象UG中的UI Styler这样的功能吗?
不知道有没有高手现在正在做SW的二次开发,希望能够多多交流!
作者: darkhorse    时间: 2003-1-7 19:21
呵呵,比UG更强大,直接利用编程语言的界面编辑器.
作者: wlzhao33    时间: 2003-1-8 10:15
斑竹这样说我感觉太空洞了,不知道斑竹是否可以举一个很简单例子的具体做法。
作者: 玲玲零零    时间: 2003-1-8 18:48
UG我不熟悉,SW也不太熟悉,推理可以开发出用户界面的。
作者: darkhorse    时间: 2003-1-8 19:44
很抱歉,我对SW开发也不是很熟悉
我的感觉是这样的:
SW可以用VB,VC等编译环境开发,他是纯粹的windows产品,基于COM标准,所以MFC等资源利用的很无封,VB本来就是基于Form的,而Form就是界面呀,VC的核心是view/document可是他也有FormView与dialog类呀,他们就是界面,难道不是吗?
SW有自己的入口函数,你的程序运行后,便可以为所欲为了,可以用类派生事例,然后调用对话框显示函数。
  
我没做过。仅董UG开发,不过原理都是一样。
  
另外我说得不太严格,似乎这样说更严格一些:可以直接利用编译环境中常用的界面开发工具。
作者: 玲玲零零    时间: 2003-1-9 23:03
很在行啊:)
作者: 天下有雪    时间: 2003-1-10 21:37
我看过SW的说明文件,好像还有Basic的,玲玲零零,你有个拉字的贴子不就是用Basic写的吗?
作者: wangao88    时间: 2003-1-11 09:33
对sw二次开发的功能最强大的是vc,看一看为什么sw的黄金伙伴作的都是插件就知道了。sw二次开发分两种,一种是基于自动化技术(com的一种应用)的,使用此种技术,利用vb\vc\delphi\c++builder,总之只要支持自动化技术的开发工具都可以,但是只能开发exe形式的程序;另一种开发方式是基于com的,可以使用最多的swapi,而在第一种开发方式下有些api是不能使用的,开发工具只能使用vc,生成的是dll形式的文件,这就是sw的插件了。
到sw2003中,也可以使用vb开发插件了,但是由于basic语言自身的原因,以及sw本身就使用vc开发,所以,如果你要做大的sw二次开发软件,vc将是你唯一的选择。
作者: wlzhao33    时间: 2003-1-11 15:00
楼上的你作过SW二次开发吗?如果作过的话,详细谈谈你的经验好吗?
作者: EMeiMonkey    时间: 2003-1-12 13:33
我比较赞同wangao88的说法,如果你想在SolidWorks上面开发比较复杂的功能,比如CAPP、CAM系统等之类的,唯一选择就是VC。其实学习VC也并不是很难,就拿我来说吧,在学校里仅仅学了C语言,毕业一年后学习C++、VC开发,差不多用了一年吧,其间再学习COM开发技术,已经能够顺利做开发了,我可是学机械的,并非计算机专业。最关键是要有恒心,有毅力,不怕困难,多到CSDN论坛问问题,慢慢的你也成高手了。关于SW二次开发,在其官方网站上有很多实例(VC&VB代码),多研究研究很有好处。
作者: 玲玲零零    时间: 2003-1-12 21:16
为了加分,俺再说说
  
VB.NET  
  
    Visual Basic没有多线程的功能;没有实现继承和其他面向对象的特性;对错误的处理能力差;与诸如C++的其他语言集成性差;没有用于基于Intemet的应用程序的高效用户界面。  
    解决上述局限的方案是Microsoft.NET。
     公司几年前就意识到,利用基于Windows的技术能够写出好的Internet应用程序,但是却非常需要找到更快地开发应用程序并使得开发的程序更易于部署的方法。在努力工作了几年之后,微软公司于2000年7月在佛罗里达州奥兰多的Professional Developers Conference(PDC,专业开发人员会议)上推出了Microsoft.NET的初步方案。它包括NET Framework,在它之中又含有语言和执行平台,以及提供丰富的内置功能的大范围类库。除了核心NET Framework之外,.NET初始方案还包含协议(例如Simple Object Access Protocol,通常简称为SOAP,简单对象访问协议)以提供对Internet软件的新级别的集成,并且还含有一套预置的基于Web的服务,叫做Hailstorm。  
     Microsoft.NET的特点是:  
(1)简化了软件的开发  
(2)具有 高度分布的系统  
(3)在Web上有更好用户界面  
(4)简化了部署  
(5)支持各种语言  
(6)平台上具有可扩展性  
(7)未来的可移植性  
  
作者: wangao88    时间: 2003-1-13 15:44
看来作sw二次开发的朋友还真不少,我做sw开发刚两年,希望和大家多切磋切磋。使用.net还为时过早,因为sw2003起才支持.net,我曾经把以前的一个项目转到.net下编译,没出现错误,可是编译出来的插件凭空小了几十k,并且加载后,有些功能失效。
作者: wlzhao33    时间: 2003-1-14 09:30
楼上这位也太谦虚了吧,做了两年SW的二次开发,应该早就是高手了。:)我现在刚开始做这个东东,什么也不懂,不知道你有没有QQ,希望通过这种方式能够得到你的指点。
作者: 玲玲零零    时间: 2003-1-14 09:45
幸会!!!
如果方便的话,大家能说说是做做方面的开发吗?
作者: 玲玲零零    时间: 2003-1-23 17:40
四 Visual C++ 6.0  
    
   Visual C++ 6.0是当今最流行的软件开发工具之一,是程序员的首选编程利器。Visual C++ 6.0是Microsoft推出的应用非常广泛的可视化编程语言,它提供了功能强大的集成开发环境,用以方便有效地管理、编写、编译、跟踪C++程序,大大加速程序员的工作、提高了程序代码的效率。它提供了一套称为Microsoft Foundation Class(简称MFC)的程序类库,这套由强大的Microsoft开发的类库已经成为设计Windows应用程序事实上的“工业标准”。MFC类库都是使用C/C++创建的,Visual C++当然能够最方便地使用MFC所提供的强大功能。由于Microsoft在PC操作系统市场上的垄断地位,使用Microsoft发行的编程软件能够提供与Windows操作系统的最大兼容性。作为桌面操作系统的霸主,微软自己开发的编程环境Visual C++能够提供强大的图形支持。使用GDI对象和设备环境类所提供的绘图函数,可以轻易地实现绘图功能而且无需考虑具体设备情况。VisualC++ 6.0开发环境十分友善,其高度的可视化开发方式和强大的向导工具(ApoWizars)能够帮助用户轻松地开发出多种类型的应用程序。大多数情况下,用户只需向自动生成的程序框架中填充定制代码即可,而且使用ClassWizard还能够大大简化这个过程。Visual C++ 6.0中所引人的智能感应技术,可以根据编辑时代码的输入状态自动将属性、参数信息、数据类型信息和代码信息显示在一个列表框中,供开发者选择并自动完成单词的输入,或者给出提示。从而使开发者可以摆脱一些繁琐的细节问题,将精力更多地专注于程序设计之上,从而提高了开发效率。Visual C++ 6.0中为用户提供了许多有用的工具,能够帮助用户寻找错误和提高程序效率。  
  
五 Visual Basic  
  
  Visual Basic是Microsoft公司于1991年推出的Windows应用程序开发工具,短短的几年时间,就成为Windows流行的编程语言,从根本上改变了传统的程序设计模式,大大简化了Windows应用程序设计。它的出现被计算机界看作是一个“令人震惊的奇迹”。Visual Basic的诞生使编程技术向前迈进了一大步,开创了可视化编程的先河。在它的代动下,许多优秀的可视化开发工具相继问世。这些开发工具各有千秋,但它们都或多或少地从Visual Basic中汲取了营养。  
   英文Visual的意思是“可视的”。之所以叫做“可视”,是因为你只要看到VB的界面就会明白,实际上你无需编程,就可以完成许多步骤。在VB中引入了控件的概念,在Windows中控件的身影无处不在,各种各样的按钮、文本框、无线钮,都是控件的种类,VB把这些控件模式化,并且每个控件都有若干属性用来控制控件的外观,工作方法。这样你就可以像在画板上一样,随意点几下鼠标,一个按钮就完成了,这些在以前的编程语言下是要经过相当复杂的工作的。  
   “Visual”指的是开发图形用户界面(CGI)的方法。不需编写大量代码去描述界面元素的外观和位置,而只要把预先建立的对象拖放到屏幕上的一点即可。如果己使用过诸如Paint之类的绘图程序,则实际上已掌握了创建用户界面的必要技巧。  
     Basic指的是BASIC(Beginners All-Purpose Symbolit InstructionCode)语言,一种在计算技术发展历史上应用得最为广泛的语言。Visual Basic在原有BASIC语言的基础上进一步发展,至今包含了数百条语句、函数及关键词,其中很多和Windows GUI有直接关系。专业人员可以用Visual Basic实现其任何Windows编程语言的功能,而初学者只要掌握几个关键词就可以建立实用的应用程序。  
  微软公司十分钟情于Visual Basic语言。他们不仅在Office套件中嵌入了VB代码,使之可以完成一定的任务(这种技术被称之为VB for Application或VBA),同时还在浏览器IE4以上的版本中支持VBScript(这是一种VB语言的简化版本,用于在网页上执行一定的功能),利用VB还可以开发出动态服务器主页(Active Server Page)和SQL Server,IIS结合在一起可以组建大型复杂的网站。学会了VB,就几乎等于同时学会了以上的各种技术。从开发个人或小组使用的小工具,到大型企业应用系统,甚至通过Internet的遍及全球分布式应用程序  
,都可在Visual Basic提供的工具中各取所需。  
  和Visual C这样主流的语言相比,Visual Basic具有不可取代的简单易用性和真正的“所见即所得”特性。曾见过一个比喻,把VB比喻为砖,VC比喻为泥,用泥当然可能盖出更漂亮的房子,但得先把泥制作成砖。Visual Basic最大的特点就是简单。使用VB来开发软件,开发周期短,代码效率高。   
  
   
  六  C#  
  
  最近几年,致力于Microsoft平台的开发人虽主要使用两种语言:如果他们注重强大的功能,可以选择C++;如果注重使用的方便性,可以选择Visual Basic。尽管Visual Basic确实能为那些准备把Visual Basic的功能发挥到极至的开发人员提供许多功能,并且Visual C++也拥有许多AppWizards,便于C++开发人员,但是—般来说,使用Visual C++开发应用程序的时间要长一些,但其功能要比使用Visual Basic开发的应用程序的功能好得多。  
   C#(其发音为C Sharp)是Microsoft的新语言,大约是在2001年6月发布的。它适用于Microsoft公司公布的基于.NET平台的XML基础应用开发业务。此平台可以从Microsoft的网站上免费下载。不管是控制程序、图形程序,服务程序,还是普通组件,甚至足Web页面,都可以用C#开发出来。  
   Microsoft公司对C#的定义是:“C#是一种类型安全的、现代的、简单的,由C和C++衍生出来的,面向对象(Object Oriented)和类型安全(Type-Safe)的编程语言。它牢牢根植于c和c++语言中,并可很快被C和C++的使用者所熟悉。C#的目的就是综合Visual Basic的高生产率和C++的行动力。”这个定义是恰如其分的,因为在Visual Studio .NET中,用户已经可以利用C#极其简便地开发出强大的企业级分布式应用系统了。  
   C#设计的本意是以类似于Visual Basic的方式支持Rapid Application Development(快速应用程序开发,RAD)。Visual C#使得我们可以使用表单设计器快速方便地设计Windows和Web应用程序;Visual Studio负责编写大部分代码,比如为事件处理程序实例化控件和编写定义。类似于自动无用单元收集的功能,当然是CLR所提供的功能中最重要的。但是,c#也向用户提供c++的大部分功能,甚至允许使用通过在“非安全”的代码(传输c#类型安全功能的代码)中的指针直接访问内存地址。  
   C#是提高生产性能的程序设计语言。开发者的目的是为了能够以更少的源代码完成更多的事情。因为在C#中,可以灵活应用在C或C++中已经熟练了的技巧,从而可以削减开发成本并缩短开发时间。  
   C#语言让软件开发人员更容易发展以全球信息网为导向的服务。c#结合了Microsoft的C++程序开发的威力及Visual Basic的简易性,与Sun公司的Java语言一样能跨平台运行,是Microsoft的NGWS(Next GenerationWindows Servicea,下一代窗口服务)策略的一部分。  
   C#为用户提供了方便的功能,如垃圾收集、类型安全、版本控制等。仅有的“代价”就是代码操作默认是类型安全的,不允许使用指针。如果需要用到指针,仍可以通过非安全码使用它们,而且当调用非安全码时,不能含有列集。  
   C#中的几种功能明显类似于Java编程语言中的流行功能。Microsoft公司的C#浯言是C或C++语言的下一个版本,是支持Windows平台的。C#和C、C++的差别在于C#有更简单的语法,紧密集成的组件和函数、类型安全等。  
   它将比Java更适合融入Microsoft的技术。c#在增加生产力和可靠性功能方面仿照了Java的做法,比如为防止在各种变量之间错误地搭配而采取的强大的类型执行,以及采集无用信息来自动地进行内存分配。  
   总之,C#具有简单性、现代性、面向对象性、类型安全、版本控制、兼容性、灵活性等特点。  
   
  
七  VBA      
  
   BASIC(Beginners All-lMrpose Symbolic lnstruction Code)语言,是一种在计算机上应用最为广泛的编程语言。在Microsoft公司创始之初,Bill Gates就开始使用BASIC语言来编写应用程序,Visual Basic是在原有的BAISC语言基础上进一步发展而来,是运行在Windows环境下的一个可视化编程语言,提供了开发Windows应用程序的编程环境。Visual Basic语言规则简单,不似其它的高级语言,如C++,Delphi等语言那么复杂,但它的功能很全、使用简捷,用户只需掌握几个关键词就可以开始建立实用的应用程序。使用Visual Basic,用户不需编写大量代码去描述界面元素的外观和位置,只要把预先建立的对象拖放到屏幕上即可。利用VisualBasic,即使是初学者,也可以编写出漂亮的应用程序。  
   在Microsoft Office中,所有使用宏的应用程序都共享一种建立在BASIC语言之上的通用宏语言,Microsoft公司首先在Word For Windows中应用了宏语言。但是,这种依靠应用程序自身的宏语言有很大的局限性,因为,某个应用程序的宏语言只能适用于宏自己,而对其它应用程序却是无效的,大多数宏语言本身功能不够强大,也不够灵活,要想对应用程序进行操作或调用其中的功能都是非常困难的事。在1993年,Microsoft公司首先推出了一种可以被多种应用程序共享的、针对应用程序内部可编程、通用的可视化应用程序编程语言  
--Visual Basic for Applications(MS-Office 软件的通用控制语言,简称VBA)。VBA不能被归类于“程序语言’;它虽然具有十分完整的程序语言基本结构(和Visual Basic For Wimdows的语法十分类似),事实上,它提供的并不单单只是程序,而且是对MS Office各种软件功能的一种综合控制。因此,相对于Visual Basic For Windows而言,Visual Basic For Application算是一种面向用户(End User Oriented)的控制语言,除此之外,VBA还具有应用程序生成器的特性;因为用户只要将想自动化的操作记录成宏,就可以直接产生宏程序代码。(言下之意即:以后不必再费事编写程序,只需把操作过程记录下来,就会自动产生所需的程序代码了)。  
   VBA是一套完整的应用程序开发环境,它为用户和开发人员提拱了一种应用程序间通用的应用程序语言,减少了学习时间和支持费用:而且,VBA也为开发人员提供一种开发方法,用于开发集成多个应用程序的系统。在Microsoft Office 中,所有的应用程序都可以使用VBA。  
  不想多花时间学习VB的用户,可以直接拿附加在应用软件中的VBA来运用,从而实现繁琐、机械的日常工作的自动化,提高用户的办公效率。  
  
作者: wlzhao33    时间: 2003-2-11 13:07
今天在书店里逛了半天,发现机械工业出版社出版了一本《SolidWorks 2001开发篇》的书,可惜书店却没有这本书,不知哪位大虾知道哪儿可以买到这本书?请指点。
作者: 玲玲零零    时间: 2003-2-13 08:22
那只是预告,没出版。
  
据说今年3月底年会出版。因为有那么多程序要调试,文字要翻译
作者: client    时间: 2003-2-14 08:58
我想用VB进行二次开发,做一些可插入的零件库,不知有多大难度,请指教!
作者: 玲玲零零    时间: 2003-2-16 04:18
very easy!
作者: client    时间: 2003-2-23 15:58
请问有部分代码吗?请给予指点,谢谢?
作者: hulingyun    时间: 2003-3-14 16:09
实际上,Visual Basic也可做Solidworks的插件,我在Solidworks 2003上试过。
作者: client    时间: 2003-3-14 19:29
还请前辈赐教,如何在2003中做Solidworks的插件
作者: client    时间: 2003-3-18 18:22
??
作者: cuiqiang1027    时间: 2003-3-21 15:24
我也想知道啊,我毕业设计要求做一个标准件库,请大哥指教!
作者: client    时间: 2003-3-24 16:19
cuiqiang1027  :
    你用SW多久了?用什么语言?
  
作者: niuton2044    时间: 2003-3-24 18:53
我去找了半天也没有找到啊
作者: 刘煜    时间: 2003-4-10 17:33
这么多高手,真是太好了!请教你们一个问题,我用SolidWork Add-in AppWizard进行二次开发,在这个DLL中作了属性表及属性页,其中有一些控件,比如CComBox,但是调用AddString,InsertString不成功,调用SetWindowText成功,这是怎么回事,怎么解决,顺便说一下,这个问题和sw软件无关,在UG的二次开发中,以及在一般的VC开发的DLL中都有这个问题,在导出函数中加AFX_MANEGE_STATE(AfxGetStaticModuleState))也只能把界面显示出来,而不能解决函数调用的问题。
作者: feiyue0526    时间: 2010-12-31 14:37
!!!!!
作者: yuhuimoon    时间: 2011-4-27 20:23
同是二次开发行业的路过




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3