Słowo CAD wywodzi się z angielskiego Computer Aided Design czyliprojektowanie wspomagane komputerowo.



Podobne dokumenty
INFORMATYKA TECHNICZNA Badanie możliwości wykorzystania języka AutoLISP i środowiska VisualLISP w systemie CAx

METODY URUCHAMIANIA PROGRAMÓW JĘZYKA AutoLISP W ŚRODOWISKU AutoCAD

INFORMATYKA TECHNICZNA Metody wprowadzania obiektów w programie AutoCAD za pomocą języka AutoLISP

LegrandCAD zawiera elementy wyposażenia instalacji elektrycznych z aktualnego programu produkcji firmy Legrand, w tym: wyłączniki i rozłączniki mocy;

INFORMATYKA TECHNICZNA Badanie możliwości wykorzystania interfejsu automatyzacji OLE w systemie CAx

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

Aplikacje w środowisku VBA. Visual Basic for Aplications

Programowanie obiektowe

Chemowent-CAD to aplikacja wspomagająca projektowanie chemoodpornych instalacji wentylacyjnych z wykorzystaniem produktów Chemowent, w tym:

Praca w środowisku Visual Studio 2008, Visual C

Zastosowania Robotów Mobilnych

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Tworzenie oprogramowania

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Zakres tematyczny dotyczący podstaw programowania Microsoft Office Excel za pomocą VBA

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Podstawy Programowania Obiektowego

Visual Basic dla AutoCAD

Programowanie MorphX Ax

WPROWADZENIE DO JĘZYKA JAVA

Programowanie w C. dr inż. Stanisław Wszelak

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

Opis funkcji modułu Konwerter 3D

5.4. Tworzymy formularze

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Programowanie obiektowe

1 Podstawy c++ w pigułce.

Użycie Visual Basic for Applications ("VBA")

Wykład A1. AutoCAD Dr inż. Jarosław Bydłosz

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Zastanawiałeś się może, dlaczego Twój współpracownik,

Wprowadzenie do projektu QualitySpy

Podstawy języka skryptowego Lua

Zakres egzaminu dyplomowego (magisterskiego) na kierunku INFORMATYKA

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Instrukcja laboratoryjna cz.3

Spis treści 1 Wiadomości wprowadzające Znaczenie rysunku w technice Polskie normy rysunkowe Rodzaje i grubości linii

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Podstawy programowania. Ćwiczenie. Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio

Java jako język programowania

Zacznij Tu! Poznaj Microsoft Visual Basic. Michael Halvorson. Przekład: Joanna Zatorska

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

VBA w Excel Lekcja ta ma przybliżyć pojęcia związane z programowaniem w pakiecie Office. Poniższe przykłady związane są z wersją Office2007.

To sposób w jaki użytkownik wchodzi w interakcje z systemem. Środowisko graficzne używa kombinacji graficznych elementów(przyciski, okna, menu) i

37. Podstawy techniki bloków

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Czym są właściwości. Poprawne projektowanie klas

Przykładowa dostępna aplikacja w Visual Studio - krok po kroku

BIBLIOTEKA BLOKÓW JABLOTRON 100 SYSTEM

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski

Przewodnik Szybki start

7. Podstawy zarządzania szablonami

Programowanie w języku Python. Grażyna Koba

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie w języku C++ Grażyna Koba

Rozdział 3. Zapisywanie stanu aplikacji w ustawieniach lokalnych

Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski

Makropolecenia w PowerPoint Spis treści

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Programowanie obiektowe - 1.

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

ActiveXperts SMS Messaging Server

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.

Wykład A1. AutoCAD. Jarosław Bydłosz Katedra Geomatyki

1. Wprowadzenie. 1.1 Uruchamianie AutoCAD-a Ustawienia wprowadzające. Auto CAD Aby uruchomić AutoCada 14 kliknij ikonę

Compact Open Remote Nao

Wprowadzenie do języka Java

REFERAT PRACY DYPLOMOWEJ

Tworzenie i wykorzystanie usług sieciowych

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

IBM SPSS Statistics Wersja 22. Linux - Instrukcja instalacji (licencja wielokrotna)

Aplikacje w środowisku Java

