jureko Opublikowano 8 Kwietnia 2010 Zgłoś Udostępnij Opublikowano 8 Kwietnia 2010 witam, w jaki sposób zamykać rysunki i program z VBA? Robię sobie program który podłącza się przez ole , otwiera rysunek ale nie radzi już z zamykaniem..w czym tkwi problem?: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim oZwcad As ZwCAD.ZwcadApplication oZwcad = CreateObject("Zwcad.Application") MsgBox("tworze obiekt zwcada") oZwcad.Application.Documents.Open("c:\ole.dwg") MsgBox("document " & oZwcad.Caption & " is active.") oZwcad.Application.Activedocument.Close(False) oZwcad.Quit() End Sub Ciągle wiesza mi się na tym zamykaniu. wewnątrz zwcada w vba działa dobrze. Acha, chodzi o Zwcad 2008i Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
jureko Opublikowano 9 Kwietnia 2010 Autor Zgłoś Udostępnij Opublikowano 9 Kwietnia 2010 witam,Ciągle wiesza mi się na tym zamykaniu. wewnątrz zwcada w vba działa dobrze. Acha, chodzi o Zwcad 2008i Spróbowałem sobie jeszcze zainstalować testowa wersję zwcada 2010 - i tu o dziwo wszystko działa dobrze. Pewnie jakaś niedoróbka w wersji 2008...można coś z tym zrobić? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dmatusz3 Opublikowano 9 Kwietnia 2010 Zgłoś Udostępnij Opublikowano 9 Kwietnia 2010 W poniedziałek postaramy się zrobić testy skryptu. Pozdrawiam Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kruszynski Opublikowano 12 Kwietnia 2010 Zgłoś Udostępnij Opublikowano 12 Kwietnia 2010 Witam Sprawdziliśmy ten skrypt i rzeczywiście jest taki problem. W wersji 2008 VBA nie było jeszcze dopracowane. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
jureko Opublikowano 13 Kwietnia 2010 Autor Zgłoś Udostępnij Opublikowano 13 Kwietnia 2010 WitamSprawdziliśmy ten skrypt i rzeczywiście jest taki problem. W wersji 2008 VBA nie było jeszcze dopracowane. Dziękuję za sprawdzenie, już w kilku miejscach natrafiłem na podobne problemy... Natomiast w wersji 2010 też mam problem - o ile w samym zwcadzie wywołanie komendy w stylu: ssetObj.Select(mode, , , 0, "text") For i = 0 To ssetObj.Count - 1 If IsNumeric(ssetObj.Item(i).TextString) Then total = total + ssetObj.Item(i).TextString oZwcad.Activedocument.Utility.Prompt(ssetObj.Item(i).TextString & vbCrLf) End If Next i dziaął poprawnie to przy podłączaniu się przez ole wygląda na to że nie działa filtrowanie - dostaję błąd: Public member 'TextString' on type 'IIcadLine' not found. Czyli zaznacza linie a miał tylko tekst... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kruszynski Opublikowano 13 Kwietnia 2010 Zgłoś Udostępnij Opublikowano 13 Kwietnia 2010 Proszę te dane filtrów wpisać do tablicy: Dim FilterType(0) As Integer Dim FilterData(0) As Variant FilterType(0) = 0 FilterData(0) = "Text" ssetObj.Select mode, , , FilterType, FilterData P.S. Pisane z głowy czyli z niczego, mogą być literówki Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
jureko Opublikowano 13 Kwietnia 2010 Autor Zgłoś Udostępnij Opublikowano 13 Kwietnia 2010 Proszę te dane filtrów wpisać do tablicy: Dim FilterType(0) As Integer Dim FilterData(0) As Variant FilterType(0) = 0 FilterData(0) = "Text" ssetObj.Select mode, , , FilterType, FilterData P.S. Pisane z głowy czyli z niczego, mogą być literówki Wpisywałem do tablicy, wpisywąłem bezpośrednoi i ciągle wychodzi na to że mam zaznaczone linie. ale może przejrzę sobie czy się coś nei pozmieniało w stosunku do 2008i, bo moze tam jest problem. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
jureko Opublikowano 15 Kwietnia 2010 Autor Zgłoś Udostępnij Opublikowano 15 Kwietnia 2010 Proszę te dane filtrów wpisać do tablicy: Wychodzi na to że w 2010 sytuacja z VBA poprawiła się ale częściowo - przy dostępie z zewnątrz przez OLE nie działa filtrowanie selekcji, zaznacza wszystko jak leci nie patrząc na zdefiniowane w tablicach filtry. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kruszynski Opublikowano 23 Kwietnia 2010 Zgłoś Udostępnij Opublikowano 23 Kwietnia 2010 Witam Konsultowałem tą sprawę z producentami ZWCADa i odpowiedzieli że poprawy format powinien być następujący: ssetObj.Select mode, point1, point2, 0, "Text" Różnicą jest , że tutaj jest bez nawiasów i tak powinno być. Może też mieć zanczenie że Text jest z dużej litery. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
jureko Opublikowano 30 Kwietnia 2010 Autor Zgłoś Udostępnij Opublikowano 30 Kwietnia 2010 WitamKonsultowałem tą sprawę z producentami ZWCADa i odpowiedzieli że poprawy format powinien być następujący: ssetObj.Select mode, point1, point2, 0, "Text" Różnicą jest , że tutaj jest bez nawiasów i tak powinno być. Może też mieć znaczenie że Text jest z dużej litery. Ale tu nie chodzi o to że mam problem z formatem polecenia. Wcześniej pisałem że jest problem z zamykaniem plików jeżeli łącze się przez OLE z własnego programu (pisze w VS 2008 express). W zwcad 2010 faktyczne zostało to poprawione, ale nie działają inne rzeczy dalej - patrz właśnie filtrowanie zaznaczenia. o ile w VBA w samym zwcad działa dobrze i filtruje, to jeżeli chcę to zrobić z zewnątrz to już się nie da, ręce opadają. Spróbuję zrobić wywołanie makra które mi zrzuci potrzebne dane do pliku tekstowego, no ale to już taka proteza... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Assgarth Opublikowano 25 Maja 2010 Zgłoś Udostępnij Opublikowano 25 Maja 2010 Witam, proszę dopisać do bug-list kolejną rzecz, a mianowicie błędnie działającą funkcję visual-lisp: vl-sort-i. Funkcja ta działa prawidłowo tylko w przypadku gdy sortowana lista ma więcej niż jeden element. W przypadku jednego elementu, zamiast zwracać (0), zwraca sam element. Na przykład: lista: ("jeden") (vl-sort-i '("jeden") '<) zwraca: ("jeden") a powinien (0) Nie odpowiadam na pytania typu "po co sortować listę jednoelementową?". Taki przypadek może wystąpić i również powinien działać! W AutoCAD ta funkcja działa bez zarzutu i zwraca, w wyżej opisanym przypadku, wartość prawidłową. pozdrawiam Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Assgarth Opublikowano 25 Maja 2010 Zgłoś Udostępnij Opublikowano 25 Maja 2010 Może mi administrator forum wytłumaczyć po co przeniósł mój wątek do innego tematu?? http://forum.projektuje.net/zamykanie-zwcad-z-vba-vt293.htm Ostatni wpis dotyczy zupełnie innego problemu!! W ten sposób nie ominie się problemu, a ukrywanie błędów niczego dobrego nie przynosi. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Assgarth Opublikowano 25 Maja 2010 Zgłoś Udostępnij Opublikowano 25 Maja 2010 Kolejna niezgodność z AutoCAD, to różnica w Model - Layout. Aby to sprawdzić, wystarczy narysować dowolny obiekt np. prostokąt w Modelu, a następnie przejść na Layout, gdzie nie ma rzutni, lub nawet jest rzutnia i wpisać polecenie: (ssget "_x" (list (cons 0 "LWPOLYLINE"))) Jak widać wynik = NIL ZwCAD w ogóle nie widzi obiektów utworzonych w Modelu, do czasu stworzenia rzutni i aktywowania jej! W AutoCAD istnieje cały czas do wszystkich narysowanych obiektów, bez względu czy użytkownik jest w Modelu czy Rzutni (bez jej aktywowania, a nawet jak nie ma Rzutni w ogóle). Jest to kolejna rozbieżność między tymi programami, która utrudnia tworzenie oprogramowania uniwersalnego na systemy CAD. pozdrawiam Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kruszynski Opublikowano 26 Maja 2010 Zgłoś Udostępnij Opublikowano 26 Maja 2010 Witam Przekazaliśmy problemy, które Pan zgłosił producentom ZWCADa. Rozwiązanie jest aktualnie opracowywane. W przyszłości jeśli interesowałby Pana status problemu, łatwiej będzie nam rozpoznać o co chodzi, jeśli posłuży się Pan numerem problemu. W przypadku ssget numer błędu to: 11761, natomiast w sprawie problemu z sortowaniem jednoelementowej listy, numer błędu to 12514 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi