vbamania.pl
login:
hasło:
 
  *Rejestracja *Zapomniane hasło
 Dziś jest niedziela, 13 maja 2024 roku.
Ustaw jako stronę startową Ulubione Napisz
PowrótPowrót do serwisu  RegulaminRegulamin rssRSS

  tytuł wątku:
Wątki dyskusji

Excel-->Autocad-->Excel


otwartyotwarty rozpoczął: Andrzej.T postów: 12



napisał: Andrzej.T
postów: 10


umieszczony:
26 sierpnia 2005
21:45

  
Sorry za monolog ale jeszcze kilka informacji do poprzedniego postu.
W katalogu tego programiku są pliki o rozszerzeniach:
-*.mnc, *.mnr, *.mns, *.mnu
-*.arx
-*.ltx
-4 pliki *.dll
-jakiś tam pliczek pomocy i parę nieznaczących dla sprawy

Na pewno podczas instalacji setup dokonuje zmiany w rejestrze windows i powoduje tzw. instalację programiku dla autocad LT.
Jest nawet dodatkowy plik exe którym można to zrobić później.

Najważniejszy jest chyba ten plik arx bo to bodajże aplikacja.

Teraz pytanie jak można sobie stworzyć taki plik arx albo skąd wiadomo jak ten programik został napisany tj. w czym ?

Jak by tylko coś było potrzebne z informacji to jestem na calQat@list.pl .

Dla przyzwoitości dopowiem, że nie interesuje mnie działanie na szkodę autorów programiku o którym napisałem.Nic nie chcę dekompilować ani naśladować.

Pozdr.
napisał: Andrzej.T
postów: 10


umieszczony:
26 sierpnia 2005
21:20

  
No i jakbym pisał sam sobie ale jestem samokrytyczny stąd dążenie do celu.

Znalazłem coś takiego http://www.aac-solutions.cz/en/excellink.asp#2000LT

Tam mają coś takiego:
1. dla AutoCad'a LT instaluję ich programik.Po otwarciu Autocad'a LT mam nowy pasek narzędzi z kilkoma funkcjami:
- wyciąg atrybutów z danego bloku do excela
- import danych z excela do Autocad'a tj. pozycje wcześniej odczytane do excela mogą być edytowane w excelu i po jednym kliknięciu na ikonkę w Autocad LT zmienione dane są zapisywane do danego bloku gdzie jest zmieniony atrybut.

Ja się pytam jak to możliwe ?
Działa to bez żadnego LT-extendera czy czegosik innego.

Wyciąg atrybutów do excela to tam zostawiam, ale ingerencja w dane Autocad'a z poziomu Excela to to o co mi chodziło.

Tylko teraz jak to jest zrobione ?
Jak to zrobić samemu ?

Autorzy za pełną wersję chcą chyba ze 150 dolców.

No i jak oni to zrobili ?

Pomóżta ludzie !!! na pewno wiecie o co biega jak tylko zerkniecie na to cudeńko.

Ratujta.
napisał: Andrzej.T
postów: 10


umieszczony:
26 sierpnia 2005
10:32

  
Owszem zgadzam się z Adminem co do okaleczenia wersji LT Autocada lecz jest jeszcze jeden wątek.

Wersja Autocada do 2002 LT ma to okaleczenie zrobione ale też kalecznie.
Wiedzą o tym użykownicy tych wersji Autocada oraz LT-extendera.
Otóż w wersji do 2002 LT pozostało bardzo dużo z pełnej wersji i autor LT-extendera to wiedział.
Być może to samo dotyczy tych obiektów i klas ???

Jakoś to rozwiązać muszę.Kiedy nie wiem ale będę walczył choćby nawet z wiatrakami.Chodzi o sam cel, a sposób może być w sumie dowolny.

Pozdrawiam i dzięki.
napisał: pil
postów: 154


umieszczony:
26 sierpnia 2005
08:33

  
Witam,
od dłuższego czasu przyglądam się Waszej dyskusji i chyba faktycznie się nie da, ale wpadł mi do głowy taki pomysł, że jeżeli coś ma być narysowane z poziomu Excela w Cadzie to można wykorzystać format rysunków *.dxf - jest to napewno dużo bardziej skomplikowane, ale do zrobienia. W sumie z dxf'a też można wiele wiadomości odczytać. DXF to nic innego jak plik tekstowy więc odczyt i zapis z VBA Excela jest dość prosty, a dokładna struktura jest opisana w pomocy Acad (nie wiem czy Lt, ale napewno w "dorosłym").
napisał: admin
postów: 613


umieszczony:
26 sierpnia 2005
05:09

  
Witam,

Admina to niełatwo jest rozdrażnić:D

No cóż, uupełnię swoją poprzednią wypowiedź. Chodziło mi o to, że choć dostępne są pliki z bibliotekami obiektów AutoCADaLT, to same klasy i biblioteki, które się tam kryją dostępne nie są.
Jest to oczywiście celowe postępowanie programistów Autodesku, mające na celu ograniczenie funkcjonalnośći wersji LT.
(Oprócz braku wsparcia VBA i LISPa wersja LT jest pozbawiona możliwości rysowania 3D, co skutkuje niższą ceną.)

Brak edytora VBA to najmniejszy problem. Wówczas nie da się napisać makr i programów uruchamanianych z wnętrza aplikacji macierzystej, ale można to zrobić z poziomu innej aplikacji. A w zasadzie można by było w przypadku AutoCADaLT, gdyby złośliwie nie był okaleczony.
Problem polega więc nie na nieobecności plików z bbiliotekami, lecz na niedostępności tych obiektów z kodu VBA.

pozdrawiam i powodzenia
Admin
napisał: Andrzej.T
postów: 10