Operacje na gotowych projektach.

2. W oknie dialogowym Choose Toolbox Items w zakładce.net Framework Components naciskamy przycisk Browse...

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

I. WSTĘP. Przykład 1. Przykład 2. Programowanie czyli tworzenie programów komputerowych (aplikacji komputerowych)

Dodatkowo planowane jest przeprowadzenie oceny algorytmów w praktycznym wykorzystaniu przez kilku niezależnych użytkowników ukończonej aplikacji.

Klasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np

Przed rozpoczęciem pracy otwórz nowy plik (Ctrl +N) wykorzystując szablon acadiso.dwt

6. Tworzenie nowego projektu

Informatyka II. Laboratorium Aplikacja okienkowa

Platformy programistyczne:.net i Java L ABORATORIUM 7,8: HACKATHON - JTTT

Ćwiczenie 1. Przygotowanie środowiska JAVA

Podstawy programowania. Wprowadzenie

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Przygotowanie własnej procedury... 3 Instrukcja msgbox wyświetlanie informacji w oknie... 6 Sposoby uruchamiania makra... 8

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

MS Word Długi dokument. Praca z długim dokumentem. Kinga Sorkowska

Rys. 1. Główne okno programu QT Creator. Na rysunku 2 oznaczone zostały cztery przyciski, odpowiadają kolejno następującym funkcjom:

Programowanie proceduralne w języku C++ Podstawy

Laboratorium Programowania Kart Elektronicznych

Instrukcja laboratoryjna nr.4

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Transkrypt:

Artykuł pobrano ze strony eioba.pl Programowanie w środowisku CAD Programy CAD ułatwiają projektantom sporządzanie dokumentacji niezbędnej przy wszystkich projektach technicznych. Artykuł przedstawia sposoby tworzenia rozszerzeń CAD. Co to jest CAD? Słowo CAD wywodzi się z angielskiego Computer Aided Design czyliprojektowanie wspomagane komputerowo. Programy CAD służą do tego aby ułatwić inżynierom takich branż jak budownictwo, mechanika, elektronika i pokrewne, sporządzanie dokumentacji technicznej niezbędnej przy wszelkiego rozdzaju projektach. Przejście od rysowania na desce kreślarskiej do projektowania na komputerze było wielką rewolucją ponieważ przyspieszyło wielokrotnie ich pracę. Programy CAD Istnieje wiele programów CAD ale napopularniejszym programem na świecie jest Autocad firmy Autodesk. Autocad umożliwia projektowanie w dwu i trzywymiarowym układzie współrzędnych oraz zapis rysunków do pliku DWG. Pliki DWG są standardem zapisu dla aplikacji CAD. Niestety ze względu na to iż jest to zamknięty format binarny zastrzeżony przez Autodesk to do operacji na plikach DWG wymagane jest Autocad. Na szczęście można też wykorzystać łamiące monopol biblioteki programistyczne tworzone przez inne firmy np. Open Design Alliance (dawniej OpenDWG). Na fali popularności programu powstaje wiele klonów programu Autocad, które zyskują część rynku bijąc go na głowę często podstawowym kryterium wyboru ceną. Takie programy to między innymi: ITC Intellicad amerykańska wersja CAD a z umożliwiająca rozpowszechniająca się w dużej mierze na sprzedaży licencji innym firmom. Dzięki temu powstaje wiele wersji językowych o różnych nazwach opartych na tym samym programie (np. ArCADia-Intellicad, progecad). ITC Intellicad oparty był do wersji 7 na bibiotece OpenDWG, od wersji 7 wprowadzono bibliotekę ODA Teigha do obsługi formatu DWG ZWCAD początkowo był programem na licencji ITC Intellicada, ale ostatnio firma ZWSoft porzuciła to rozwiązanie wprowadzając na rynek własną wersję ZWCAD+, napisaną od podstaw na bazie biblioteki ODA Teigha z Open Design Alliance BricsCAD program typu CAD popularny wśród polskich inżynierów Wszystkie klony dążą do jak największej kompatybilności z Autocadem, tworzonymi przez niego plikami DWG (każda wersja Autocada ma pewne różnice w zapisie tych plików) oraz interfejsami programistycznymi. Rozszerzanie funkcjonalności Podstawowa wersja systemu (chodzi o Autocad a bez rozszerzeń) może być używana przez każdego inżyniera dowolnej specjalności, ale największą siłą Autocada jest możliwość tworzenia oprogramowania specjalistyczne dla węższej grupy odbiorców. Firma Autodesk wydała wiele specjalistycznych nakładek jak AutoCAD Electrical, AutoCAD Mechanical, Mechanical Desktop, Architectural Desktop, Civil Design, które do działania wymagają AutoCADa jako silnika zarządzającego ich pracą. Oprócz tego udostępniła też wiele interfejsów programistycznych umożliwiających pisanie własnych rozszerzeń dla Autocada.

