_

zbiór wskazań zaznaczony polilinią

Forum poświęcone flagowemu produktowi oraz aplikacjom pochodnym Autodesku. To jedyne forum mające w tytule nazwę programu, a to ze względu na jego olbrzymią popularność w Polsce. Można tutaj umieszczać również posty z ogólnie pojętej tematyki "Kreślarskie 2D".

zbiór wskazań zaznaczony polilinią

Postprzez z » paź 15, 2009 01:43

Szukam procedury lispowej tworzącej zbiór wskazań obiektów przecinanych przez polilinię (coś na kształt fence), tzn rozmieszczam na rysunku obiekty, prowadzę przez nie polilinię, magiczną procedurą wskazuję polilinię i otrzymuję zbiór wskazań zawierający przecinane przez nią obiekty, oczywiście posortowane kierunkiem polilinii. Błąkają się po sieci procedury tworzące zbiór wskazań z obiektów zawartych wewnątrz polilinii, ale przecinanych ni huhu. Świtają mi w głowie różne pomysły typu przekazanie dla opcji fence wierzchołków polilinii ale za cienki jestem coby samemu to zrealizować. Co gorsze, fence sortuje zbiór w kolejności przebiegu płota dopiero od wersji 2k4 AC bodajże, a chciałbym działać na 2k2 do 2k10
z
 
Posty: 1950
Dołączył(a): cze 16, 2009 22:49

Re: zbiór wskazań zaznaczony polilinią

Postprzez kojacek » paź 15, 2009 09:48

z napisał(a):Szukam procedury lispowej tworzącej zbiór wskazań obiektów przecinanych przez polilinię (coś na kształt fence), tzn rozmieszczam na rysunku obiekty, prowadzę przez nie polilinię, magiczną procedurą wskazuję polilinię i otrzymuję zbiór wskazań zawierający przecinane przez nią obiekty, oczywiście posortowane kierunkiem polilinii. Błąkają się po sieci procedury tworzące zbiór wskazań z obiektów zawartych wewnątrz polilinii, ale przecinanych ni huhu. Świtają mi w głowie różne pomysły typu przekazanie dla opcji fence wierzchołków polilinii ale za cienki jestem coby samemu to zrealizować. Co gorsze, fence sortuje zbiór w kolejności przebiegu płota dopiero od wersji 2k4 AC bodajże, a chciałbym działać na 2k2 do 2k10

Na razie pierwsze "wejście". Tworzy zbiór wskazań przez "fence" po wierzchołkach polilinii - zatem segmenty łukowe traktowane są jako linie.
Wymagane dwa argumenty:
ep - ename > nazwa elementu lwpoly bedącej krawędzią
mode - jest T - sorujemy dla wersji niższych niż ac2004 (teraz uzywamy tylko NIL - bo sortuje)
Funkcja zwraca (posortowaną wg wskazań) listę ename
Wymaga mych 2 funkcji bibliotecznych: jk:SSX_SS->List i jk:DXF_mAssoc

wywołanie:
Kod: Zaznacz cały
(jk:SSX_SSbyPoly ep mode)
czyli np:
Kod: Zaznacz cały
(jk:SSX_SSbyPoly (car (entsel "\nPoly: ")) Nil)

Nad sortowaniem pomyślę. Pomysł jest taki (moze ktoś zasugeruj cos lepszego?):
1. Pobrane wierzcholki (punkty) dzielimy parami (1-2)(2-3)(3-itd)
2. dla kazdej pary robimy zbiór wskazań fence
3. i teraz są trzy opcje (dla kazdego segmentu)
a] nic nie ma
b] jest jeden obiekt
c] jest wiele obiektów
4. a] i b] trywialne, ale dla c] trzeba mierzyc odleglości od pierwszego punktu krawedzi
5. inny problem - obiekty zlozone (przechodzace przez np 2 i 5 segment polilinii)...
6) problemów może być wiecej
7) pobrane punkty układamy na jednej liście (rzecz jasna) ;)

Trzeba to wszystko jeszcze przemyśleć i wpisać pomiędzy nawiasy ;)

Póki co funkcja wygląda tak:

