Witam, czy jest tu ktoś kto zajmuje się tworzeniem (programowaniem) nakładek dla AutoCada i ZWCada? Znam programowanie w Javie oraz C#. Pracuję na co dzień w cadach (Budownictwo). Czy nakreśliłby mi ktoś jak zabrać się za to? Obecnie podchodziłem do sprawy tak, że chciałem tworzyć gotowe bloki w cadzie i nimi manipulować z poziomu C#. Jednak po pewnym czasie okazuje się, że nie można zmieniać dynamicznie parametrów bloku co jest jedną z najpotrzebniejszych rzeczy. Jeśli ktoś chce pomóc to proszę o komentarz.
Bloki czyli jakieś elementy rysunkowe np. schody, które tworzył byś poprzez kreatora stworzonego przez siebie w C#? Dobrze rozumiem to o co Ci chodzi czy nie?
gg napisał(a):
Bloki czyli jakieś elementy rysunkowe np. schody, które tworzył byś poprzez kreatora stworzonego przez siebie w C#? Dobrze rozumiem to o co Ci chodzi czy nie?
Dokładnie tak, Parametry pobierane od użytkownika w okienku. Schody czy np. generowanie gotowego rysunku zbrojenia dla podciągu na podstawie podanych danych.
Nie do konca rozumiem ocb ale mozesz obcziac:
http://docs.autodesk.com/ACD/2010/ENU/AutoCAD%20.NET%20Developer's%20Guide/index.html
mch0588 napisał(a):
Nie do konca rozumiem ocb ale mozesz obcziac:
http://docs.autodesk.com/ACD/2010/ENU/AutoCAD%20.NET%20Developer's%20Guide/index.html
Podstawy znam. Chodzi mi o bardziej ciekawe aspekty.
Przykładowa sytuacja: mam stworzony blok dynamiczny z prostokątem. Do każdego boku przypisany jest parametr a do parametru możliwość rozciągania elementu.
Chciałbym odebrać od użytkownika wymiary prostokąta i stworzyć taki blok na rysunku z prostokątem o podanych wymiarach.
Blok jest stworzony w AutoCad (nie w C#). W C# jest tylko manipulacja gotowym elementem.
Prostokąt można by było stworzyć szybko w C# ale jest to tylko przykład. Trudniejsze elementy było by łatwiej narysować w AutoCadzie, sparametryzowac je a później w c# tylko manipulować parametrami i atrybutami
Imp prosciej jest zrobic rysowanie na podstawie podanych danych niz bawic sie w bloki
mch0588 napisał(a):
Imp prosciej jest zrobic rysowanie na podstawie podanych danych niz bawic sie w bloki
Podany sposób testowałem, ale niestety nie działa poprawnie przy wprowadzaniu zmian parametrów. Do odczytu danych jest ok. Po przypisaniu wartości do parametru rysunek nie aktualizuje się o nowe dane. Cały czas dodaje z parametrami domyślnymi.
Ja pracuję w CADach. Nie twórz bloków. Po co Ci to. Mamy XXI wiek :) Mamy RXowe obiekty i to na nich powinieneś pracować. AutoCAD ma klasę AcDbEntity. ZWCad pewnie będzie miał ZwDbEntity. To jest klasa bazowa dla bazodanowych elementów widocznych na rysunku. Zresztą bardzo dobrze wszystko jest opisane w dokumentacji.
Juhas napisał(a):
Ja pracuję w CADach. Nie twórz bloków. Po co Ci to. Mamy XXI wiek :) Mamy RXowe obiekty i to na nich powinieneś pracować. AutoCAD ma klasę AcDbEntity. ZWCad pewnie będzie miał ZwDbEntity. To jest klasa bazowa dla bazodanowych elementów widocznych na rysunku. Zresztą bardzo dobrze wszystko jest opisane w dokumentacji.
A w jakim języku działasz?
Opowiesz coś jak działają RXowe obiekty? Bo do C# widzę, że za dużo materiałów nie ma :( Może podeślesz jakieś ciekawe linki?
Robię w C++. Ale w C# też można. Nie dam Ci żadnych linków. Wszystko jest opisane w dokumentacji, którą ściągasz razem z API. Przeczytaj ją. Każdy cadowy prymityw (linia, koło, łuk itd) to obiekt RXowy. I nie ma problemu, żebyś sam sobie takie obiekty budował. Ktoś kiedyś nawet jakąś prostą grę na tym zrobił. Jest też forum autodesku. W każdym razie dokumentacja jest całkiem nieźle opisana.
Jak chcesz dalej drążyć temat z blokami to jedyne co mi przychodzi do głowy to zadać pytanie u źródła: https://forums.autodesk.com/t5/net/bd-p/152
Juhas napisał(a):
Robię w C++. Ale w C# też można. Nie dam Ci żadnych linków. Wszystko jest opisane w dokumentacji, którą ściągasz razem z API. Przeczytaj ją. Każdy cadowy prymityw (linia, koło, łuk itd) to obiekt RXowy. I nie ma problemu, żebyś sam sobie takie obiekty budował. Ktoś kiedyś nawet jakąś prostą grę na tym zrobił. Jest też forum autodesku. W każdym razie dokumentacja jest całkiem nieźle opisana.
A jak oceniasz tworzenie w C++? Jesteś w stanie porównać do innych języków? Jeśli można zrobić coś sensownego w normalnym czasie to może warto przesiąść się na C++ z powodu większych możliwości. Może opowiedz jakie ma możliwości? A jak jest ze wsparciem dla tego języka?
Nie rozumiem, chcesz żebym powiedział Ci, jakie możliwości ma C++?
AutoCAD, ZwCAD, IntelliCAD są pisane w C++. ZWCad jest na jądrze IntelliCADa lub na Odzie. To się u nich zmienia. Bo kiedyś chwalili się, że napisali zupełnie własny, a potem się okazało, że po prostu ukradli kody z Autodesku.
Masz całe ogromne wsparcie w postaci forum autodesku. Zarówno dla C++ jak i dla C#. Nie wiem, jakie ograniczenia ma C# w Cadzie, ale wydaje mi się, że zrobisz wszystko to samo, co w C++. Tylko robi się to nieco inaczej.
Nie baw się w C++, C# aż zanadto wystarczy i będziesz miał realną szansę zrobienia czegoś działającego. Poza tym posłuchaj się Juhasa i odpuść te bloki.
C++ do twoich zastosowań to same problemy.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.