W trakcie wydawania nowych wersji programu zmieniały się też technologie programistyczne, jedne języki traciły na znaczeniu inne zyskiwały w związku z czym Autocad opracował cały zestaw interfejsów umozliwiających współpracę z nakładkami. Opis poszczególnych interfejsów znajdą Państwo poniżej: AutoLisp Jest odmianą języka skryptowego Lisp zaadaptowaną na potrzeby Autocada w celu automatyzacji powtarzalnych działań i zwiększenia produktywności. Na przykład obliczanie całkowitej długości wszystkich linii na rysunku wyobraźcie sobie ile czasu zajęło by takie liczenie? Dużą zaletą Autolisp a jest to, że aby go używać nie trzeba mieć dużej wiedzy programistycznej. Nawet początkujący użytkownik Autocada może przy jego pomocy stworzyć prosty algorytm, który oszczędzi mu godziny lub dni pracy. Dodatkową zaletą jest jego przenośność, jako że jego Autocad nie rozwijał go przenosząc swoją uwagę na kolejny język VisualLisp, to został on zaimplementowany w takiej samej formie w większości klonów, tak więc aplikacja napisana w Autolispie równie dobrze powinna działać na Autocadzie co na Intellicadzie czy ZWCADZie. AutoLisp posiada również wady dyskwalifikującego jako profesjonalny język pisania nakładek. Ma dostęp jedynie do ograniczonej funkcjonalności Autocada. Jest językiem skryptowym co z jednej strony można traktować jako zaletę (nie potrzeba żadnego specjalistycznego środowiska programistycznego), z drugiej zaś strony jest dużą wadą. Ponieważ język skryptowy jest interpretowany w trakcie wykonywania więc rozszerzenia w nim tworzone charkteryzują się wolnym działaniem. Cały kod aplikacji pisanych w AutoLispie jest widoczny dla każdego kto otworzy pliki z kodem co stanowi duży minus przy programach komercyjnych, nikt nie chce żeby jego ciężka praca została wykorzystywana bezprawnie przez inne osoby. Podsumowując AutoLisp stanowi raczej udogodnienie dla inżynierów pragnących przyśpieszyć nużące czynności niż jezyk umożliwiający pisanie aplikacji na sprzedaż. Przykład kodu rysującego linię w AutoLisp: (defun c:myline () ) (prompt "\nwybierz punkty aby narysować linię.") (if (and (setq p1 (getpoint "\npierwszy punkt linii.")) ) ) (setq p2 (getpoint p1 "\ndrugi punkt linii.")) (command "._line" p1 p2 "") (princ) (prompt "\nnapisz myline aby uruchomić funkcję.") (princ)

