McArti Opublikowano 4 Marca 2008 Zgłoś Udostępnij Opublikowano 4 Marca 2008 radość i rozczarowanie :P VB jest i działa. Składnia obiektu prawie taka sama ALE... niestety parametry punktu procedurom przekazuje sie przez obiekt punktu ZwcadPoint a nie przez tablice jak w AutoCADzie. Niewiem dlaczego zostało to tak rozwiązane. Licencja Autodesku? Zablokowało to automatyczne przekładanie makr z AutoCada. troche włosów z głowy wyrwałem no ale trzeba programy przerabiac i tyle. Moje pytania są takie: Jak należy uzywać tych punktów czy wszystkie punkty musza nalezeć do kolekcji ZwcadPoints czy mogą istnieć osobno? Jak poza kolekcja wytworzyć obiekt ZwcadPoint? Czy po wykonianiu AddLine można legalnie wywalić z kolekcji punkty na podstawie, których została stworzona linia? Jakie jest wogóle znaczenie tej kolekcji w Objekcie ZwCAD??? Czy gdzieś mozna znaleźc example do Zwcad VB? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
McArti Opublikowano 4 Marca 2008 Autor Zgłoś Udostępnij Opublikowano 4 Marca 2008 to sobie narazie sam odpowiem :wink: wystarczy postawić goły obiekt: Dim punkt As New ZwcadPoint potem juz można np. punkt.x=2 punkt.y=1 punkt.z=0 Thisdocument.ModelSpace.AddPointEntity punkt Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dmatusz3 Opublikowano 4 Marca 2008 Zgłoś Udostępnij Opublikowano 4 Marca 2008 Witam, postaram się ściągnąć przykładowy skrypt w VB, i wkleić go tutaj. Z tego co wiem: 1. thisdrawing w AC odpowiada thisdocument w ZW 2 acad musi być zmienione na zwcad, np: AutoCAD ZwCAD acadLine ----- zwcadLine acadArc ------ zwcadArc AcHatchStyle ----- - ZcHatchStyle AcHatchStyleIgnore -------zcHatchStyleIgnore AcHatchStyleNormal-------zcHatchStyleNormal AcHatchStyleOuter--------zcHatchStyleOuter Pozdrawiam Dariusz Matuszek Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dmatusz3 Opublikowano 5 Marca 2008 Zgłoś Udostępnij Opublikowano 5 Marca 2008 Zdobyłem taki mały skrypcik: Sub Circle200() Dim pt As New ZwcadPoint Dim Circleobj As ZwcadCircle pt(0) = 100: pt(1) = 100: pt(2) = 0 For i = 0 To 199 Set Circleobj = Thisdocument.ModelSpace.AddCircle(pt, i * 2) Circleobj.Update Next i Thisdocument.Regen Thisdocument.ActiveViewport.ZoomAll End Sub Pozdrawiam Dariusz Matuszek Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
McArti Opublikowano 5 Marca 2008 Autor Zgłoś Udostępnij Opublikowano 5 Marca 2008 Zdobyłem taki mały skrypcik: Dim pt As New ZwcadPoint pt(0) = 100: pt(1) = 100: pt(2) = 0 Pozdrawiam Dariusz Matuszek WIELKIE DZIEKI!!!!!!!! to dość dla mnie sensacyjne odkrycie, że obiekt ZwcadPoint indeksuje jako tablica! czyli własciwie poza deklaracją zmiennych nic sie nie zmienia w stosunku do AutoCADa no REWELACJA :shock: :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
McArti Opublikowano 8 Marca 2008 Autor Zgłoś Udostępnij Opublikowano 8 Marca 2008 no niestety nie jest tak rózowo jednak wiele metod obiektów zmienia swoja składnię z tablic na obiekty co pociaga za saobą sporo perturbacji. mam prosbe do admina o prawidłową składnie: AddItems w clasie ZwcadSelectionSet. browser pisze, że to ma być: Sub AddItems(ArrayOfEntities) najlepiej jakby admin pokazał jak sie haczuje: poniższa procedura sie wykrzacza własnie na AddItems Sub haczowanie() Dim tpline As New ZwcadPoints Dim thaczouter(0 To 0) As ZwcadLWPolyline Dim ZwSelSet As ZwcadSelectionSet Dim SeedPoints As New ZwcadPoints tpline.Add 0, 0, 0 tpline.Add 5, 0, 0 tpline.Add 5, 10, 0 tpline.Add 0, 10, 0 ZwCAD.Documents.Add "zwcadiso.dwt" Set thaczouter(0) = Thisdocument.ModelSpace.AddLightWeightPolyline(tpline) thaczouter(0).Closed = True Set hacz = Thisdocument.ModelSpace.AddHatch(0, "CONC", True) Set ZwlSelSet = Thisdocument.SelectionSets.Add("d") ZwSelSet.AddItems thaczouter SeedPoints.Add 0, 0, 0 hacz.ApplyHatch ZwSelSet, SeedPoints ZwSelSet.Erase SeedPoints.RemoveAll End Sub Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dmatusz3 Opublikowano 10 Marca 2008 Zgłoś Udostępnij Opublikowano 10 Marca 2008 postaram się we wtorek coś wkleić. Pozdrawiam Dariusz Matuszek Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
McArti Opublikowano 12 Marca 2008 Autor Zgłoś Udostępnij Opublikowano 12 Marca 2008 przepraszam najmocniej :P macro które napisałem działa dobrze tylko występuje jedna literówka! Set Zw...l....SelSet = Thisdocument.SelectionSets.Add("d") to "l" zawiniło ps. jednak zgłaszam błąd działania obiektu SelectionSet. Name zawiera tylko jedną literę z nadanej pierwotnie nazwy. wykonanie poniższego makra pokazuje błąd: Sub NazwaSelekcji() MsgBox Thisdocument.SelectionSets.Add("asdfgh").Name End Sub okienko powinno wyswietlić "asdfg" a pokazuje tylko "a" Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dmatusz3 Opublikowano 12 Marca 2008 Zgłoś Udostępnij Opublikowano 12 Marca 2008 drobiazg :-) wysłałem makro do supportu. Myślą tam nad nim. :-) Napiszę im o tej literówce i problemie z SelectionSet. A tak na marginesie to otrzymałem listing makra do obliczania pola powierzchni wskazanego elementu. Jakby się przydał to mogę wkleić. :?: Pozdrawiam Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
McArti Opublikowano 13 Marca 2008 Autor Zgłoś Udostępnij Opublikowano 13 Marca 2008 najbardziej to niech mysla nad Xrefami drzewiastymi. ja licze na jakąś nowa kompilacje ;) w tym wzgledzie, bo tak zostać nie może. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
angelixx Opublikowano 13 Marca 2008 Zgłoś Udostępnij Opublikowano 13 Marca 2008 ja chętnie reflektuję na obliczanie powierzchni :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
droem Opublikowano 17 Marca 2008 Zgłoś Udostępnij Opublikowano 17 Marca 2008 ja chętnie reflektuję na obliczanie powierzchni :D Witam wszystkich. I ja też reflektuję :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dmatusz3 Opublikowano 17 Marca 2008 Zgłoś Udostępnij Opublikowano 17 Marca 2008 Witam, wklejam go, choć przyznam, że nie testowałem go czy działa. :oops: Ale nawet gdyby, to i tak jest dużo elementów które można przeanalizować. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'Calculate the Area of selected-Entity ' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Public Sub cArea() On Error GoTo ErrorHandler ' Define Dim PtObj As New ZwcadPoint Dim strPt As String Dim i As Integer Dim dblArea As Double dblArea = 0 ' Get Num of Entity in the ModelSpace Dim lngCount As Long lngCount = Thisdocument.ModelSpace.Count 'Get the current object types of the created borders (0 is RegionŁ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
banseno Opublikowano 20 Marca 2008 Zgłoś Udostępnij Opublikowano 20 Marca 2008 Jakie powierzchnie chcemy liczyc i w jaki sposób, to może cos poradzę? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi