jureko
-
Postów
20 -
Dołączył
-
Ostatnia wizyta
Odpowiedzi opublikowane przez jureko
-
-
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.
-
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.
-
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:
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...
-
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ć?
-
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
-
witam,
czy w zwcad moge zamienić powierzchnię (edgesurf utworzony z 4 splinów) na bryłę? Chodzi o pogrubienie ew. wyciągnięcie. Utknąłem z tym a bardzo mi zależy.
-
witam,
można wykluczyć operacje zoomowania z undo?
Steruje tym jakaś zmienna?
-
Witam,
jak rozumiem IFC to format Archicada.
Pozdrawiam
Nie, to taki ogólny format do wymiany:
http://en.wikipedia.org/wiki/Industry_Foundation_Classes
--
jureko
-
witam,
czy zwcad 2009 potrafi wyeksportować dane (bryły 3D) w formacie IFC?
-
witam,
próbuję połączyc się przez OLE z Openoffice do zwcad. Trochę mam z tym problemów niestety - chciałbym otworzyć każdy plik z katalogu i pobrać z niego potrzebne informacje. Połączenie mi się udało, jakieś próbne wyswietlanie danych z zwcad działa. Natomiast otwieranie plików i robienie w nich czegokolwiek to trochę trudna sprawa dla mnie. Pomógłby mi ktoś z tym tematem?
Łączę się tak:
Sub zwConnect 'połaczenie z zwcad Dim OleService1 As Object Dim zwApp, zwdwg As Object OleService1 = createUnoService("com.sun.star.bridge.OleObjectFactory") zwApp = OleService1.CreateInstance("Zwcad.application") zwApp.Visible = False MsgBox zwApp.FullName 'to dziala zwdwg = zwApp.Documents zwApp.Documents.Open("c:\ole.dwg") 'zwdwg.Close 'zwApp.Quit
no a w pliku chce zrobić coś w stylu:
Sub totalnumber() 'define Dim total As Double total = 0 'Create a set Dim ssetObj As ZwcadSelectionSet Set ssetObj = Thisdocument.SelectionSets.Add("TEST_SSET") 'use Filters to get text Dim Ftype(2) As Integer Dim Fdata(2) As Variant Ftype(0) = 0 Fdata(0) = "text" Ftype(1) = 8 Fdata(1) = "teksty" Ftype(2) = 62 Fdata(2) = 4 Dim mode As ZcSelectionSetType mode = zcSelectionSetAll ssetObj.Select zcSelectionSetAll, , , Ftype, Fdata 'Determine the text whether to be digital For i = 0 To ssetObj.Count - 1 If IsNumeric(ssetObj.Item(i).TextString) Then total = total + ssetObj.Item(i).TextString Activedocument.Utility.Prompt ssetObj.Item(i).TextString & vbCrLf End If Next i ' delete set ssetObj.Delete ' output the sum Activedocument.Utility.Prompt "suma " & total End Sub
Pewnei w MSoffice z jego VBasic byłoby mi łatwiej ale akurat używam OOffice...
--
pozdrawiam
-
Przepraszam, mój błąd, pisałem to z pamięci.
ssetObj.Select mode, , , Ftype, Fdata
Tak powinno być dobrze. Różnica jest tylko w 2 przecinkach, ale bez nich kompilator traktuje zmienne filtrów jako pukty.
:), dzięki działa. Chyba bym na to nie wpadł.
--
pozdrawiam
jureko
-
ssetObj.SelectOnScreen Ftype, Fdata proszę zamienić na :
ssetObj.Select zcSelectionSetAll Ftype, Fdata
mam tak:
Dim mode As ZcSelectionSetType
mode = zcSelectionSetAll
ssetObj.Select mode, Ftype, Fdata
i niestety dalej sa błędy kompilatora, nie wiem co jest grane. Znalazłem tez przed chwila post z lutego w którym był podobny problem, ale 'u mnie nie działa' (:.
Dołączam przykładowy plik i makro w zipie.
-
witam,
przerobiłem sobie makro z przykładów, kod wklejam poniżej. Niestety nie umiem dojść do żebym nie musiał wskazywać oknem elementów (czyli SetAll zamiast selectOnSreen). ciągle mam jakiś błąd. Może mógłby mi ktoś z Was pomóc?
Sub totalnumber()
'define
Dim total As Double
total = 0
'Create a set
Dim ssetObj As ZwcadSelectionSet
Set ssetObj = Thisdocument.SelectionSets.Add("TEST_SSET")
'use Filters to get text
Dim Ftype(2) As Integer
Dim Fdata(2) As Variant
Ftype(0) = 0
Fdata(0) = "text"
Ftype(1) = 8
Fdata(1) = "teksty"
Ftype(2) = 62
Fdata(2) = 4
'Dim mode As ZcSelectionSetType
'mode = zcSelectionSetAll
ssetObj.SelectOnScreen Ftype, Fdata
'Determine the text whether to be digital
For i = 0 To ssetObj.Count - 1
If IsNumeric(ssetObj.Item(i).TextString) Then
total = total + ssetObj.Item(i).TextString
Activedocument.Utility.Prompt ssetObj.Item(i).TextString & vbCrLf
End If
Next i
' delete set
ssetObj.Delete
' output the sum
Activedocument.Utility.Prompt "suma " & total
End Sub
-
witam,
może ktoś będzie wiedział - można jakimś programem zewnętrznym 'podłączyć' się do zwcada i zczytać jakieś wartości? Kiedyś robiłem prosty programik w delphi i podłączałem się przez OLE z autocadem. Można zrobić coś podobnego z zwcad?
-
witam,
może ktoś z Was trafił na nakładkę/lispa do robienia zestawień stali zbrojeniowej? Instalowałem tą czeską która gdzieś tu była opisywana, ale ciężko mi się tam dopatrzeć zestawień...
-
witam,
czy w zwcad jest odpowiednik komendy filtr (filter) czy trzeba sobie filtrować lispem? Szukam szukam i nie mogę znaleźć nic oprócz qselect.
-
wczoraj kolega miał taki problem w acad2008. Pomogło rozbicie źródłowych obiektów. Dopiero wtedy wklejał własciwe elementy.
W zwcadzie nie udało mi się odtworzyć takiego błedu.
--
jureko
-
spróbuj zrobić przed wklejeniem 'purge'.
W Acadzie zdarza się podobnie, jeżeli się właśnie nie wyczyści z nieużywanych bloków.
--
jureko
-
witam,
mam problem z pamiętaniem ustawień arkusza przy przenoszeniu rys. miedzy academ(2008lt) i zwcadem(2008i). Zrobiłem ploter o tej samej nazwie, papier nazywa się tez tak samo, ale niestety otwierając plik zapisany w innym prog. nie są pamiętane ustawienia do wydruku. Czy ten problem jest zanny czy występuje tylko u mnie, ew. jak sobie z tym poradzić?
--
jureko
VBA i LISP - zamykanie rysunków, wybór i sortowanie obiektów
w ZWCAD i ZWCAD+ 2012
Opublikowano
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...