Kod: Zaznacz cały
(defun jk:SSX_SSbyPoly (ep mode / d p s c sl res)
  (setq d (entget ep))                            ; wez dxf-y
  (if
    (= (cdr (assoc 0 d)) "LWPOLYLINE")            ; czy lwpoly?
    (progn                                        ; tak
      (setq c (= 1 (logand 1 (cdr (assoc 70 d)))) ; zamknieta?
            p (jk:DXF_mAssoc 10 d)                ; punkty
      )
      (if c (setq p (append p (list (car p)))))   ; dodaj 1 (bo zamknieta)
      (if
        (not mode)                                ; nie sortujemy?
        (progn
          (if
            (setq s (ssget "_F" p))               ; zbior przez fence
            (progn
              (setq sl (Jk:SSX_SS->List s)        ; zbior -> lista
                    sl (vl-remove ep sl)          ; poly
                    res sl
              )
              res
            )
          )
        )
        (progn                                    ; sortujemy
          (princ "\nPracujemy nad tym ;)")        ; dopiero zrobimy
        )
      )
    )
    nil
  )
)


PS. aleś problem wymyślił ! Numerowanie krawędzią ? klikać się nie chce w robocie ? ;)


kojacek
Avatar użytkownika
kojacek
 
Posty: 5292
Dołączył(a): paź 03, 2005 20:17

Re: zbiór wskazań zaznaczony polilinią

Postprzez kojacek » paź 15, 2009 13:31

... wejście drugie...
Jest już sortowanie segmentami polilinii ale... nadal są kłopoty, nie ma sortowania na segmencie. To może (nie musi) zwrócić obiekty w innym porządku.

Kod: Zaznacz cały
(defun jk:SSX_SSbyPoly (ep mode / d p s c sl l lk i res)
  (setq d (entget ep))
  (if
    (= (cdr (assoc 0 d)) "LWPOLYLINE")
    (progn
      (setq c (= 1 (logand 1 (cdr (assoc 70 d))))
            p (jk:DXF_mAssoc 10 d)
      )
      (if c (setq p (append p (list (car p)))))
      (if
        (not mode) 
        (progn
          (if
            (setq s (ssget "_F" p))
            (progn
              (setq sl (Jk:SSX_SS->List s)
                    sl (vl-remove ep sl)
                    res sl
              )
              res
            )
          )
        )
        (progn
          (setq l (1- (length p)))
          (if
            (= 1 l)
            (setq lk (list (cons 0 p)))
            (progn
              (setq i 0)
              (while
                (/= i l)
                (setq lk (cons
                           (append
                             (list i)
                             (list (car p))
                             (list (cadr p))
                           )
                           lk
                         )
                      p (cdr p)
                      i (1+ i)
                )
              )
              (setq lk (reverse lk))
            )
          )
          (setq lk
            (mapcar
              '(lambda (% / u e)
                 (setq u
                   (ssget "_F"
                          (list (cadr %)(caddr %))
                   )
                 )
                 (ssdel ep u)
                 (if
                   (zerop (setq e (sslength u)))
                   (append % (list nil 0))
                   (append % (list u e))
                 )
               )
              lk
            )
            lk (vl-remove-if
                 '(lambda (%)(zerop (last %)))
                 lk
               )
            lk (mapcar
                 '(lambda (%)
                      (jk:SSX_SS->List (cadddr %))
                 )
                 lk
               )
            lk (apply 'append lk)
          )
          (if lk
            (setq s (jk:SSX_List->ss lk)
                  res (jk:SSX_SS->List s)
            )
            (setq res lk)
          )
          res
        )
      )
    )
    nil
  )
)


wywołanie:
Kod: Zaznacz cały
(jk:SSX_SSbyPoly (car (entsel)) T)


wymaga dodatkowo funkcji jk:SSX_List->ss :

Kod: Zaznacz cały
(defun jk:SSX_List->ss (l / ss)
  (setq ss (ssadd))
  (foreach e l (ssadd e ss))
)


kojacek
Avatar użytkownika
kojacek
 
Posty: 5292
Dołączył(a): paź 03, 2005 20:17

Re: zbiór wskazań zaznaczony polilinią

Postprzez badziewiak » paź 15, 2009 14:27