VisualLisp VisualLisp był zaprojektowany jako rozszerzenie funkcjonalności AutoLisp a. Jego możliwości są o wiele potężniejsze w stosunku do AutoLisp a,np. ma dostęp do modelu obiektu Autocada. Dodatkowo środowisko deweloperskie zostało zaimplementowane w samym Autocadzie więc nie trzeba już korzystać z zewnętrznych edytorów (w przeciwieństwie do AutoLispa). Został on wprowadzony w wersji Autocad 14 jako płatny dodatek, który w wersji Autocad 200 został wprowadznoy na stałe. Jednak od tego czasu nie był zbytnio rozwijany przez Autodesk, który skupiał wysiłki na wydajniejszych interfejsach programistycznych. VisualLisp jako kontynuacja AutoLisp a powiela większość jego ograniczeń, w związku z czym też nadaje się do profesjonalnych zastosowań. DCL Przy okazji języków AutoLisp i VisualLisp nie sposób nie wspomnieć o jezyku DCL (Dialog Control Language), który za pomocą prostych znaczników umożliwiał budowanie okien dialogowych. Jakkolwiek DCL ma bardzo ograniczone możliwości to bez tego języka obsługa programów lispowych możliwa była jedynie z linii poleceń Autocada. Przykładowy kod napisany w DCL u: helloworld : dialog { label = "Okno hello world"; : text { key = "hello world"; } ok_only; } Taki kod zapisuje się w pliku z rozszerzeniem DCL a następnie wykonuję z pomocą lispa : (setq helloworld (load_dialog "helloworld.dcl")) (new_dialog "helloworld" helloworld) (start_dialog) (unload_dialog helloworld) Widać, że kod DCL też jest formatem tekstowym w żaden sposób niezabezpieczonym. VBA Visual Basic for Application wywodzi się z języka Visual Basic firmy Microsoft i używany był w wielu różnych aplikacjach wliczając w to Autocada. W Autocadzie uzyskuje dostep do obiektów poprzez interfejs ActiveX. ActiveX Automotion został wprowadzony do Autocada w tym samym czasie co VisualLisp. Brak dalszego rozwoju VisualLisp a można sobie tłumaczyć tym, że VBA miał nad nim przewagę w postaci