umieszczony:
25 sierpnia 2005
13:16

  
Drogi Adminie !

No to teraz zupełnie nie kumam.
1.Otwieram nowy projekt w edytorze VBA Excela.
2.W menu tools/references mam w pozycji Available References pozycję o której pisałem: AutoCAD LT 2000i Object Library.
3.Zaznaczam / wybieram / tę bibliotekę obiektów.
4.W przeględarce obiektów mam wszystkie obiekty wraz z opisami i to polskimi.

Więc to o co chodzi ? Po co exploarator baz bibilotek innych aplikacji pokazuje mi taką bazę albo po co AutoCAD LT udostępnia ją skoro nie jest niby do zautomatyzowania.

Dalej, bo wydaje mi się że moja intencja nie została zrozumiana.

Ja nie chcę pisać makr dla Autocad'a bo nie ma edytora VBA w wersji LT.

CHCĘ dostać się do wnętrza Autocada LT z poziomu Excela.
Pierwszy krok został poczyniony tj. wskazałem "references".

Może coś zrobiłem źle, że ten z get.distance nie działa.Może ktoś ma Autocad'a LT i potwierdzi że te obiekty Autocad'a widoczne z poziomu VBA Excela to po prostu śmieci nieużyteczne.

Jednocześnie wyjaśniam,że nie w mojej intencji drażnić Admina, tylko ostatniej wypowiedzi albo nie zrozumiałem albo nie wiem co stąd kolejny mój kamień mam nadzieję nie w błoto.
napisał: admin
postów: 613


umieszczony:
23 sierpnia 2005
21:27

  
Cytat:
W menu tools/references -edytora VBA EXcela- mam dostęp do biblioteki Autocad'a tzn AutoCAD LT 2000i Object Library.

Że makro wprost na gołym Autocad Lt nie poleci to jasna sprawa, ale czemu nie można uzyskać dostępu do obiektów Autocad LT skoro jest to co opisałem wyżej to nie rozumiem.

Sorry,że ostatnie info Admina mi nie wystarczy ale płakać mi się chce bo miało być tak pięknie.


No niestety. Nie da się i już.
Gdyby klasy obiektów były dostępne z poziomu edytora VBA innej aplikacji, to byłoby możliwe pisanie makr VBA dla AutoCADzieLT.

Zobacz na program LTExtender, ale z tego co wiem, nie umożliwia on obsługi VBA, tylko LISP.

pozdrawiam.
napisał: Andrzej.T
postów: 10


umieszczony:
23 sierpnia 2005
19:36

  
W menu tools/references -edytora VBA EXcela- mam dostęp do biblioteki Autocad'a tzn AutoCAD LT 2000i Object Library.

Że makro wprost na gołym Autocad Lt nie poleci to jasna sprawa, ale czemu nie można uzyskać dostępu do obiektów Autocad LT skoro jest to co opisałem wyżej to nie rozumiem.

Sorry,że ostatnie info Admina mi nie wystarczy ale płakać mi się chce bo miało być tak pięknie.
napisał: admin
postów: 613


umieszczony:
23 sierpnia 2005
19:19

  
Witam,

Niestety AutocAD LT nie udostępnia interfejsu automatyzacji.
Innymi słowy makra w LT nie działają, nie da się także sterować Academ z poziomu innej aplikacji.
napisał: Andrzej.T
postów: 10


umieszczony:
23 sierpnia 2005
14:41

  
Już myślałem, że zadziała ale wywalił mi excel tylko błąd:
Runtime error '430'
Class does not support Automation or does not support expected interface.
Dokładnie to staje na lini kodu w którym jest polecenie pierszej ingerencji w pracę autocad'a lt, bo otwierać nowy dokument oczywiście próbuje.
Wskazałem oczywiście żeby aktywne były dla VBA biblioteki o których pisałem wcześniej czyli external reference 2000i lt autocad.

Czy to ma oznaczać, że nic z tego nie będzie ?

A może jest jakiś porostszy kod, który umożliwi wyeliminować jakiekolwiek wątpliwości i pozwoli stwierdzić czy możliwa jest komunikacja excela z autocad lt ?
napisał: pil
postów: 154


umieszczony:
22 sierpnia 2005
07:34

  
Wydaje mi się, że tak to mogłoby wyglądać :
Sub cmdPobierz_Kliknięcie()

Dim Acad As AcadDocument
Dim Odleglosc As Double

'Uruchomienie AutoCada z poziomu Excela
Set Acad = New AutoCAD.AcadDocument
Acad.SaveAs ("c:\test.dwg")

Acad.Activate

Odleglosc = Acad.Utility.GetDistance(, "wskaż punkty")

Acad.Close

MsgBox "Wskazana odleglosc : " & Odleglosc

End Sub


ale niestety nie mam zielonego pojęcia, czy zadziała w Lt.
napisał: Andrzej.T
postów: 10


umieszczony:
19 sierpnia 2005
20:20

  
Mam Excela i Autocad'a w wersji LT a więc bez edytora VBA.
W menu tools/references -edytora VBA EXcela- mam dostęp do biblioteki Autocad'a tzn AutoCAD LT 2000i Object Library.
Chciałbym napisać kod w edytorze VBA Excela, który np. uruchamiał by funkcję pobierania odległości po wskazaniu na ekranie roboczym Autocad'a wymaganych 2 punktów.
Jakie to są metody czy obiekty to wiem bez względu na małą jeszcze znajomość całej nomenklatury VBA.
Chodzi mi raczej o samą możliwość czy tak się da ?


<-wstecz  1  dalej->
wszystkich stron: 1


Sortuj posty: z
Warning: Unknown: write failed: Disk quota exceeded (122) in Unknown on line 0 Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0