Forum użytkowników programów ZWCAD, KOMPAS-3D, Scan2CAD, PDF2CAD Strona Główna Forum użytkowników programów ZWCAD, KOMPAS-3D, Scan2CAD, PDF2CAD
Forum CAD.

FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  GrupyGrupy
RejestracjaRejestracja  ZalogujZaloguj

Poprzedni temat «» Następny temat
VBA i LISP - zamykanie rysunków, wybór i sortowanie obiektów
Autor Wiadomość
jureko

Dołączył: 20 Cze 2008
Posty: 20
Skąd: Kraków
Wysłany: Czw Kwi 08, 10 15:00   VBA i LISP - zamykanie rysunków, wybór i sortowanie obiektów

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?:
Kod:

    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
 
     
jureko

Dołączył: 20 Cze 2008
Posty: 20
Skąd: Kraków
Wysłany: Pią Kwi 09, 10 12:12   Re: zamykanie zwcad z VBA

jureko napisał/a:
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ć?
 
     
dmatusz3
Site Admin

Pomógł: 22 razy
Dołączył: 20 Sty 2008
Posty: 606
Wysłany: Pią Kwi 09, 10 12:20   

W poniedziałek postaramy się zrobić testy skryptu.

Pozdrawiam
 
     
kruszynski

Pomógł: 16 razy
Dołączył: 02 Sty 2009
Posty: 286
Wysłany: Pon Kwi 12, 10 07:23   

Witam
Sprawdziliśmy ten skrypt i rzeczywiście jest taki problem.
W wersji 2008 VBA nie było jeszcze dopracowane.
 
     
jureko

Dołączył: 20 Cze 2008
Posty: 20
Skąd: Kraków
Wysłany: Wto Kwi 13, 10 11:41   

kruszynski napisał/a:
Witam
Sprawdziliś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:
Kod:
 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:
Kod:
Public member 'TextString' on type 'IIcadLine' not found.

Czyli zaznacza linie a miał tylko tekst...
 
     
kruszynski

Pomógł: 16 razy
Dołączył: 02 Sty 2009
Posty: 286
Wysłany: Wto Kwi 13, 10 12:13   

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
 
     
jureko

Dołączył: 20 Cze 2008
Posty: 20
Skąd: Kraków
Wysłany: Wto Kwi 13, 10 12:51   

kruszynski napisał/a:
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.
 
     
jureko

Dołączył: 20 Cze 2008
Posty: 20
Skąd: Kraków
Wysłany: Czw Kwi 15, 10 14:54   

kruszynski napisał/a:
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.
 
     
kruszynski

Pomógł: 16 razy
Dołączył: 02 Sty 2009
Posty: 286
Wysłany: Pią Kwi 23, 10 12:42   

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

Dołączył: 20 Cze 2008
Posty: 20
Skąd: Kraków
Wysłany: Pią Kwi 30, 10 10:21   

kruszynski napisał/a:
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ć 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...
 
     
Assgarth 
programista

Pomógł: 2 razy
Dołączył: 26 Sty 2009
Posty: 120
Skąd: Poznań
  Wysłany: Wto Maj 25, 10 08:05   Kolejne błędne działanie funkcji

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
 
     
Assgarth 
programista

Pomógł: 2 razy
Dołączył: 26 Sty 2009
Posty: 120
Skąd: Poznań
  Wysłany: Wto Maj 25, 10 08:33   Jaki w tym cel?????????????

Post został ukryty, ponieważ zawierał reklamy, lub (i) był bez treści merytorycznej
 
     
Assgarth 
programista

Pomógł: 2 razy
Dołączył: 26 Sty 2009
Posty: 120
Skąd: Poznań
  Wysłany: Wto Maj 25, 10 08:41   Vports

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
 
     
kruszynski

Pomógł: 16 razy
Dołączył: 02 Sty 2009
Posty: 286
Wysłany: Sro Maj 26, 10 09:31   

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
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Strona wygenerowana w 0.3 sekundy. Zapytań do SQL: 10