W VBA bym cos poradzil, bo mam to zrobione do numerowania blokow i tekstow znajdujacych sie pod linia, rozciagnieta miedzy dwoma punktami. Nie jest to jednak proste, a w lispie raczej ciezko bedzie dzialac, bo lisp nie przekazuje argumentow funkcji przez referencje, lecz przez wartosc (dlugie kopiowanie tablic podczas obrobki jednego elementu).
EDIT:Z grubsza zrobilem to tak:
1. W Biore obiekty ze zbioru wskazan. Bloki odpowiednio filtruje.
2. Kazdy element ze zbioru wskazan ma wyznaczony srodek i rozmiar (BoundingBox).
3. Do 3-wymiarowej tablicy upycham ObjectID, X srodka i Y srodka.
4. Sortuje wspolrzedne srodkow obiektow, ale nie bezposrednio w tablicach, lecz za pomoca tablic indeksow. Dzieki temu nie narusze zrodlowej. Robie to tak: Tworze osobna tablice indeksow dla wspolrz. X i Y srodkow obiektu.
5. Pobieram od uzytkownika 2 punkty. Wyznaczaja one odcinek, pod ktorym obiekty maja byc przetwarzane.
6. Sklecilem procedure b. szybkiego wybierania elementow mieszczacych sie w podanym zakresie. Polega to na tym, ze posortowana tablica wspolrzednych srodkow obiektow (X i Y) jest dzielona na pol. Brany jest srodkowy element i jest porownywany z pierwszym wskazanym punktem uzytkownika (wspolrz. X i Y). Jesli jest za maly, to lewa czesc tablicy jest odrzucana, a prawa czesc tablicy jest dzielona na pol i ta sama operacja wykonywana jest ponownie.
Analogicznie jest robione dla wspolrz. X i Y wiekszych od wspolrz. wskazanego punktu przez uzytkownika.
7. Punkt 6 jest powtarzany zarowno dla wspolrz. X jak i Y, porownywane sa srodki obiektow z obydwoma punktami wskazanymi przez uzytkownika. Dzieki temu mamy zawezony obszar poszukiwan do prostokata, rozciagnietego na przekatnej, wyznaczonej przez punkty wskazane przez uzytkownika.
8. Srodki zawezonego zbioru obiektow sa rzutowane analitycznie na odcinek wyznaczony przez punkty wskazane przez uzytkownika.
9. Sprawdzam, czy odleglosc od srodka obiektu do punktu wskazanego przez uzytkownika miesci sie w zalozonej tolerancji. Jesli nie, to sa odrzucane.
10. Sortuje zrzutowanye na odcinek srodkoi obiektow wg ich odleglosci od pierwszego wskazanego punktu przez uzytkownika, a zatem mamy osiagniety cel.
To naprawde dziala b. szybko.
Ostatnio edytowany przez badziewiak paź 15, 2009 14:52, edytowano w sumie 4 razy
Avatar użytkownika
badziewiak
 
Posty: 2260
Dołączył(a): paź 15, 2008 09:08
Lokalizacja: Chrząszczyżewoszyce powiat Łękołody :D

Re: zbiór wskazań zaznaczony polilinią

Postprzez kojacek » paź 15, 2009 14:48

badziewiak napisał(a):W VBA bym cos poradzil, bo mam to zrobione do numerowania blokow i tekstow znajdujacych sie pod linia, rozciagnieta miedzy dwoma punktami. Nie jest to jednak proste, a w lispie raczej ciezko bedzie dzialac, bo lisp nie przekazuje argumentow funkcji przez referencje, lecz przez wartosc (dlugie kopiowanie tablic podczas obrobki jednego elementu).

Lisp tez da rade :) Teraz jest juz posortowane po segmentach, i jest dość krótkie, spodziewałęm się że będzie więcej.
Dla kazdego segmentu natomiast mam dwa pomysły:
1) szukać przeciecia obiektu z linią segmentu + mierzenie odległości o pierwszego punktu... (takie sobie) ;)
2) metodą kolejnego dzielenia (na poł) segmentu "wyłapywać" kolejne obiekty (też takie sobie ?)
zobaczymy co się da zrobić.

ps. Zwróć uwagę że jest to sprawa raczej hobbystyczna, bo to jest dostosowanie do jakiś tam starych wersji Acad-a, na dziś wystarczy powyżej pokazana funkcja z argumentem Nil czyli coś 1/5 całości.

