pisze aplikacje do optymalizacji rozkrojow 2D, ktora umozliwia
interakctywna wspolprace projektanta/technologa z komputerem
i reczne manipulowanie obiektami/czesciami w czasie procesu
optymalizacji rozkroju 2D (true shape nesting).
W tym celu pisze interface do programow cadowskich czytajacych format
DFX, tak aby pliki te byly wizualizowane, a algorytm dokonywal
operacji na obiektach, prezentowanych w formie graficznej.
Dodatkowo chce dobudowac interface do manipulatora obiektow typu
konsula, jak w grach komputerowych, z definiowaniem roznych klawiszy,
przyciskow, joysticka itd.
Dlatego szukam uproszczonej skladni plikow dfx lub osoby , ktora sie
zajmowala tym problemem, aby interfejs maksymalnie uproscic.
Jacek
--
Projektowanie optymalnych rozkrojow blachy, skory, szkla, tkanin,
drewna. True Shape Self(EGO) Nesting Technology world-wide.
Inquiries should be e-mailed to: golfm...@poczta.onet.pl
A to bedziesz mial problem, jesli rysunki nie zostana poprawnie
przygotowane.
Przyklad: Masz narysowany trzy prostokaty, pierwszy jako osobne linie, drugi
jako zamknieta polilinia a trzeci jako obszar.
Graficznie to wyglada tak samo ale obiektowo zupelnie inaczej.
Jesli w AutoCAD-zie wskazesz / wybierzesz dowolny obiekt to masz bezposredni
dostep do informacji dxf np. (assoc '10 (entget (car entsel))
Pozdrowienia
Pawel Durys
--
Archiwum grupy: http://niusy.onet.pl/pl.comp.cad
Swieta racja, prosze o wybaczenie ;-)
Napisalem "np.", aby pytajacy mial ciekawszy na-przyklad (a zapomnialem tez
nawiasow dookola entsel - juz nie ta glowa)
Witam.
Pozwolę sobie tylko wtrącić, że są niewielkie różnice między kodami DXF
aplikacji (czyli tym co zwraca entget) a kodami DXF pliku (czyli tym co
Jacek znajdzie w obrabianym pliku *.DXF)....
pozdrawiam,
sparrow
-----
Wysłano za pośrednictwem WWW.CAD.PL (http://www.cad.pl)
Książka o AutoCAD 2002 PL: http://helion.pl/url29I~ac22pl
Mogę napisać aplikację wyświetlającą kod dla każdego nowoutworzonego i
każdego zmodyfikowanego elementu.
Można oprogramować zdarzenia myszki ale to chyba raczej zbędne.
: I gdzie mozna znalazc ( czy trzeba samodzielnie napisac)
: biblioteke do operacji logicznych na obiektach opisanych grafika
: wektorową (np. krzywymi zamknietymi).
Tutaj najwygodniej będzie przekształcić krzywe zamknięte w obiekty typu
region.
Na regionach mozna wykonywać operacje logiczne (suma, różnica) - również
programowo. Funkcje do tego potrzebne są wbudowane w AutoCAD-a
: Rozwiazujac rownania kazdej z funkcji opisujacych jedna krzywa z kazda
: funkcja opisujaca druga krzywa w swoich dziedzinach i punkty
przeciecia
: sie krzywych to beda rozwiazania takich ukladow.
Istnieją funkcje lisp zwracające punkty przeciecia obiektów graficznych.
Nie trzeba do tego wyznaczac funkcji i rozwiązywac układu równań.
: Potem gdy znajde te punkty przeciecia sie krzywych i funkcje ktorych
: stanowia wartosci to musze znalezc czesc wspolna i tutaj potrzebuje
: wlasnie bilioteki , ktora operuje na formacie wektorowym lub dxf.
Funkcje logiczne operujące na regionach zwracają nowe regiony stanowiące
wynik operacji logicznych. te nowe regiony (np. cz. wspólna) można
rozbić di polilinii i dla polilinii odczytać kody DXF. Dla regionów tez
można odczytywac kody DXF ale mają one postać binarną i nie są
udokumentowane.
: I tutaj mam pytanko, na ile jednak projekt opisany dxefem stanowi
: grafike wektorowa.
Możesz przyjąć że plik DXF zawiera wszystkie informacje definiujące
geometrię obiektów wektorowych.
Nie wiem natomiast dlaczego "upierasz się" aby dane wejsciowe były w
formacie DXF? Zauważ, że do uruchomienia programu w AutoLISP-ie (tak
naprawdę do będziemy musieli skorzystać z VisualLISPu - dostępny od
AutoCAD-a R14) musisz dysponować AutoCAD-em (Intellicadem w
ostateczności).
Przy takich uwarunkowaniach w zasadzie możesz zapomnieć o kodach DXF i
wszystkie operacje wykonywać na obiektach AutoCAD-a widzianych jako
obiekty ActiveX/COM. Takie rozwiązanie ma też tą zaletę, że wtedy swoją
oplikację możesz napisac w zasadzie w dowolnym języku programowania
obsłygujacym technologie AiciveX/COM, czyli Delphi, Visual Basicu,
VisualLispie, Javie etc...
Nawet jeżeli twój klient wymaga aby dane wejściowe i wyjściowe były w
formacie DXF (a nie DWG) to żaden problem - AutoCAD wczyta i zapisze
wynikowy rysunek w formacie DXF.
Prawda.
Wystepuja tez takie "straszne" obiekty jak bloki, polilinie, ktore posiadaja
wewnatrz zagniezdzone elementy. I terzeba kopac, i kopac, i kopac aby sie do
nich dostac.
Sprostowanie. Wazne.
_Nie ma czegos takiego jak obiekty dxfowe._
Slowo DXF oznacza Format Wymiany danych Rysunkowych, i okresla sposob w jaki
jest tworzony plik.
Jest to standard "de-facto" przemyslowy (cos takiego jak protokol
transmisji).
Innym, naturalnym formatem zapisu rysunkow w programie AutoCAD jest format
DWG, ale nie zawsze istnialy jego opisy (definicje).
Elementem pliku w formacie DXF moze byc np. definicja rodzaju linii, lub
wzoru kreskowania. Takie elementy nic nie maja wspolnego z dlugoscia, calka
czy przekrojem.
Tyle gwoli wyjasnienia.
Zaczynam odnosic wrazenie, ze nie miales wiele do czynenia z programami CAD,
a w szczegolnosci z AutoCAD-em.
Ten program pozwala na manipulowanie obiektami geometrycznymi w sposob
czasami zadziwiajacy nawet doswiadczonych projektantow. Wiele z Twoich
pytan, daloby sie rozwiazac poprzez bezposrednia edycje obiektow
rysunkowych.
>
> : Rozwiazujac rownania kazdej z funkcji opisujacych jedna krzywa z kazda
> : funkcja opisujaca druga krzywa w swoich dziedzinach i punkty
> przeciecia
> : sie krzywych to beda rozwiazania takich ukladow.
>
> Istnieją funkcje lisp zwracające punkty przeciecia obiektów graficznych.
> Nie trzeba do tego wyznaczac funkcji i rozwiązywac układu równań.
Ok.
Ale ja musze kazdy obiekt/region/krzywa z autocada widziec i moj program
musi kazdy taki obiekt opisany krzywa zamknieta "widziec" jako ksztalt,
opisany funkcjami , rownaniami matematycznymi, z podaniem dziedziny.
Czyli z rysunku/ obiektu/regionu musze wyciagnac opis matematyczny/
wektorowy i na nim
wykonywac operacje symboliczne i matematyczne.
>
> : Potem gdy znajde te punkty przeciecia sie krzywych i funkcje ktorych
> : stanowia wartosci to musze znalezc czesc wspolna i tutaj potrzebuje
> : wlasnie bilioteki , ktora operuje na formacie wektorowym lub dxf.
>
> Funkcje logiczne operujące na regionach zwracają nowe regiony stanowiące
> wynik operacji logicznych. te nowe regiony (np. cz. wspólna) można
> rozbić di polilinii i dla polilinii odczytać kody DXF. Dla regionów tez
> można odczytywac kody DXF ale mają one postać binarną i nie są
> udokumentowane.
Czyli sam mam pisac biblioteke operacji symbolicznych na opisach
matematycznych obiektow ?
>
> : I tutaj mam pytanko, na ile jednak projekt opisany dxefem stanowi
> : grafike wektorowa.
>
> Możesz przyjąć że plik DXF zawiera wszystkie informacje definiujące
> geometrię obiektów wektorowych.
Ok.
Czy znasz na tyle format dxf , ze potrafisz recznie, symbolicznie
zaprojektowac obiekt,
edytujac dxfa pod notatnikiem, tak aby juz pod autocadem mozna bylo
otworzyc ten projektowany obiekt ?
Wlasciwie to by mi wystarczylo.
>
> Nie wiem natomiast dlaczego "upierasz się" aby dane wejsciowe były w
> formacie DXF? Zauważ, że do uruchomienia programu w AutoLISP-ie (tak
> naprawdę do będziemy musieli skorzystać z VisualLISPu - dostępny od
> AutoCAD-a R14) musisz dysponować AutoCAD-em (Intellicadem w
> ostateczności).
Wlasnie tak sie zastanawiam, ze moze nie korzystac ani z autocadu , ani
lispa
a jedynie napisac program i procedurki, ktore beda tworzy plik tekstowy
o skladni dxfa
Pewnie takie procedury do symbolicznych operacji na dxfa sa znane.
>
> Przy takich uwarunkowaniach w zasadzie możesz zapomnieć o kodach DXF i
> wszystkie operacje wykonywać na obiektach AutoCAD-a widzianych jako
> obiekty ActiveX/COM. Takie rozwiązanie ma też tą zaletę, że wtedy swoją
> oplikację możesz napisac w zasadzie w dowolnym języku programowania
> obsłygujacym technologie AiciveX/COM, czyli Delphi, Visual Basicu,
> VisualLispie, Javie etc...
Ok.
Ale tylko wtedy gdy axtivex przewiduje te procedury, funkcje, ktore mnie
interesuja.
>
> Nawet jeżeli twój klient wymaga aby dane wejściowe i wyjściowe były w
> formacie DXF (a nie DWG) to żaden problem - AutoCAD wczyta i zapisze
> wynikowy rysunek w formacie DXF.
Rozumiem.
Ale nadal potrzebuje narzedzia do operacji symbolicznych na obiektach,
przez generowanie pliku tekstowego
o skladni i formacie dfxa.
Czy znasz cos takiego, albo sam potrafisz pisac z glowy pliki dxfowe pod
notatnikiem ?
W sumie to potrzebuje skorzystac z narzedzi lub je stworzyc do "widzenia
obiektow " zaprojektowanych w autocadzie, teraz 2D, a potem 3D.
Ale widzenia w oparciu o operacje symboliczne a nie wizualizacje typu
cadowskiego.
Aby widzial rownanie x**2+y**2 = 4 jako okrag.
> Ten program pozwala na manipulowanie obiektami geometrycznymi w sposob
> czasami zadziwiajacy nawet doswiadczonych projektantow. Wiele z Twoich
> pytan, daloby sie rozwiazac poprzez bezposrednia edycje obiektow
> rysunkowych.
Dokladnie.
Ale edycja ma nastepowac symbolicznie z pozycji edycji kody pliku
tekstowego dxf.
Pewnie lisp to czyni, ale moze jest jedna komenda/procedura, po
uruchomieniu ktorej otrzymujemy taki iteracyjny opis obiektow, grup
obiektow tworzacych caly projekt.
Spotkalem ludzi, ktorzy po starsze wersje programow cadop[odobnych pod
dosa, pisali opis obiektow z marszu, w edytorze tekstowym i mieli pelna
kontrole nad kazda linia tekstu.
Mysle ze byloby to doskonale rozwiazanie dla projektowania 2D,
np. skanowanie, wektoryzacja projektu z papieru i nastepnie wstawienie
zamiast funkcji uzytych do aproksymacji krzywych, takich funkcji,
ktorych uzywal projektant w oryginalnym projekcie.
Chyba sa takie narzedzia do szybkiego wczytywania projektow z papieru do
autocada. Kiedys robiono to chyba digitalizatorem, wskazujac punkty
wezlowe, ale wektoryzacja bitmapy sama buduje punkty wezlowe,
a skaner bebnowy nie powinien bardzo deformowac oryginalnego projektu,
ktory i tak juz w formacie wektorowym mozna zwymiarowac zgodnie z
opisem.
Na ile takie rozwiazanie jest optymalne, gdy mam duzo projektow
wydrukowanych na papierze i mam je wpisac do autocada.
Dla obiektów typu ODCINEK, OKRĄG, ŁUK i polilinii założonych z takowych
- OK. Dla obiektów typu SPLINE, REGION, 3DSOLID - pas....
: > Można oprogramować zdarzenia myszki ale to chyba raczej zbędne.
: Lisp chyba nie czyta eventow.
VisualLisp ma obsługę zdarzeń.
To o czym pisalem wyżej, to tez miała być obsługa eventów typu:
utworzenie obiektu i modyfikacaj obiektu.
Jakim AutoCADem dysponujesz? Napiszę Ci to zobaczysz jak to działa :)
: >
: > : I gdzie mozna znalazc ( czy trzeba samodzielnie napisac)
: > : biblioteke do operacji logicznych na obiektach opisanych grafika
: > : wektorową (np. krzywymi zamknietymi).
: >
: > Tutaj najwygodniej będzie przekształcić krzywe zamknięte w obiekty
typu
: > region.
: > Na regionach mozna wykonywać operacje logiczne (suma, różnica) -
również
: > programowo. Funkcje do tego potrzebne są wbudowane w AutoCAD-a
: Czy te operacje beda symboliczne ?
: Tzn. suma logiczna regionow to bedzie region opisany konkretnymi
: funkcjami z wskazanymi punktami wezlowymi ?
Wynikiem będzie obiekt AutoCADa typu REGION. Mogę Ci okreslić jego
powierzchnię, punkty przecięcia z innymi, środek ciężkości, sprawdzić
czy dany punkt należy do regionu (za pomocą AutoCAD-a i ActiveX). Nie
potrafię dostarczyć opisu w postaci funkcja/dziedzina.
: Ale ja musze kazdy obiekt/region/krzywa z autocada widziec i moj
program
: musi kazdy taki obiekt opisany krzywa zamknieta "widziec" jako
ksztalt,
: opisany funkcjami , rownaniami matematycznymi, z podaniem dziedziny.
: Czyli z rysunku/ obiektu/regionu musze wyciagnac opis matematyczny/
: wektorowy i na nim
: wykonywac operacje symboliczne i matematyczne.
Region mozna rozbić do polilinii i o ile będzie ona zbiorem odcinków i
łuków to można szukać dla nich funkcji matematycznych.
: > Funkcje logiczne operujące na regionach zwracają nowe regiony
stanowiące
: > wynik operacji logicznych. te nowe regiony (np. cz. wspólna) można
: > rozbić di polilinii i dla polilinii odczytać kody DXF. Dla regionów
tez
: > można odczytywac kody DXF ale mają one postać binarną i nie są
: > udokumentowane.
: Czyli sam mam pisac biblioteke operacji symbolicznych na opisach
: matematycznych obiektow ?
Jeżeli nie chcesz korzystać z istniejących funkcji AutoCAD/ActiveX
(czyli robić to "poza AutoCADem" ) to TAK. Ale to wyważanie otwartych
drzwi IMHO.
: Czy znasz na tyle format dxf , ze potrafisz recznie, symbolicznie
: zaprojektowac obiekt,
: edytujac dxfa pod notatnikiem, tak aby juz pod autocadem mozna bylo
: otworzyc ten projektowany obiekt ?
: Wlasciwie to by mi wystarczylo.
Dla obiektów typu ODCINEK, ŁUK, OKRĄG, i polilinii złożonych z tych
obiektów - TAK. Nie napiszę ci DXF-a zawierającego REGION, SPLINE, i
bryły 3D (3DSOLID).
: Wlasnie tak sie zastanawiam, ze moze nie korzystac ani z autocadu ,
ani
: lispa
: a jedynie napisac program i procedurki, ktore beda tworzy plik
tekstowy
: o skladni dxfa
: Pewnie takie procedury do symbolicznych operacji na dxfa sa znane.
Pewnie tak, ale ja nie mam tych biblioteki z tymi procedurami. Dla mnie
(sobiście) ActiveX w AutoCAdzie jest wygodniejszy...
: > Przy takich uwarunkowaniach w zasadzie możesz zapomnieć o kodach DXF
i
: > wszystkie operacje wykonywać na obiektach AutoCAD-a widzianych jako
: > obiekty ActiveX/COM. Takie rozwiązanie ma też tą zaletę, że wtedy
swoją
: > oplikację możesz napisac w zasadzie w dowolnym języku programowania
: > obsłygujacym technologie AiciveX/COM, czyli Delphi, Visual Basicu,
: > VisualLispie, Javie etc...
: Ok.
: Ale tylko wtedy gdy axtivex przewiduje te procedury, funkcje, ktore
mnie
: interesuja.
Zawiera wszystko co niezbędne do edycji, przekształcania i analizowania
obiektów AutoCAD-a (w tym graficznych które Cię interesują). Oczywiście
wymaga to zainstalowanego AutoCAD-a.
: Ale nadal potrzebuje narzedzia do operacji symbolicznych na obiektach,
: przez generowanie pliku tekstowego
: o skladni i formacie dfxa.
: Czy znasz cos takiego, albo sam potrafisz pisac z glowy pliki dxfowe
pod
: notatnikiem ?
: W sumie to potrzebuje skorzystac z narzedzi lub je stworzyc do
"widzenia
: obiektow " zaprojektowanych w autocadzie, teraz 2D, a potem 3D.
: Ale widzenia w oparciu o operacje symboliczne a nie wizualizacje typu
: cadowskiego.
: Aby widzial rownanie x**2+y**2 = 4 jako okrag.
Mogę napisać w notatniku (mając Podręcznik Adaptacyjny AutoCAD pod reką)
plik DXF dla obiektów typu ODCINEK, ŁUK, OKRĄG, i polilinii złożonych z
tych obiektów.
Nie napiszę ci DXF-a zawierającego SPLINE, REGION, i bryły 3D (3DSOLID).
Tego ostatniego nie potrafi nawet Autodesk, dlatego kupili technologię
od ACIS/Spatial. Podobno ktoś to już rozszyfrował (kody DXF dla
REGIONÓW), ale nie sprawdzałem jak to działa w praktyce.
Mogę napisac aplikację (w Delphi) generującą pliki DXF ze na podstawie
równań matematycznych dla łuków, okręgów, odcinków i polilini złożonych
z łuków/odcinków. Mogę napisać aplikację działąjącą odwrotnie
(zwracająca zbiór funkcji matematycznych z analizy pliku DXF), o ile
tylko źródlowy DXF nie będzie zawierał bardziej złożonych obieków niż te
wymienione.
AutoCAD nie widzi okręgu jako równanie x**2+y**2 = 4, tylko jako OKRĄG o
parametrach: środek okręgu, promień okręgu oraz: warstwa, kolor, grubość
linii etc...
Nie do końca rozumien co dla Ciebie oznaczają pojęcia: "operacje
symboliczne", "wizualizacja typu cadowskiego"...
Mam nadzieję, że nie zamierzasz pisać własnego "viewera" dla plików
DXF...
Wreszcie to napisales co mnie interesowalo.
Ze format dxfa nie jest jawny i siedzi w nim cus takiego, co uniemozliwi
pisanie dfxa w moim programie do nestingu, gdyz nie bede wiedzial jak
wygenerowac w dxfie to cus co czyta autocad
Myslalem ze format, skladnia i kody dxfa sa jawne, bo przeciez ten
format jest czytany
przez liczne programy, zatem kazdy developer musi jakos ten dfx czytac i
generowac z aplikacji.
Mysle ze regiony tez.
Ale poszukam w necie informacji na ten temat.
>
> Mogę napisac aplikację (w Delphi) generującą pliki DXF ze na podstawie
> równań matematycznych dla łuków, okręgów, odcinków i polilini złożonych
> z łuków/odcinków. Mogę napisać aplikację działąjącą odwrotnie
> (zwracająca zbiór funkcji matematycznych z analizy pliku DXF), o ile
> tylko źródlowy DXF nie będzie zawierał bardziej złożonych obieków niż te
> wymienione.
To mnie bardzo interesuje, ale co zrobic, gdy projektant zechce uzywac
do aproksymacji bardziej zlozonych krzywych. Ktos mi mowil, ze pierwsze
cady mialy wlasnie ograniczone opcje i mniej funkcji do opisu krzywych
do wyboru.
>
> AutoCAD nie widzi okręgu jako równanie x**2+y**2 = 4, tylko jako OKRĄG o
> parametrach: środek okręgu, promień okręgu oraz: warstwa, kolor, grubość
> linii etc...
Oczywiscie.
Ale patrzac na rownanie nie powie ze opisuje okrag.
>
> Nie do końca rozumien co dla Ciebie oznaczają pojęcia: "operacje
> symboliczne",
To samo co robi matlab np. przeksztalcajac wzor, rozwiazujac rownanie,
upraszczajac ulamki.
"wizualizacja typu cadowskiego"...
> Mam nadzieję, że nie zamierzasz pisać własnego "viewera" dla plików
> DXF...
No wlasnie juz to prawie jest. Przeciez wiekszosc programow graficznych
wlasnie to robi.
Chce tylko generowac te obiekty/ regiony wpisujac bardzo proste komendy,
uzywajac funkcji z ActiveX
ale tak jak pisalem, czyli skryptowo.
Nazwa obiektu, warstwa, kolow, grubosc i typ linii
wezel poczatkowy, funkcja, wezel nastepny, funkcja, ...
A niech to potem ActiveX interpretuje z tego skryptu i kresli projekt,
ktory nastepnie zapisze jako dxf.
I jezeli teraz w tym skrypcie bede dokonywal zmian to obraz bedzie sie
odswiezal i bede mial to co chce
czyli operacje symbolicznen na opisie matematycznym obiektow generuja
dynamiczne zmiany w samym obiekcie.
To wlasnie robia matlaby, mathematica i inni.
Czyli to co sie nazywa mysleniem komputerowym i komputerowym widzeniem.
Modyfikacja obrazu = modyfikacja opisu matematycznego = modyfikacja
obrazu.
Ale musze wykorzystac gotowe biblioteki.
Na dzisiaj ucze sie skanowac projekty do bitmap, wektoryzowac, wyciagac
obiekty, wstawiac do autocada
i manipulowac nimi z activex albo lispa.
A wlasciwie to jeszcze prosciej bedzie gdy zaczne edytowac plik typu
macro, jaki powstawal
z zastosowania record ruchow myszki i klikniec.
W sumie to jest to co potrzebuje do opisu projektu.
Tam jest wezel gdzie sie zatrzymala myszka i kliknieto, taka jest
funkcja jaka wybrano,
taka linia jaka wybrano, taka warstwa jaka wybrano.
I to wlasnie jest o co mi chodzi.
Proste , latwe, mozliwe do sparametryzowania, edycji w notatniku i
generowania z lispa czy dowolnej aplikacji.
A jeszcze prosciej.
To wlasciwie chodzi mi o taki interfejs do autocada, ktory rozumie
komendy ustne.
Typu narysuj kolo, prostokat, blizej, dalej, wiekszy, mniejszy, zielony
trojkat , przesun, wyzej, nizej
itp.
Czyli troche voice recognition i troche fuzzy logic.
Teraz bede uczyl programu myslenia projektanta.
Czyli budowal narzedzia do operowania na obiektach, ale intuicyjne,
czyli co chcesz zeby sie dzialo z projektem i jak to zapisac w programie
jako macro.
Czyli program do nestingu bedzie obslugiwany glosem z komendami:
zrob nesting,
jeszcze raz
ustaw te obiekty ... w innej kolejnosci,
obroc , przesun do gory , jeszcze dalej
itp.
Bylo nie bylo to true speach i voice recognition generuja macra a nie
pojedyncze operacje.
Autocadowskie aplikacje juz sie zblizaja do rozumienia jezyka
naturalnego, ale jeszcze troche jest do zrobienia.
A nesting to matematyka, matematyka, matematyka, ale i sztuka, sztuka,
sztuka.
Czyli nadal trudno jest podpowiedzi przygotowane przez podswiadomosc
wprowadzac do kodu programu, czy przekladac na operacje myszka czy innym
manipulatorem.
Ale bez tego nie mamy zadnej interakcji z aplikacja i zamiast stosowania
do manipulowania obiektami makr
to musze pisac linijka kodu po linijce.
W nestingu probuje sie juz stosowac makra jaki interakcyjne wizje
projektanta/technologa, ale z tego co widze to nadal praktyka lezy w
powijakach.
I dlatego szkic odgrywa nadal taka duza role, gdyz mozna przekazac
szkicem informacje, ktora aby napisac w autocadzie trzeba na nia
poswiecic cala dniowke.
Tak wiec ominalem juz skladnie dxfa, ktorej nigdy w calosci nie poznam,
bo jak sam piszesz regiony sa tajne,
i moge do autocada wprowadzac obiekty z dowolnych zrodel typu zdjecie,
plik, rysunek techniczny,
i laczyc je w calosc. Operacje obiektami moge robic w lispie
albo zrobic w dowolnym jezyku wizualizacje dxfow, nawet w javie i
przeniesc projektowanie w autocadzie
i wizualizacje na strone www i przeniesc projektowanie autocadem do
pracy grupowej w intranecie.
Nie wiem tylko czy srodowisko www jest typu wysiwyg, czyli czy ekran
zachowuje wymiary obiektow (x,y)
To dla jakiej wersji AutoCADa mam Ci to napisać?
Tylko odpowiedz konkretnie
(AutoCAD freeware _n_i_e__ i_s_t_n_i_e_j_e_)
: Rozmawialem dzisiaj z projektantem, ktory pod dosowa wersje cada pisal
: kod z palca pod edytorem tekstowym, gdyz pamietal wszystkie kody.
Ja szłyszałem o gościu, który żyletką wycinał dziurki w kartach do
ODRY....
: Dzisiaj testowalem wlasnie czy mozna zeskanowac projekt ,
zwektoryzowac
: i odzyskac
: opis matematyczny krzywych, ale jest to abstrakcja.
: Grubosc linii decyduje o tym ze zamiast luku kola jako rozwiazania
: rownania , napisanego gruba kreska,
: otrzymuje sie cieniowanie tego grubego odcinka okregu siatka odcinkow.
: Czyli program nie ma wbudowanego modulu inteligencji, rozpoznawania
: obiektow, a wszystko traktuje jako
: zbior punktow sasiadujacych lub oddzielnych i grube linie krzywe
: zakreskowuje odcinkami kreslonymi cienka kreska.
Znowu wyważasz otwarte drzwi. Istnieje kilka firm które bardzo dobrze
opanowały technologię półautomatycznej wektoryzacji. A problemy o
których piszesz rozwiązuje nawet takie narzędzie jak darmowy scanmap,
zobacz
ftp://ftp.cad.pl/progs/MapScan.zip
: Oczywiscie ze masz racje, ale znalazlem ladna nakladke do operacji
: boolowskich w 3D.
: Dodaje, odejmuje( wycina) boolowsko obiekty w 3D.
Nakładkę _n_a__c_o_???. AutoCAD potrafi to bez nakładek.
: A operacje boolowskie na regionach ?
TAK, to było przyrzycyna dla której wogóle pomyslałem o regionach,
pisałem wczesniej:
: > : > Funkcje logiczne operujące na regionach zwracają nowe regiony
: > stanowiące
: > : > wynik operacji logicznycnych.
: Wreszcie to napisales co mnie interesowalo.
: Ze format dxfa nie jest jawny i siedzi w nim cus takiego, co
uniemozliwi
: pisanie dfxa w moim programie do nestingu, gdyz nie bede wiedzial jak
: wygenerowac w dxfie to cus co czyta autocad
: Myslalem ze format, skladnia i kody dxfa sa jawne, bo przeciez ten
: format jest czytany
: przez liczne programy, zatem kazdy developer musi jakos ten dfx czytac
i
: generowac z aplikacji.
: Mysle ze regiony tez.
: Ale poszukam w necie informacji na ten temat.
Nie całkiem masz rację. np. IntelliCAD nie potrafi zinterpretowac
informacji o obiektach typu REGION i 3DSOLID, mimo w plikach DXF i DWG.
Po prostu ignoruje te denae i nie wyswietla obiektów - dlatego ze nie
kupili technologii ACIS.
Informacje o rozszyfrowaniu kodów DXF o regionach znajdziesz na:
http://www.cad.pl/lisp_faq.html#28
: > Mogę napisac aplikację (w Delphi) generującą pliki DXF ze na
podstawie
: > równań matematycznych dla łuków, okręgów, odcinków i polilini
złożonych
: > z łuków/odcinków. Mogę napisać aplikację działąjącą odwrotnie
: > (zwracająca zbiór funkcji matematycznych z analizy pliku DXF), o ile
: > tylko źródlowy DXF nie będzie zawierał bardziej złożonych obieków
niż te
: > wymienione.
: To mnie bardzo interesuje, ale co zrobic, gdy projektant zechce uzywac
: do aproksymacji bardziej zlozonych krzywych. Ktos mi mowil, ze
pierwsze
: cady mialy wlasnie ograniczone opcje i mniej funkcji do opisu krzywych
: do wyboru.
W póżniejszych AutoCAD-ach doszedł jeszcze łuk eliptyczny i B-SPLAJN. To
też moge ostatecznie zrobic, ale pod warunkiem ze Ty mi wyliczysz
parametry potrzebne AutoCAD-owi do zdefiniowania B-SPLAJNU (funkcja
matematyczna mnie nie urządza).
Pozatym wszystko mozna aproksymowac zbiorem odcinków równych skokowi
(rozdzielczości) maszyny którą bedziesz potem wycinał te regiony.
Dlatego tutaj bym nie dramatyzował...
: > AutoCAD nie widzi okręgu jako równanie x**2+y**2 = 4, tylko jako
OKRĄG o
: > parametrach: środek okręgu, promień okręgu oraz: warstwa, kolor,
grubość
: > linii etc...
: Oczywiscie.
: Ale patrzac na rownanie nie powie ze opisuje okrag.
To może powinienes robic ten pprojet w Matlabie jednak :)
: > Mam nadzieję, że nie zamierzasz pisać własnego "viewera" dla plików
: > DXF...
: No wlasnie juz to prawie jest. Przeciez wiekszosc programow
graficznych
: wlasnie to robi.
Ok. Ale ja Ci w tym nie pomogę. Zrzesztą znowu... są gotowe narzędzia do
tego.
: Czyli to co sie nazywa mysleniem komputerowym
: i komputerowym widzeniem.
ROTFL. Komputer nie mysli. Komputer _b_e_z_m_y_ś_l_n_i_e_ realizuje
algorytmy.
: Nazwa obiektu, warstwa, kolow, grubosc i typ linii
: wezel poczatkowy, funkcja, wezel nastepny, funkcja, ...
: A niech to potem ActiveX interpretuje z tego skryptu i kresli
: projekt, ktory nastepnie zapisze jako dxf.
: I jezeli teraz w tym skrypcie bede dokonywal zmian to obraz
: bedzie sie odswiezal i bede mial to co chce
: czyli operacje symbolicznen na opisie matematycznym
: obiektow generuja dynamiczne zmiany w samym obiekcie
Takie cos Ci moge napisać Dla prostych obiektów, i pod warunkiem, ze
składnia w twoim skrypcie nie bedzie typu "fuzzy logic" tylko "just
logic"
: A wlasciwie to jeszcze prosciej bedzie gdy zaczne edytowac plik typu
: macro, jaki powstawal
: z zastosowania record ruchow myszki i klikniec.
: W sumie to jest to co potrzebuje do opisu projektu.
: Tam jest wezel gdzie sie zatrzymala myszka i kliknieto, taka jest
: funkcja jaka wybrano,
: taka linia jaka wybrano, taka warstwa jaka wybrano.
: I to wlasnie jest o co mi chodzi.
: Proste , latwe, mozliwe do sparametryzowania, edycji w notatniku i
: generowania z lispa czy dowolnej aplikacji.
IMHO nie jest proste. Rejestrowanie makr nie ma nic wspólnego z
układaniem algorytmów. Mogę udowodnić że wyniki działania
zarejestrowanych makr Visual Basica moga dawać ( w pewnych warunkach)
niepowtarzalne rezultaty.
: A jeszcze prosciej.
: To wlasciwie chodzi mi o taki interfejs do autocada, ktory rozumie
: komendy ustne.
: Typu narysuj kolo, prostokat, blizej, dalej, wiekszy, mniejszy,
zielony
: trojkat , przesun, wyzej, nizej
: itp.
[...ciach ...]
Dobra. To jest ten przystanek na którym ja wysiadam z tego tramwaju.
Powodzenia...
> Powodzenia...
Dzieki.
Przeczytalem FAQ Lisp, ktorego adres podales i ktory przetlumaczyles z
austriackiego (?)
Jedna uwaga:
"
Ten artykuł, zawartość oraz przykłady kodu są dostarczone w niniejszej
formie, bez żadnych wyrażonych lub domyślnych gwarancji.
"
Jepiej brzmi " lub dorozumianych gwarancji".
Mam pytanko, czy wydawnictwo Helion jedynie wydaje ksiazki, czy tez
robi prezentacje Autocada , Lispa, z pokazem zastosowan, mozliwosci,
aby dodatkowo zachecic do kupowania ksiazek do ktorych dodawany jest
soft na CD.
Kiedys napisalem prace nt. przeksztalcania struktur (programow)
rekursywnych na iteracyjne i mysle ze juz wtedy zostala okreslona
przyszlosc Lispa.
VBA skutecznie zastapi lispa, gdyz umozliwia pisanie iteracyjnego kodu
do definiowania obiektow, a nie zagniezdzajacych sie struktur
listowych/drzewiastych, ktore sa nieczytelne i nieprzejrzyste dla
operacji zwiazanych wlasnie z nestingiem.
Jacek
>
> sparrow
>
> -----
> Wysłano za pośrednictwem WWW.CAD.PL (http://www.cad.pl)
> Książka o AutoCAD 2002 PL: http://helion.pl/url29I~ac22pl
Oryginał był/jest anglojęzyczny, mimo że Reini Urban jest austriakiem,
oczywiście.
: Jedna uwaga:
: "
: Ten artykuł, zawartość oraz przykłady kodu są dostarczone w niniejszej
: formie, bez żadnych wyrażonych lub domyślnych gwarancji.
: "
: Jepiej brzmi " lub dorozumianych gwarancji".
Dzięki za uwagę. Nie znam żargonu prawniczego. Pierwszy raz się
spotkałem z czasownikiem "dorozumieć". Ciekawe...
W oryginale jest "without any expressed or implied warranty."
Jedno z tłumaczeń w/g (Wielki słownik angielsko-polski, Wydawnictwo
Philip Wilson, W-wa 95) brzmi:
"zrozumiały samo przez się". Dla mnie to synonim "domyślnego" .
: Mam pytanko, czy wydawnictwo Helion jedynie wydaje ksiazki,
Nie jestem przedstawicielem Helionu ;)
Ale odpowiedź brzmi: raczej nie (przynajmniej do tej pory). Oczywiście
korzystają z okazji i towarzyszą różnym imprezom organizowanym przez
sprzedawców oprogramowania (np. DYBY w Trójmieście).
: VBA skutecznie zastapi lispa, gdyż umozliwia pisanie iteracyjnego kodu
: do definiowania obiektow, a nie zagniezdzajacych sie struktur
: listowych/drzewiastych, ktore sa nieczytelne i nieprzejrzyste dla
: operacji zwiazanych wlasnie z nestingiem.
Nie zgadzam się z powyższym stwierdzeniem.
Raczej uważam że zanika (przynajmniej otencjalnie) różnica między kodem
aplikacji dla AutoCAD-a pisanymi w VisualLisp a VBA (i innych językach).
Wszystkie korzystają z tych samych metod i obiektów ActiveX/COM, a
różnice składni są marginalne.
Ale nie ciągnijmy już tego wątku (i tak chyba byliśmy blisko rekordu
długości). Nie ma sensu toczyć tutaj batalii o wyższości jednych swiąt
(języków programowania) nad innymi.
Dokladnie.
Tyle ze chcialem ci zwrocic uwage, ze w tym samym poscie sie nie
zgadzasz, a zaraz potwierdasz
Struktura programow lispo-podobnych nigdy sie nie zmieni w zakresie
dostepu do bazy danych i ich listowej/drzewiastej struktury.
Aplikacje z wykorzystaniem metod i obiektow ActiveX to wlasnie inasz
inszosc i wlasnie programowanie iteracyjne w odwroznieniu od
rekunrencyjnego, prezentowanego przez aplikacje lispo-podobne.
To struktura danych wymusza skladnie jezyka programowania a nie
odwrotnie.
Jezeli sie uwolnimy od struktur listowych to struktura i skladnia plikow
opisujacych obiekty cadowskie
bedzie przejrzysta i czytelna.
Procedury rekursywne i struktury drzewiaste byly modne gdy pamiec
komputerowa byla bardzo droga
ale dzisiaj mozemy budowac rekordy skladajace sie z wielu pol i stosowac
optymalizacje wielkosci bazy danych, wprowadzajac strukture dynamicznych
rekordow, czyli takich ktore nie zawierajaw pol pustych.
Zatem to nie jest dyskusja o wyzszosci , ani nizszosci,
ale o niedogodnosci operacji na strukturach listowych, ich modyfikacji,
ekstracji informacji i wizualizacji.
Na ten temat pisalem prace wiele lat temu i gdyby od poczatku stosowac w
autocadzie iteracyjne struktury danych to tak pisanie nakladek, jak i
operacje na obiektach bylyby trywialne, gdyz czytelne przez wiekszosc
database engines.
Ze zrodel ktore wskazales wynika dla mnie, ze o ile samo projektowanie
jest rozumiane jako intuicyjne to
juz autocadowe jest zamoograniczajace i np. o ile zaprojektowanie
instalacji c.o. pod autocadem
jest realne, to aby zasymulowac prace instalacji i obliczyc rozklad
energii, obliczyc temperature grzejnikow, wielkosci przeplywow, dobrac
pompe, moc kotla to juz trzeba uzyc lub napisac nowa , duza aplikacje,
jakkolwiek taka sama instalacje mozna obliczac tradycyjnie i sprawnie, o
ile tylko
nie stanowi samego projektu w formie elektronicznej.
To jest wlasnie to co napisalem,
ze operacje graficzne na obiektach i obiektach zgrupowanych, nie
generuja operacji symbolicznych
na ich opisach, wlasciwosciach np. grupy obiektow.
I jeszcze prosciej. Dla cada 3 odcinki odpowiednio ulozone na
plaszczyznie nie zostana od razu rozpoznane
jako trojkat rownoboczny i nie zostanie dodana nowa wlasciwosc nowego ,
tak zbudowanego obiektu, a mianowicie powierzchnia.
Dla cada 10.000 cegiel w magazynie czy wmurowanych na placu budowy, z
ktorych zbudowano domek,
to nadal cegly, a nie dom.
Czyli nie ma modulu myslenia abstrakcyjnego typu generalizowanie i
budowanie obiektow zlozonych, ktorych wlasciwosci sa definiowane
dynamicznie.
Jacek
[biiig ciach....] I tu Cię w końcu przywialo Expierdzie? Rzuć ty te
najoptymalniejsze na świecie rozkroje w diabły i wyprodukuj CADMARZENIE -
zapisuję się na pierwszego betatestera . Zbrzydło mi 7 lat cadowania w AC
takim "ćwierćintelygentnym", bezparametrycznym i w ogóle pogadać z nim nie
można....Jak coś takiego można jeszcze rozwijać i liczyć, że ktoś to kupi i
będzie chciał na tym pracować. Aha przemyśl jeszcze raz to gadanie do
komputera, bo to przeszkadza w pracy zespołowej - może by tak bezpośrednio
dekodować bioprądy? Tak, takie gadanie jest zbyt niebezpieczne - wyobraź
sobie takiego cadmana po imieninach - po kielichu mu odbije , stanie toto na
środku pracowni, wydrze się na niewinne 10 komputerów -"Wytrzeć wszystko!!!"
, one potulnie "Are you sure?" On "Tak!!!" i co dalej? Backup był ze dwa
tygodnie wstecz. Totalna klęska.
:)))
--
Pozdrawiam - Krzysiek
________________________________________________________
http://www.polbox.com/m/mazzi - programowanie AutoCADa
Tez bym tak chcial, ale do kilku innych aplikacji i SO ;-)