wbudowanego mechanizmu do tworzenia okien dialogowych. W roku 2007 Microsoft przestał wspierać Autodesk w dystrybucji tej technologii zachęcając twórców do korzystania z.net API. Autodesk kontunował nieautoryzowane przez Microsoft wsparcie do roku 2010, aktualnie w programie nie ma już środowiska deweloperskiego do VBA a język nie jest już rozwijany. Konkludując, nie piszcie programów w VBA. Przykład kodu VBA wstawiającego tekst do rysunku Autocada: Sub AddTextExample() Dim TextValue As String TextValue = "Programowanie jest łatwe" 'tekst jaki zostanie wstawiony do rysunku Autocada Dim Point(2) As Double 'współrzędne punktu wstawienia tekstu Point(0) = 10 'Położenie na osi X Point(1) = 20 'Położenie na osi Y Point(2) = 0 'Położenie na osi Z Dim TextHeight As Double 'zmienna określająca wysokość tekstu TextHeight = 10 'ustawmy wysokość na 10 ThisDrawing.ModelSpace.AddText(MyString, Point, TextHeight) 'dodajemy tekst do rysunku End Sub ADS Autocad Development System jest to zestaw bibliotek napisanych w języku C. Interfejs ten umożliwia umożliwiającym tworzenie aplikacji na Autocada w językach C oraz C++. Do stworzenia nakładki przy wykorzystaniu ADS konieczne jest zewnętrzne środowisko programistyczne oraz wiedza z zakresu programowania. W porównaniu do poprzednich technologii prędkość działania programów napisanych w języku C/C++ znacznie wzrasta, a możliwości tworzenia aplikacji są wręcz nieograniczone. Można nie tylko wstawiać parametryzowane bloki, ale również podłączać się pod pętle komunikatów Autocada czy nadpisywać domyślne działanie wbudowanych funkcji. Dużym plusem tej technologii było do niedawna to, że większość klonów implementowała różne jej odmiany, większość funkcji pokrywała się - więc podczas pisania nakładki istniało bardzo duże prawdopodobieństwo, że bez większych problemów (osobna kompilacja z właściwymi dla wybranego CAD a bibliotekami) progam zadziała na Autocadzie oraz Intellicadzie. Oczywiście i w klonach pojawiają się implementacje kolejnych interfejsów, ale mają one duże opóźnienie w stosunku do orginału firmy Autodesk. Podstawową strukturą danych w ADS jest resbuf, który zawiera wiadomości na temat typu danych jakie są w nim zapisane, wartości zapisanych w postaci union oraz wskaźnika do następnego elementu resbuf (jeśli taki istnieje). union ads_u_val { ads_real rreal;

ads_real rpoint[3]; short rint; char *rstring; long rlname[2]; long rlong; struct ads_binary rbinary; }; struct resbuf { struct resbuf *rbnext; short restype; union ads_u_val resval; }; Dane zapisywane są w postaci łańcuchów resbuf ów a obiekty tworzone w oparciu o specyfikację DXF (która też ulega modyfikacją wraz z wersjami Autocada). Przykładowy kod wstawiający linię w ADS: resbuf * entlist=ads_buildlist(rtdxf0, "line", // typ obiektu 8, "Warstwa", // Nazwa warstwy na której bedzie wstawiona linia 6, "dashdot", //typ linii: dashdot, continuous itd. 62, 0, // Numer koloru, wartości od 0 do 255 48, 1, //skala linii 10, p1, // punkt startowy linii 11, p2, // punkt końcowy linii RTNONE); ads_entmake(entlist); //wstawienie obiektu linia do rysunku Możliwe jest także inny sposób tworzenia elementów używanie wbudowanych komend Autocada. Poniższy przykład wstawiania linii pomiędzy punktami p1 i p2. ads_point p1 = {1.0, 1.0, 0.0}, p2 = {5.0, 5.0, 0.0}; ads_command(rtstr, "._LINE", RT3DPOINT, p1, RT3DPOINT, p2, RTSTR, "", NULL); Technologia ADS pomimo swoich niezaprzeczalnych zalet ustąpiła pola swojemu następcy ObjectARX, który udostępnia programowanie w bardziej przystępny sposób i jest wydajniejszy. ObjectARX Autocad Runtime extension to API, stanowi kolejne stadium w rozszerzaniu funkcjonalności Autocada w jego skład wchodzi zestaw bibliotek i plików nagłówkowych dla języka C++. Całe SDK można pobrać za darmo ze stron firmy

Autodesk. ObjectARX jest najpotężniejszym ze wszystkich dostępnych interfejsów, zawiera w sobie wszystkie elementy dostępne w ADS i rozwija je o dodatkowe funkcjonalności. Wydajność tej technologii jest taka sama jak wydajność własnych funkcji Autocada, może o tym stanowić też fakt, że Autodesk używa jej do tworzenia własnych rozszerzeń Autocada takich jak Autodesk MAP czy Architectural Desktop. Oczywiście, depcząca Autocadowi po piętach konkurencja stara się umożliwić przenośność nakładek. Klony oparte na bibliotece DWGDirect z Open Design Alliance mają możliwość korzystania z API emulującego ObjectARX DRX (np. Intellicad od wersji 7, poprzednie wersje implementowały jedynie ADS). Niektórzy twierdzą, że ObjectARX jest najtrudniejszym interfejsem dla programisty chociaż ja jednak obstawiałbym, że łatwiejszy niż ADS. Jednakże aby rozpocząć z nim pracę wymagane jest wiedza z zakresu programowania w języku C++ oraz zewnętrzne środowisko programistyczne (np. Microsoft Visual Studio). Przykład wstawiania linii do rysunku: //Pobieramy aktualną bazę z aktywnego rysunku AcDbDatabase* pdb = acdbhostapplicationservices()->workingdatabase(); //Teraz musimy pobrać właściwy kontener dla rysowanego obiektu AcDbBlockTable *pblocktable = NULL; pdb->getsymboltable(pblocktable, AcDb::kForRead); //Wewnątrz BlockTable otwieramy ModelSpace do zapisu AcDbBlockTableRecord* pblocktablerecord = NULL; pblocktable->getat(acdb_model_space, pblocktablerecord, AcDb::kForWrite); //Jak już mamy pobrany wskaźnik do modelu możemy zamknąć tablicę bloków pblocktable->close(); //Teraz można stworzyć linię więc deklarujemy punkty linii AcGePoint3d p1(1.0, 1.0, 0.0); AcGePoint3d p2(10.0, 10.0, 0.0); //Tworzymy instancje linii AcDbLine *pline = new AcDbLine(p1, p2); //i wstawiamy ją we właściwe miejsce AcDbObjectId lineid = AcDbObjectId::kNull; pblocktablerecord->appendacdbentity(lineid, pline); //Aby zakończyć operację należy po sobie posprzątać więc zamykamy ModelSpace i utworzony obiekt

pblocktablerecord->close(); pline->close();.net API Kolejnym sposobem tworzenia nakłądek dla CAD a jest.net API. Autodesk uczynił w ten sposób ukłon w stronę programistów korzystającej z.net Framework. Teraz można tworzyć nakładki dla Autocada korzystając z języka C# lub VB.NET korzystając z wszelkich udogodnień dostępnych dla tych technologii takich jak dużo łatwiejsza komunikacja z programami z serii Microsoft Office czy proste tworzenie niestandardowych okien dialogowych przy użyciu technologii WPF. Jeżeli chodzi o wydajność to.net API jest interfejsem przekazującym dane z bibliotek ObjectARX do.net Framework więc prędkość jest nieznacznie mniejsza niż w ObjectARX. Jednak wydaję mi się, że możliwości platformy.net dobrze rekompensują tę stratę. Podobnie jak z poprzednimi technologiami tak i tutaj konkurencja nie próżnuję i oczywiście Open Design Alliance wprowadziło bibliotekę Teigha.Net, jednak w tym wypadku nie sprawdzałem przeności kodu pomiędzy tymi platfomami. Standardowo kod wstawiający linię: //Atrybut określający, że jest to funkcja która jest komendą, czyli może być wywołana z linii poleceń [CommandMethod("AddLine")] public static void AddLine() { //Pobieramy aktualny dokument i jego bazę danych Document acdoc = Application.DocumentManager.MdiActiveDocument; Database accurdb = acdoc.database; // Tworzymy transakcję using (Transaction actrans = accurdb.transactionmanager.starttransaction()) { //Pobieramy BlockTable BlockTable acblktbl; acblktbl = actrans.getobject(accurdb.blocktableid, OpenMode.ForRead) as BlockTable; //Otwieramy ModelSpace w trybie zapisu BlockTableRecord acblktblrec; acblktblrec = actrans.getobject(acblktbl[blocktablerecord.modelspace], OpenMode.ForWrite) as BlockTableRecord;

//Tworzymy instancję linii na podstawie 2 punktów Line acline = new Line(new Point3d(1, 1, 0), new Point3d(10, 10, 0)); acline.setdatabasedefaults(); //Dodajemy nowy obiekt do ModelSpace i transakcji acblktblrec.appendentity(acline); actrans.addnewlycreateddbobject(acline, true); //Wysyłamy dane do zapisu w bazie actrans.commit(); } } Podsumowanie Ciągle rosnąca liczba projektantów korzystających z programów CAD oraz wielkie pieniądze inwestowane rozwój budownictwa czy energetykę wpływają na zwiększenie popytu rozszerzeń dla platfomy CAD. Nakładki Autocada nie zapełniają całego rynku ponieważ są bardzo rozbudowane (co nie każdemu pasuje) i nie dostosowane do norm technicznych obowiązujących w różnych krajach. Ciekawą niszą w tej materii są też programy narzędziowe wydawane przez firmy produkujące elementy konieczne do realizacji projektów, umożliwiające korzystanie z dedykowanych baz elementów zawierających obiekty danej firmy. Warto więc zastanowić się nad zgłębieniem technologii udostepnionych przez firmę Autodesk. Do tworzenia komercyjnych programów opartych na CAD zie najbardziej elastyczna wydaję mi się technologia ObjectARX. Przenośność kodu programu między Autocadem a klonami jest dość istotna gdyż cena Autocada oscyluje w granicach kilkunastu tysięcy natomiast jego klony kosztują około 2-3 tysięcy złotych co jest dość znaczącą różnicą dla projektantów. Trzeba tu wspomnieć o tym, że najtańsza wersja Autocada Autocad LT nie wspiera rozszerzeń. Jeżeli interesuje Was efektowny wygląd programu i głównie mainstream cadowy czyli AutoCAD to polecam.net API. Oczywiście dobrym wyjściem przy tworzeniu programów dla CAD jest skorzystanie z usług profesjonalisty. Autor: Radosław Dąbrowicz Przedruk ze strony: http://dabrowicz.pl/programowanie-w-srodowisku-cad-2/ Artykuł pobrano ze strony eioba.pl