kojacek
Avatar użytkownika
kojacek
 
Posty: 5292
Dołączył(a): paź 03, 2005 20:17

Re: zbiór wskazań zaznaczony polilinią

Postprzez badziewiak » paź 15, 2009 15:20

kojacek napisał(a):
badziewiak napisał(a):W VBA bym cos poradzil, bo mam to zrobione do numerowania blokow i tekstow znajdujacych sie pod linia, rozciagnieta miedzy dwoma punktami. Nie jest to jednak proste, a w lispie raczej ciezko bedzie dzialac, bo lisp nie przekazuje argumentow funkcji przez referencje, lecz przez wartosc (dlugie kopiowanie tablic podczas obrobki jednego elementu).

Lisp tez da rade :) Teraz jest juz posortowane po segmentach, i jest dość krótkie, spodziewałęm się że będzie więcej.
Dla kazdego segmentu natomiast mam dwa pomysły:
1) szukać przeciecia obiektu z linią segmentu + mierzenie odległości o pierwszego punktu... (takie sobie) ;)
2) metodą kolejnego dzielenia (na poł) segmentu "wyłapywać" kolejne obiekty (też takie sobie ?)
zobaczymy co się da zrobić.

ps. Zwróć uwagę że jest to sprawa raczej hobbystyczna, bo to jest dostosowanie do jakiś tam starych wersji Acad-a, na dziś wystarczy powyżej pokazana funkcja z argumentem Nil czyli coś 1/5 całości.

kojacek
Punkt 1 mam zaimplementowany w sposob jak wyzej opisalem. Efekt jest b. dobry, pod warunkiem zrealizowania 6 punktu z mojego opisu (czyli w lispie raczej nie da rady).
Avatar użytkownika
badziewiak
 
Posty: 2260
Dołączył(a): paź 15, 2008 09:08
Lokalizacja: Chrząszczyżewoszyce powiat Łękołody :D

Re: zbiór wskazań zaznaczony polilinią

Postprzez kojacek » paź 15, 2009 15:57

badziewiak napisał(a):W VBA bym cos poradzil, bo mam to zrobione do numerowania blokow i tekstow znajdujacych sie pod linia, rozciagnieta miedzy dwoma punktami. Nie jest to jednak proste, a w lispie raczej ciezko bedzie dzialac, bo lisp nie przekazuje argumentow funkcji przez referencje, lecz przez wartosc (dlugie kopiowanie tablic podczas obrobki jednego elementu).
EDIT:Z grubsza zrobilem to tak:
1. W Biore obiekty ze zbioru wskazan. Bloki odpowiednio filtruje.
2. Kazdy element ze zbioru wskazan ma wyznaczony srodek i rozmiar (BoundingBox).
3. Do 3-wymiarowej tablicy upycham ObjectID, X srodka i Y srodka.
4. Sortuje wspolrzedne srodkow obiektow, ale nie bezposrednio w tablicach, lecz za pomoca tablic indeksow. Dzieki temu nie narusze zrodlowej. Robie to tak: Tworze osobna tablice indeksow dla wspolrz. X i Y srodkow obiektu.
5. Pobieram od uzytkownika 2 punkty. Wyznaczaja one odcinek, pod ktorym obiekty maja byc przetwarzane.
6. Sklecilem procedure b. szybkiego wybierania elementow mieszczacych sie w podanym zakresie. Polega to na tym, ze posortowana tablica wspolrzednych srodkow obiektow (X i Y) jest dzielona na pol. Brany jest srodkowy element i jest porownywany z pierwszym wskazanym punktem uzytkownika (wspolrz. X i Y). Jesli jest za maly, to lewa czesc tablicy jest odrzucana, a prawa czesc tablicy jest dzielona na pol i ta sama operacja wykonywana jest ponownie.
Analogicznie jest robione dla wspolrz. X i Y wiekszych od wspolrz. wskazanego punktu przez uzytkownika.
7. Punkt 6 jest powtarzany zarowno dla wspolrz. X jak i Y, porownywane sa srodki obiektow z obydwoma punktami wskazanymi przez uzytkownika. Dzieki temu mamy zawezony obszar poszukiwan do prostokata, rozciagnietego na przekatnej, wyznaczonej przez punkty wskazane przez uzytkownika.
8. Srodki zawezonego zbioru obiektow sa rzutowane analitycznie na odcinek wyznaczony przez punkty wskazane przez uzytkownika.
9. Sprawdzam, czy odleglosc od srodka obiektu do punktu wskazanego przez uzytkownika miesci sie w zalozonej tolerancji. Jesli nie, to sa odrzucane.
10. Sortuje zrzutowanye na odcinek srodkoi obiektow wg ich odleglosci od pierwszego wskazanego punktu przez uzytkownika, a zatem mamy osiagniety cel.
To naprawde dziala b. szybko.

