RUS | UKR || Master's portal of DonNTU
Bubenshicov Ilya

Bubenshicov Ilya

Faculty of computer science and technology

Automated system software

"Research methods to expand the functionality of graphics systems"

Scientific adviser: Vitaliy Karabchevskiy


About author

Summary of research and developments


Introduction
Modern applications for extending the functionality of AutoCAD
Selecting an application to study and solve the problem
Rationale for writing ObjectARX applications
Problem
Implementing application
Conclusions
Literature


Introduction

   It is estimated that over the past decade more than two hundred thousand designers radically changed its approach to the design process, moving from two-to three-dimensional CAD system that implements the idea of generating computer models of solid state properties. Increasing competition and the need for shortening the design led to this movement, at first looked like a thin trickle turned into a powerful stream. Over the past two years on a three-dimensional design has passed so many organizations, but for all ten years of existence of this technology. Computer-aided design, CAD - an automated system that implements the functions of information technology design, is a logistic system designed to automate the design process, consisting of staff and complex technical, policy and other means of automation of its activities. Currently, there are many graphical editors and geometric modeling. The system of AutoCAD is the world's leading software platform CAD systems. AutoCAD is characterized, on the one hand, the power and flexibility, on the other - a razor sharp focus on maximum productivity. Besides, this is completely scalable and adaptable system can be used in various industries.   AutoCAD allows you to organize the execution of programs, both in himself and get access to drawing objects from external applications (through a model or through OLE technology. Net assemblies) Key automation technology is:

  • Autolisp - the language in which you can create your own scripts for the system.

  • VBA - possible to write applications in VBA - for a number of tasks (data collection and aggregation of data) is a quick way of writing.

  • ARX - technology for writing applications for AutoCAD, C + +.

  • access to objects from external programs. (C #, VB, or simply from Excel via VBA).

      ObjectARX SDK - addition to the development environment Microsoft Visual Studio and includes special libraries, header files, examples, and supporting tools for creating programs operating exclusively in the environment of AutoCAD. ARX-application can directly access the database, drawing and geometric kernel. You can create your own commands, similar to the standard commands of AutoCAD. [1]


    Modern applications for extending the functionality of AutoCAD

      The popularity of AutoCAD software in the world due to the highly advanced means of developing and adapting, which allow you to create specialized applications such as AutoCAD Mechanical, AutoCAD Electrіs, AutoCAD Architecture, GeoniCS, Promis-e, PLANT-4D, AutoPLANT, ASAP GraphiCS, MechaniCS and others. In total there are more than 10,000 commercial products based on AutoCAD.

  • Macros Macros (macros) in AutoCAD is one of the easiest means of adaptation available to most users. AutoCAD macros should not be confused with macros, created by VBA.

  • Action Macros Action Macros were introduced in AutoCAD 2009. User executes the command sequence, which is written using a tool Action Recorder. The recorded macro, you can edit and save, and later moved to the toolbar, or run from a special menu.

  • Menu Macros You can create your own buttons with which you can call pre-recorded on certain rules of the series of commands (macros). The composition of the macro can include expressions written in the languages of DIESEL and AutoLISP.

  • DIESEL DIESEL (Direct Interprietively Evaluated String Expression Language) - language of operating lines with a small number of functions (a total of 28 functions). It allows you to create lines that should have variable text, depending on any conditions. The results are displayed as a string, which is interpreted by the system of AutoCAD as a team. DIESEL language used mainly for the creation of complex macros as an alternative to AutoLISP. Of particular importance that language has a version for AutoCAD LT, which lacks all of the software, except for DIESEL. DIESEL language was first introduced in AutoCAD R12.

  • Visual LISP Visual LISP - application development environment for language AutoLISP. Sometimes called the Visual LISP involve language AutoLISP extensions complemented by ActiveX. Visual LISP development environment built on AutoCAD since version AutoCAD 2000. Previously (AutoCAD R14), it is available separately. The development environment contains language AutoLISP language and DCL, and also allows you to create applications that consist of several programs. Despite the name, Visual LISP is not a visual programming environment.

  • AutoLISP AutoLISP - dialect of Lisp, providing ample opportunity for automation of work in AutoCAD. AutoLISP - the oldest of the internal programming languages, AutoCAD, he first appeared in 1986 in AutoCAD 2.18 (interim version). In AutoLISP implemented close interaction with the command line, which contributed to its popularization among engineers working with AutoCAD.

  • ActiveX extensions to AutoLISP Extensions ActiveX significantly increase the functionality of AutoLISP, adds the ability to work with files, registry, and can communicate with other applications. Additional extensions are working directly with the object model through the functions of AutoCAD ActiveX. For the first time the ActiveX technology was introduced in AutoCAD R14.

  • DCL DCL (Dialog Control Language) - language for developing dialog boxes for applications written in AutoLISP. DCL was first introduced in AutoCAD R12 and since then has not undergone significant changes. To develop dialog boxes do not use visual programming capabilities, and dialog boxes are essentially limited. To eliminate these shortcomings and opportunities AutoLISP party developers to create an alternative environment for the development of dialog boxes, such as ObjectDCL, OpenDCL and some others.

  • AutoCAD VBA In AutoCAD since version R14 introduces support for VBA (Visual Basic for Application). Unlike VisualLISP VBA is a visual programming environment, but applications work with AutoCAD VBA only via ActiveX, but with AutoLISP interaction is severely limited. The advantages of VBA is a more complete support for ActiveX and the ability to load DLL-Libraries. Nevertheless, in the version of AutoCAD 2010 VBA development environment is not enabled by default. Autodesk moving away from support for VBA in AutoCAD, giving priority to. NET, as reported in the official guide. Net API AutoCAD.

  • ObjectARX ObjectARX SDK - addition to the development environment Microsoft Visual Studio and includes special libraries, header files, examples, and supporting tools for creating programs operating exclusively in the environment of AutoCAD. ARX-application can directly access the database, drawing and geometric kernel. You can create your own commands, similar to the standard commands of AutoCAD. ObjectARX for the first time the package was implemented for AutoCAD R13, previously existed similar to the packet's destination ADS (for AutoCAD R11) and ARX (for AutoCAD R12). Designation versions ObjectARX coincides with the notation of AutoCAD versions for which it was designed package. Programs created for one specific version of AutoCAD compatible with other versions. The compatibility problem is usually solved by recompiling the program in the appropriate version of ObjectARX.

  • . NET With support for Microsoft. NET Framework is possible to create applications for AutoCAD in any application development environment that support this technology [2].


    Selecting an application to study and solve the problem

      Appendix ObjectARX - shared library (DLL), which uses the address space of AutoCAD and sending him to direct feature requests. You can add new classes to the environment ObjectARX program and export them for use by other programs. ObjectARX-generated objects are virtually indistinguishable from native objects AutoCAD. You can also extend the protocol ObjectARX, adding features at run-time session AutoCAD. ObjectARX programming environment provides object-oriented C + + application programming interface for developers to use, customize, and extend AutoCAD. ObjectARX libraries include a different set of tools for application developers to take advantage of the open architecture of AutoCAD, providing direct access to database structures AutoCAD, the graphics system, and indigenous definitions of commands. In addition, these libraries are designed with the ability to interface with VLisp and other applications programming languages so that developers can choose the programming tools. As a developer, you can use ObjectARX, to perform the following tasks:
    • Appeal to the database, AutoCAD
    • Interaction with the editor of AutoCAD
    • Creating a user interface using MFC
    • Supports a multi media
    • Create custom classes
    • Formation of a complex application
    • Interact with other programming environments
      Figure AutoCAD - a collection of objects stored in the database. Some of the main database objects - tables, object, identity, and dictionaries. Objects - a special kind of database that have a graphical representation of the figure within AutoCAD. Lines, circles, arcs, text, regions, splines and ellipses - examples of objects. The user can see the object on the screen and can control them. Table of identifiers and dictionaries - containers that store the database objects. Both container object display name string to an object database. Database AutoCAD includes a fixed set of tables of identifiers, each of which contains samples of a specific class of the report table identifiers [3].



    Pisunok 1 - Database AutoCAD


    Rationale for writing ObjectARX applications

      ObjectARX - the most flexible and functional library for applications to interact with AutoCAD. It allows you to fully cover the work area, store variables and objects in a database that gives an advantage in calculations to solve this problem. It is also possible visualization of the application using the API, which will create the user's convenience in working with this application.


    Problem

      Depending on the position of cutting plane lines cross the conical surface can be (Fig. 2): ellipse, parabola, hyperbole, and in special cases: the circle, straight, two intersecting lines and a point. If a plane F intersects all generators of the cone surface rotation, ie if r> a, then the line section is an ellipse in this case, the section plane is not parallel to any one of the generators of the cone surface. In the particular case (F = 900) a plane intersects a cone in a circle, and the section degenerates to a point where the plane passes through the vertex of the cone. If a plane F is parallel to one generator of the cone surface, ie R = a, then the line of intersection is a parabola. In the particular case (the plane is tangent to the surface of the cone) section degenerates into a straight line. [4]



    Figure 2 - The lines cross the conical surface


      The paper will address the cases in which the result will be the intersection of the hyperbola and parabola.



    Figure 3 - Formation of a parabola intersecting plane. (Animation: 50 frames, 5 seconds, the volume - 239 kb)



    introduction of a new coordinate system can reduce the equation second-order curves to the standard canonical form. Parameters of the canonical equations is quite simple (Figure 4).



    Figure 4 - The canonical equation of a hyperbola and a parabola



    Implementation Application

      application will be implemented using Microsoft Visual C + + using the library of ObjectARX. API will create the user interface through which it will interact with the system. ObjectARX offers direct access to databases, AutoCAD, graphics system, and system-wide commands. Consequently, it is possible to develop programs to interact with the medium of design, to create any graphical user interfaces, addressing the library MFC, create a program with multi-window interface, create your own classes and interaction protocols to communicate with other software environments and external devices. Thus, ObjectARX allows you to create programs of any complexity. Functional capabilities, he is several times AutoLisp, DCL, and VBA. This programming language allows you to write and a simple script, and the instruments of reprogramming the nucleus AutoCAD, as well as interaction with external devices. To ObjectARX and Visual C + + written by Autodesk Mechanical Desktop, Autodesk Land Desktop, Autodesk Map, Autodesk Civil Design, and many other applications for AutoCAD. AutoCAD, with its wide range of programming tools only promising in terms of enhanced functionality. Considered programming languages allow you to modify this software system, adapting its capabilities to solve specific problems in any area. In developing the program should consider the following two important factors. The first - the need for rapid coding, the second - the speed created by the program. If more significant is the first factor, we can and must use a collaborative approach to writing: in parallel to use all the languages mentioned above and receive a comprehensive code. It uses a certain programming language, which allows you to perform the task more quickly and easily. If the performance is dominated by considerations should give unconditional preference languages C + +, Assembler and ARX [5].


    Conclusions

      ObjectARX offers direct access to databases, AutoCAD, graphics system, and system-wide commands. Consequently, it is possible to develop programs to interact with the medium of design, to create any graphical user interfaces, addressing the library MFC, create a program with multi-window interface, create your own classes and interaction protocols to communicate with other software environments and external devices. Thus, ObjectARX allows you to create programs of any complexity. Functional capabilities, he is several times AutoLisp, DCL, and VBA. This programming language allows you to write and a simple script, and the instruments of reprogramming the nucleus AutoCAD, as well as interaction with external devices. To ObjectARX and Visual C + + written by Autodesk Mechanical Desktop, Autodesk Land Desktop, Autodesk Map, Autodesk Civil Design, and many other applications for AutoCAD. Described the following conclusions:
    1. Using modern programming languages, you can significantly supplement the capabilities of the base software.
    2. A clear understanding of the capabilities of each of the languages to optimize the process of creating applications.
    3. Each of the languages of best fit is quite specific tasks:
    - AutoLisp - Automating the process of preparing the design, creation of new teams, receive and store information on the current drawing, scripting, and alteration of the information in the current file;
    - VBA - change and add a graphical user interface, creating new teams, the union of Windows-based programs and AutoCAD into a single complex;
    - ObjectARX - AutoCAD add new objects, classes, protocols, methods and mechanisms of information processing, communication AutoCAD with different system events and external devices.
      In developing the program should consider the following two important factors. The first - the need for rapid coding, the second - the speed created by the program. If more significant is the first factor, we can and must use a collaborative approach to writing: in parallel to use all the languages mentioned above and receive a comprehensive code. It uses a certain programming language, which allows you to perform the task more quickly and easily. If the performance is dominated by considerations should give unconditional preference languages C + +, Assembler, and ARX. Examples of programs for programmers can be found on the official site of the developer of AutoCAD and the appropriate forums. AutoCAD, with its wide range of programming tools only promising in terms of enhanced functionality. Considered programming languages allow you to modify this software system, adapting its capabilities to solve specific problems in any area [6].


    References

    1. Autodesk Inventor, "Пять веских причин для перехода на твердотельное моделирование", По материалам Autodesk, Inc [Электронный ресурс]. - www.inventor.ru/articles/article_15135.html.

    2. Финансовый Глоссарий FXGlossary, "Что такое AutoCAD", По материалам ru.wikipedia.org [Электронный ресурс]. - http://www.fxglossary.org.ua/index.php?l=A&w=AutoCAD.

    3. Autodesk Inc., ObjectARX ™, AutoCAD ® Среда программирования Библиотеки C++ [Электронная книга]. - ObjectARX_Среда программирования Библиотеки C++.

    4. Начертательная геометрия, Лекция №8 часть 2, Конические сечения [Электронный ресурс]. - http://dvoika.net/education/Graphbook/book/lekcii/L-008_1.htm.

    5. Донченко, М., Рябенький, О. Особенности использования программных средств для модификации AutoCAD CADmaster, №5(25) 2004 [Электронный ресурс]. - http://csf.ru/file/sYXlHXiBfCwHzPPd8296466/cm_25_autocad.pdf.

    6. Autodesk AutoCAD, Tidvell J. Designing User Interfaces. – USA, 2006. – 416p [Электронный ресурс]. - http://www.autodesk.ru/adsk/servlet/index?siteID=871736&id=12306406.

    7. Autodesk Inc., ObjectARX ™, AutoCAD ® Среда программирования Библиотеки C++ [Электронная книга]. - ObjectARX_Среда программирования Библиотеки C++.