发明内容
有鉴于此,本发明提供一种轻量级、高效的、可扩展的AutoCAD悬浮物理水印的插件化实现***及方法,用于解决现有AutoCAD水印程序功能配置不灵活、软件使用效率低、冗余度大、安全性差的技术问题。
一种AutoCAD悬浮物理水印的插件化实现***,其包括:
物理水印插件版本控制器,用于动态实时更新AutoCAD软件加载的物理水印插件,该物理水印插件对应AutoCAD软件当前活跃的CAD文档;
物理水印检测器,用于检查当前活跃的CAD文档是否存在正在被占用的其他物理水印,在不存在被占用的其他物理水印时,启动文档***的功能;在存在被占用的其他物理水印时,生成并弹出警告提示用户选择取消或继续加载物理水印插件版本控制器加载的物理水印插件;
文档***,用于在物理水印插件版本控制器加载的物理水印插件完成后,获取当前活跃的CAD文档的基本信息,所述基本信息包括CAD文档的大小、边界,AutoCAD软件窗体的大小、边界,以及所使用计算机的屏幕分辨率;
物理水印编辑器,用于在文档***完成获取当前活跃的CAD文档的基本信息后,加载物理水印用户设置的对应窗口,以响应用户对将加载显示的物理水印的设置,设置的物理水印的内容包括物理水印显示内容,物理水印内容的布局,物理水印在当前活跃的CAD文档中的显示位置,物理水印随窗口变化方式;
物理水印显示器,用于在显示加载的物理水印,并用于启动事件监听功能,使得物理水印的显示内容和方式能够即时与用户的操作进行互动。
一种AutoCAD悬浮物理水印的插件化实现方法,其包括如下步骤:
S1、动态实时更新AutoCAD软件加载的物理水印插件,该物理水印插件对应AutoCAD软件当前活跃的CAD文档;
S2、检查当前活跃的CAD文档是否存在正在被占用的其他物理水印,在不存在被占用的其他物理水印时,跳转到步骤S3;在存在被占用的其他物理水印时,生成并弹出警告提示用户选择取消或继续加载步骤S1中加载的物理水印插件;
S3、在物理水印插件版本控制器加载的物理水印插件完成后,获取当前活跃的CAD文档的基本信息,所述基本信息包括CAD文档的大小、边界,AutoCAD软件窗体的大小、边界,以及所使用计算机的屏幕分辨率;
S4、在完成获取当前活跃的CAD文档的基本信息后,加载物理水印用户设置的对应窗口,以响应用户对将加载显示的物理水印的设置,设置的物理水印的内容包括物理水印显示内容,物理水印内容的布局,物理水印在当前活跃的CAD文档中的显示位置,物理水印随窗口变化方式;
S5、在显示加载的物理水印,并用于启动事件监听功能,使得物理水印的显示内容和方式能够即时与用户的操作进行互动。
有益技术效果:本发明的AutoCAD悬浮物理水印的插件化实现***及方法通过AutoCAD悬浮物理水印插件,以插件为逻辑单元实现了悬浮物理水印的动态加载和管理,使得用户无法随意的对CAD文档进行复制和修改,完善了计算机辅助工程设计AutoCAD软件的知识产权保护体系与功能;同时AutoCAD悬浮物理水印插件与原始的CAD数据之间不存在依赖关系,从而降低了CAD文档的安全风险。
具体实施方式
在本发明实施例中,软件环境采用AutoDesk公司针对AutoCAD平台上的二次开发提供的开发包ObjectARX,结合Microsoft.NET Framework开发框架,通过插件化实现CAD文档悬浮物理水印的管理与使用。
如图1所示,在本发明实施例的AutoCAD悬浮物理水印的插件化实现***中,其包括:
物理水印插件版本控制器10,用于动态实时更新AutoCAD软件加载的物理水印插件,该物理水印插件对应AutoCAD软件当前活跃的CAD文档。
其中不同的CAD文档可以多次加载具有不同设置的物理水印插件。
通过物理水印插件版本控制器10可以实现物理水印插件的动态实时更新,能够兼容用户提供CAD后续版本,同时也方便进行物理水印插件功能优化和扩展。可选地,通过在线/离线更新模块进行同步最新版本,确保用户所使用的物理水印插件具有较好的兼容性、安全性,以及最为完善的功能。离线脱机升级时,物理水印插件版本控制器10生成并显示用户在指定链接下载升级包的提示语,用户可以手动完成物理水印插件最新版本的同步升级。
可选地,所述物理水印插件版本控制器10用于:
在AutoCAD主界面中,通过命令行的方式,加载预先编译好的物理水印插件动态链接库dll文件。
在加载过程中中断加载过程,在线检测物理水印插件的版本是否最新,若无网络环境,则默认已加载的为最新版本插件。
调用AutoCAD软件中的数据库服务,检测当前活跃的CAD文档的自定义对象中,是否已经存储有本物理水印插件的相关信息,若有则显示已设置的物理水印的基本信息,并提示用户是否继续重新加载插件,若没有则继续完成物理水印插件的加载。
物理水印检测器20,用于检查当前活跃的CAD文档是否存在正在被占用的其他物理水印,在不存在被占用的其他物理水印时,启动文档***30的功能;在存在被占用的其他物理水印时,生成并弹出警告提示用户选择取消或继续加载物理水印插件版本控制器10加载的物理水印插件。
针对当前活跃的CAD文档,加载后的物理水印插件将通过物理水印检测器20来检查该文档是否已经存在其它物理水印正在使用。
可选地,所述物理水印检测器20用于:
检测当前用户使用计算机的硬件和操作***环境。
通过检测是否有相关的应用程序或进程绑定了当前活跃的CAD文档的大小、位置变化事件,来判断是否有其它针对AutoCAD软件的外部物理水印存在。
通过调用AutoCAD软件的开发软件包ObjectARX的开放应用程序接口API,检测是否有AutoCAD软件的内部物理水印在运行。
在存在有外部物理水印和/或内部物理水印时,记录并显示该存在的物理水印的显示信息和状态信息,提示用户继续加载物理水印插件版本控制器10加载的物理水印插件,或是使用已有物理水印;若没检测到外部物理水印和/或内部物理水印时,继续并完成物理水印插件版本控制器10的物理水印插件的加载。
文档***30,用于在物理水印插件版本控制器10加载的物理水印插件完成后,获取当前活跃的CAD文档的基本信息,所述基本信息包括CAD文档的大小、边界,AutoCAD软件窗体的大小、边界,以及所使用计算机的屏幕分辨率。
文档***30是本发明实施例的核心模块之一,其主要功能是获取和管理当前活跃CAD文档和AutoCAD软件主窗体的基本信息。由于本发明实施例所采用的物理水印,不依赖于CAD文档模型空间中的可见实体,悬浮于CAD文档之上,因此构建CAD文档与物理水印之间的联系,以使物理水印实时响应CAD文档的状态变化,则显得尤为重要。文档***30能够作为连接CAD文档和物理水印之间的纽带,通过读取CAD文档和AutoCAD软件主窗体的大小、位置信息,并结合计算机屏幕的分辨率信息,通过事件监听的方式,实现物理水印随文档变化的实时刷新。
可选地,所述文档***30用于:
获取当前活跃的CAD文档的句柄。
通过获取的CAD文档的句柄获取文档的对象编号ObjectId。
通过ObjectId读取CAD文档在相对于AutoCAD软件的父窗口的坐标信息。
监听全局鼠标的移动事件来绑定物理水印和当前活跃的CAD文档,即物理水印随CAD文档位置、大小的变化而相应改变的信息。
通过调用操作***的应用程序接口WinAPI,读取当前显示器的分辨率信息,并结合AutoCAD软件的父窗口大小和位置,通过将显示器坐标和CAD文档在相对于AutoCAD软件的父窗口的坐标信息进行转换,实现物理水印和CAD文档位置、大小的全局匹配。
物理水印编辑器40,用于在文档***30完成获取当前活跃的CAD文档的基本信息后,加载物理水印用户设置的对应窗口,以响应用户对将加载显示的物理水印的设置,设置的物理水印的内容包括物理水印显示内容,物理水印内容的布局,物理水印在当前活跃的CAD文档中的显示位置,物理水印随窗口变化方式。
通过物理水印编辑器40可以实现对物理水印的各类信息集成管理。通过UI交互的方式,响应用户对物理水印显示内容、方式、状态的偏好设置,满足不同用户、不同需求的物理水印加载显示。具体包括:物理水印中显示内容的布局设置、物理水印自身在活跃文档中的布局设置、物理水印响应文档变化的方式等。同时,将对当前物理水印的设置信息存储在活跃CAD文档内部的指定区域。
可选地,所述物理水印编辑器40用于:
调用AutoCAD软件中Autodesk.AutoCAD.Windows命名空间下的PaletteSet类,构建与AtuoCAD软件界面风格完全一致的物理水印控制面板,供用户进行物理水印的编辑、控制与存储操作。
通过PaletteSet类提供的交互式用户界面UI设计功能供用户设置物理水印信息,设置的信息包括物理水印显示内容、显示位置、大小、字体、颜色。
保存物理水印信息在CAD文裆中自定义实体的命名对象词典中。
判断物理水印的命名对象词典是否存在,在存在记录物理水印的命名对象词典时,根据用户本次设置的信息更新词典;在不存在记录物理水印的命名对象词典时,新建自定义实体,并通过自定义实体命名对象词典保存物理水印信息。
物理水印显示器50,用于在显示加载的物理水印,并用于启动事件监听功能,使得物理水印的显示内容和方式能够即时与用户的操作进行互动。
物理水印显示器50,通过读取物理水印编辑器40的当前设置的信息,完成物理水印的实时显示。
可选地,所述物理水印显示器50用于:
在当前活跃的CAD文档中构建物理水印自定义实体,并将该自定义实体添加到CAD文档的模型空间;该自定义实体用于实现物理水印的显示功能。
开启当前活跃的CAD文档的事件监听功能,以实现对当前活跃CAD文档位置变化的实时监测,当CAD文档的位置发生变化时,在CAD文档的模型空间的物理水印自定义实体中重新载入物理水印的位置信息,并刷新显示重新载入的物理水印。
可选地,所述物理水印显示器50还用于:
选择物理水印自定义实体对象所需要重定义的属性或方法。如“删除”、“复制”操作。
构建ObjectOverrule类,重载已有定义的属性和方法。如需要实现“删除”、“复制”等功能无效。
当用户调用重载已有定义的属性和方法时,通过Autodesk.AutoCAD.Runtime.Exception抛出异常以阻止用户继续操作。
生成并显示异常出现时用户需要执行的操作。如提示用户:“该对象不允许删除和复制”。
如图2所示,本发明实施例还提供一种AutoCAD悬浮物理水印的插件化实现方法,其包括如下步骤:
S1、动态实时更新AutoCAD软件加载的物理水印插件,该物理水印插件对应AutoCAD软件当前活跃的CAD文档。
S2、检查当前活跃的CAD文档是否存在正在被占用的其他物理水印,在不存在被占用的其他物理水印时,跳转到步骤S3;在存在被占用的其他物理水印时,生成并弹出警告提示用户选择取消或继续加载步骤S1中加载的物理水印插件。
S3、在物理水印插件版本控制器10加载的物理水印插件完成后,获取当前活跃的CAD文档的基本信息,所述基本信息包括CAD文档的大小、边界,AutoCAD软件窗体的大小、边界,以及所使用计算机的屏幕分辨率。
S4、在完成获取当前活跃的CAD文档的基本信息后,加载物理水印用户设置的对应窗口,以响应用户对将加载显示的物理水印的设置,设置的物理水印的内容包括物理水印显示内容,物理水印内容的布局,物理水印在当前活跃的CAD文档中的显示位置,物理水印随窗口变化方式。
S5、在显示加载的物理水印,并用于启动事件监听功能,使得物理水印的显示内容和方式能够即时与用户的操作进行互动。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能性一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应超过本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机储存器、内存、只读存储器、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其他形式的存储介质中。
可以理解的是,对于本领域的普通技术人员来说,可以根据本发明的技术构思做出其它各种相应的改变与变形,而所有这些改变与变形都应属于本发明权利要求的保护范围。