:shock:
w tym VBA to naprawdę jest mordęga cokolwiek zrobić...
zobacz że w lisp-ie zadanie Z (dla AC 2k4+) to parę luźno zapisanych linijek (ach te stylowe wcięcia :) )...

kojacek
Avatar użytkownika
kojacek
 
Posty: 5292
Dołączył(a): paź 03, 2005 20:17

Re: zbiór wskazań zaznaczony polilinią

Postprzez badziewiak » paź 15, 2009 16:08

kojacek napisał(a):
badziewiak napisał(a):W VBA bym cos poradzil, bo mam to zrobione do numerowania blokow i tekstow znajdujacych sie pod linia, rozciagnieta miedzy dwoma punktami. Nie jest to jednak proste, a w lispie raczej ciezko bedzie dzialac, bo lisp nie przekazuje argumentow funkcji przez referencje, lecz przez wartosc (dlugie kopiowanie tablic podczas obrobki jednego elementu).
EDIT:Z grubsza zrobilem to tak:
1. W Biore obiekty ze zbioru wskazan. Bloki odpowiednio filtruje.
2. Kazdy element ze zbioru wskazan ma wyznaczony srodek i rozmiar (BoundingBox).
3. Do 3-wymiarowej tablicy upycham ObjectID, X srodka i Y srodka.
4. Sortuje wspolrzedne srodkow obiektow, ale nie bezposrednio w tablicach, lecz za pomoca tablic indeksow. Dzieki temu nie narusze zrodlowej. Robie to tak: Tworze osobna tablice indeksow dla wspolrz. X i Y srodkow obiektu.
5. Pobieram od uzytkownika 2 punkty. Wyznaczaja one odcinek, pod ktorym obiekty maja byc przetwarzane.
6. Sklecilem procedure b. szybkiego wybierania elementow mieszczacych sie w podanym zakresie. Polega to na tym, ze posortowana tablica wspolrzednych srodkow obiektow (X i Y) jest dzielona na pol. Brany jest srodkowy element i jest porownywany z pierwszym wskazanym punktem uzytkownika (wspolrz. X i Y). Jesli jest za maly, to lewa czesc tablicy jest odrzucana, a prawa czesc tablicy jest dzielona na pol i ta sama operacja wykonywana jest ponownie.
Analogicznie jest robione dla wspolrz. X i Y wiekszych od wspolrz. wskazanego punktu przez uzytkownika.
7. Punkt 6 jest powtarzany zarowno dla wspolrz. X jak i Y, porownywane sa srodki obiektow z obydwoma punktami wskazanymi przez uzytkownika. Dzieki temu mamy zawezony obszar poszukiwan do prostokata, rozciagnietego na przekatnej, wyznaczonej przez punkty wskazane przez uzytkownika.
8. Srodki zawezonego zbioru obiektow sa rzutowane analitycznie na odcinek wyznaczony przez punkty wskazane przez uzytkownika.
9. Sprawdzam, czy odleglosc od srodka obiektu do punktu wskazanego przez uzytkownika miesci sie w zalozonej tolerancji. Jesli nie, to sa odrzucane.
10. Sortuje zrzutowanye na odcinek srodkoi obiektow wg ich odleglosci od pierwszego wskazanego punktu przez uzytkownika, a zatem mamy osiagniety cel.
To naprawde dziala b. szybko.

:shock:
w tym VBA to naprawdę jest mordęga cokolwiek zrobić...
zobacz że w lisp-ie zadanie Z (dla AC 2k4+) to parę luźno zapisanych linijek (ach te stylowe wcięcia :) )...

