Cad i C# (AutoCad, ZWCad)

0

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.

0

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?

0
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.

0
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.
screenshot-20170921133620.png
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

0
mch0588 napisał(a):

http://through-the-interface.typepad.com/through_the_interface/2009/03/accessing-the-properties-of-a-dynamic-autocad-block-using-net.html

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.

0

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.

0
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?

0

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.

0

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

0
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?

0

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.

0

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1