kojacek
Punkty 6 i 7 mozna pominac, ale wtedy zlozonosc obliczeniowa bedzie lawinowo rosla w zaleznosci od ilosci elementow. Te punkty wstepnie odrzucaja te elementy, ktore na pewno sa poza zakresem przetwarzania. Procedurka z punktu 6 to byl moj strzal w 10, choc okazalo sie, ze identyczna metoda jest uzywana w informatyce, a wiec Chameryki nie odkrylem :)
Avatar użytkownika
badziewiak
 
Posty: 2260
Dołączył(a): paź 15, 2008 09:08
Lokalizacja: Chrząszczyżewoszyce powiat Łękołody :D

Re: zbiór wskazań zaznaczony polilinią

Postprzez z » paź 15, 2009 20:12

he, he
badziewiak napisał(a):a w lispie raczej ciezko bedzie dzialac,

kojacek napisał(a):w tym VBA to naprawdę jest mordęga cokolwiek zrobić..

Wiedziałem że konstruktywna wojna vba-lisp się z tego wykluje!
badziewiak, dzięki za zainteresowanie (tak, wiem, nietypowy temat pobudza badaczy do działania) jednakowoż staram się ograniczać używanie vba w ac w z powodu wycofywania się autodesku z jego implementowania w najnowszych wersjach . Może się okazać, że powrócą w przyszłości, ale czy to pewne? Wydaje mi się, że skupią się na .net. Szkoda tych wszystkich procedur vba.

kojacek napisał(a):PS. aleś problem wymyślił ! Numerowanie krawędzią ? klikać się nie chce w robocie ?
Jakąś okrutną niechęć czuję do klikania jak małpa, skoro mogę załatwić to samo inaczej (może nieraz dłużej ale sprytniej). W tym przypadku jednak problem jest bardziej złożony. Rozmieszczam bloki w rysunku. Planuję sposób numerowania. W tym celu rysuję pomocniczą polilinię przecinającą wszystkie wstawione bloki w odpowiedniej kolejności. Kilka razy modyfikuję przebieg polilinii dla optymalizacji. Jest takich zestawów kilkanaście po kilkaset bloków. Do tej pory numerowałem klikając wzdłuż narysowanej polilinii . Ale po 5 kliknęciu przychodzi błysk. Przecież ta polilinia to płot. No to curig wybieram fence i przekazuję zbiór do maszynki numerującej (niemiłe zdziwienie w ac2k2, niestety). Fajnie, ale po kilku godzinach (minutach, dniach, latach) trzeba dołożyć po kilka elementów do każdego zestawu w miejscach nieprzewidywalnych. I co? Masochistyczna klikanina od początku. Wiadomo, nie dla mnie. No to wykorzystuję excela do przenumerowania zestawu wprowadzając podczas wstawiania dodatkowych bloków tymczasowe numerki. Ale to mało eleganckie, to ciągłe importowanie i eksportowanie z excela i te jego głupie uwagi "czy chcesz zachować arkusz w tym formacie?" No przecież jak bym nie chciał, tobym wybrał inny format, nie? Następnym krokiem jest więc chęć wykorzystania pomocniczej polilinii jako krawędzi wybierającej (zwłaszcza, że można ją dowolnie modyfikować dodając dodatkowe wierzchołki).
Godziny poszukiwań po świecie i swoich nieudolnych prób. Kicha. Przychodzi czas na cad.pl.
I oczywiście kojacek (i badziewiak) stają na wysokości zadania.
Niestety, przez najbliższy tydzień a może dłużej jestem odcięty piłą łańcuchową od ac i nie mogę potestować. Cholera, w notatniku mi SSX_SSbyPoly nie chce działać, chyba sobie napiszę jakiegoś ac!!!.
Można w jakiś sposób przekazać ten zbiór poleceniu grupa? Jak?
z
 
Posty: 1950
Dołączył(a): cze 16, 2009 22:49

Re: zbiór wskazań zaznaczony polilinią

Postprzez kojacek » paź 15, 2009 22:54

z napisał(a):he, he
badziewiak napisał(a):a w lispie raczej ciezko bedzie dzialac,

kojacek napisał(a):w tym VBA to naprawdę jest mordęga cokolwiek zrobić..

Wiedziałem że konstruktywna wojna vba-lisp się z tego wykluje!
badziewiak, dzięki za zainteresowanie (tak, wiem, nietypowy temat pobudza badaczy do działania) jednakowoż staram się ograniczać używanie vba w ac w z powodu wycofywania się autodesku z jego implementowania w najnowszych wersjach . Może się okazać, że powrócą w przyszłości, ale czy to pewne? Wydaje mi się, że skupią się na .net. Szkoda tych wszystkich procedur vba.

kojacek napisał(a):PS. aleś problem wymyślił ! Numerowanie krawędzią ? klikać się nie chce w robocie ?
Jakąś okrutną niechęć czuję do klikania jak małpa, skoro mogę załatwić to samo inaczej (może nieraz dłużej ale sprytniej). W tym przypadku jednak problem jest bardziej złożony. Rozmieszczam bloki w rysunku. Planuję sposób numerowania. W tym celu rysuję pomocniczą polilinię przecinającą wszystkie wstawione bloki w odpowiedniej kolejności. Kilka razy modyfikuję przebieg polilinii dla optymalizacji. Jest takich zestawów kilkanaście po kilkaset bloków. Do tej pory numerowałem klikając wzdłuż narysowanej polilinii . Ale po 5 kliknęciu przychodzi błysk. Przecież ta polilinia to płot. No to curig wybieram fence i przekazuję zbiór do maszynki numerującej (niemiłe zdziwienie w ac2k2, niestety). Fajnie, ale po kilku godzinach (minutach, dniach, latach) trzeba dołożyć po kilka elementów do każdego zestawu w miejscach nieprzewidywalnych. I co? Masochistyczna klikanina od początku. Wiadomo, nie dla mnie. No to wykorzystuję excela do przenumerowania zestawu wprowadzając podczas wstawiania dodatkowych bloków tymczasowe numerki. Ale to mało eleganckie, to ciągłe importowanie i eksportowanie z excela i te jego głupie uwagi "czy chcesz zachować arkusz w tym formacie?" No przecież jak bym nie chciał, tobym wybrał inny format, nie? Następnym krokiem jest więc chęć wykorzystania pomocniczej polilinii jako krawędzi wybierającej (zwłaszcza, że można ją dowolnie modyfikować dodając dodatkowe wierzchołki).
Godziny poszukiwań po świecie i swoich nieudolnych prób. Kicha. Przychodzi czas na cad.pl.
I oczywiście kojacek (i badziewiak) stają na wysokości zadania.
Niestety, przez najbliższy tydzień a może dłużej jestem odcięty piłą łańcuchową od ac i nie mogę potestować. Cholera, w notatniku mi SSX_SSbyPoly nie chce działać, chyba sobie napiszę jakiegoś ac!!!.
Można w jakiś sposób przekazać ten zbiór poleceniu grupa? Jak?


======
My z badziewiakiem tylko konstruktywnie "wojujemy" ;)
======
Wsparcie dla VBA (+ migrację do NET) Autodesk deklaruje na parę lat. Zatem duza czesc procedur nie zginie i zapewne zostanie przenoszona w nowe srodowisko. Wiedza zdobyta na "barykadach VBA" tez nie zniknie a sie przyda. Czyli nie bedzie tak zle. Na marginesie - z VBA rezygnuje Microsoft.
======
Dobrze że dajesz jeszcze tydzień, nad tą procedurką trzeba jeszcze popracować, nie mniej - zarzuć moze juz 2k2 i przejdz na cos nowszego, wiec moze nie ma co sie w to bawić? (powyżej i równe 2k4 działa w 100%) Zastanów się nad tym.
======
dawniej ciekawy temat "rozpalał" tutaj dyskusje... sparrow, guma, d_sedz, mazzi, zbyszek, dziadek... itd. się działo... :)
======
kojacek
Avatar użytkownika
kojacek
 
Posty: 5292
Dołączył(a): paź 03, 2005 20:17

Następna strona

Powrót do AutoCAD

Kto przegląda forum

Użytkownicy przeglądający ten dział: Yahoo [Bot]