lisp do profili


gruzin

Recommended Posts

Chciałbym podzielić się swoim lispem.

Można nim opisać narysowane już profile sieci podziemnych oraz rozwinięcia kanalizacyjne w budynku.

Aby wyświetlić spis dodatkowych poleceń trzeba w wierszu poleceń wpisać "EPOMOC"

po wczytaniu lispa pojawią się w Zwcadzie dodatkowe polecenia:

PKS - rysowanie tabelki Profilu Sieci doziemnej oraz opisywanie tej tabeli wszystkimi danymi.

RKS - rysowanie tabelki pod Rozwinięciem Kanalizacji Sanitarnej oraz jej opisywanie.

KOL - opisywanie rzędnych kolizji na utworzonym już profilu.

KOTA - wstawia opisaną kotę na rysunek.

przydatnym uzupełnieniem tych poleceń jest lisp "kreseczki.zel" udostępniony w innym wątku tego forum.

http://forum.projektuje.net/download.htm?id=126

http://forum.projektuje.net/lispy-lispy-i-inne-lispy-vt218,15.htm

zapraszam do testowania

marcin_EPOMOC.zel

Link to comment
Share on other sites

  • 2 weeks later...

Dodałem do nakładki kilka poleceń, poprawiłem zauważone błędy.

Plik kreseczki.zel nie jest już potrzebny, napisałem własną wersję tej komendy.

Dodałem też pasek z ikonkami przypisanymi do poleceń oraz menu górne.

http://instalacjesanitarne.com/download/PROFILEK.zip

Po rozpakowaniu wszystkie pliki należy skopiować do katalogu głównego ZWCADA.

Wczytać na stałe poleceniem "_appload" plik profilek.lsp

Komendą "profilek" włączamy dodatkowe paski narzędzi.

Zachęcam do testowania.

Link to comment
Share on other sites

Jest nowa wersja nakładki PROFILEK.

Dodałem nowy pasek ikonek z poleceniami do rysowania rur z izolacją lub bez.

http://instalacjesanitarne.com/download.htm

Po rozpakowaniu wszystkie pliki skopiować do katalogu głównego ZwCada zastępując ewentualnie już istniejące (wcześniejsze wersje nakładki).

Jeżeli nie był wcześniej wczytany na stałe to wczytać poleceniem "_appload" plik profilek.lsp.

Komendą "profilek" włączyć paski zadań (jeżeli była instalowana wcześniejsza wersja to komendą "profilek" wyłączyć a następnie komendą "profilek" włączyć nowe paski z ikonkami.

pozdrawiam

Link to comment
Share on other sites

Całkiem fajnie wygląda ta nakładka.

Funkcje rozwijające profile i kanalizacje mogą być przydatne dla wielu osób.

Koty to niezłe narzędzie nie tylko dla projektantów instalacji.

Co do elementów rurociągów, ułatwiają pracę, ale myślę, że jeszcze powinien Pan im poświęcić trochę czasu.

Ogólnie kierunek rozwoju myślę, że całkiem poprawny i zachęcam do dalszej pracy. Już niedługo będzie to coś fajnego, na czym nawet może da się zarobić :)

Link to comment
Share on other sites

Bardzo mi miło. Oczywiście zgadzam się na umieszczenie linka do nakładki. Nakładkę będę oczywiście rozwijał bo nie zrobiłem wszystkiego co mi chodzi po głowie.

Licencje wybiorę jak znajdę na to trochę czasu. Na pewno będzie taka, która pozwala korzystać z nakładki za darmo do celów prywatnych i komercyjnych.

pozdrawiam

Link to comment
Share on other sites

wszystkie rury i izolacja rysowane są liniami (elementy nie są zgrupowane w żaden sposóB). Jak chcesz wydłużać narysowane rury to polecam funkcję "_stretch" "rozciągnij" (ikonka między "utnij" i "skala".

p.s. Na stronie jest nowsza wersja nakładki (obraca wszystkie kolana, może rysować na każdym izolację, zapamiętuje wybrane średnice i grubości izolacji)

pozdrawiam

Link to comment
Share on other sites

Jest kolejna wersja nakładki (z dnia 2010.11.22).

Dodałem na nowym pasku polecenia do tworzenia warstw oraz wyeliminowałem zgłoszone niedogodności. Napisałem licencję (pod ikonką ze znakiem zapytania) aby nie było niejasności, że program jest darmowy.

Nakładka do ściągnięcia na stronie:

http://instalacjesanitarne.com/download.htm

Na stronie jest również instrukcja instalacji dla mniej zaawansowanych użytkowników

paski_profilka.png

pozdrawiam i zapraszam do ściągania i używania

Link to comment
Share on other sites

  • 1 month later...

Z nowym rokiem oddaje nową wersję nakładki (wersja z dnia 1011.01.03)

Dodałem polecenia do rysowania wewnętrznych kanalizacji sanitarnych, deszczowych i technologicznych oraz do rysowania profili podłużnych na podstawie punktów klikanych na mapie.

Testowo zostawiłem pasek z poleceniami do schematów. Docelowo powinny się na nim znaleźć wszystkie podstawowe urządzenia do schematów hydraulicznych, ale chwilowo polecenia nie działają tak jak bym chciał więc trzeba jeszcze na to trochę poczekać.

Nakładka do ściągnięcia na stronie:

http://instalacjesanitarne.com/download.htm

Na stronie zaktualizowałem również opis wszystkich poleceń nakładki.

Link to comment
Share on other sites

  • 2 weeks later...

Znowu dodałem kilka nowych poleceń i jest nowa wersję nakładki PROFILEK (wersja z dnia 2011.01.17)

Dodałem polecenia do wstawiania przyborów sanitarnych na rozwinięciu kanalizacji sanitarnej. Niektóre przybory mają możliwość rysowania odejścia kanalizacji na kilka sposobów.

Dodałem też pasek z tabelkami, które można wstawiać do rysunku jednym kliknięciem. Każdy może sobie wstawić własne tabelki do plików dwg znajdujących się wśród plików nakładki i ułatwić sobie troszkę pracę :-)

Poprawiłem też kilka znalezionych błędów i usprawniłem trochę działanie programu (już nie wszystkie polecenia wyświetlają multum wiadomości podczas działania programu).

W dalszych planach rozwoju są teraz polecenia do rysowania schematów.

Nakładka do ściągnięcia na stronie:

http://instalacjesanitarne.com/download.htm

Na stronie zaktualizowałem również opis wszystkich poleceń nakładki.

Paski Profilka wyglądają teraz tak (obrazki nie różnią się w stosunku do poprzednich postów bo ciągle linkuję do tego samego pliku, który uaktualniam i który jest wykorzystywany na mojej WWW):

paski_profilka.png

Zapraszam do ściągania i używania.

Link to comment
Share on other sites

  • 2 weeks later...

Wyszła wersja PROFILKA 2011.01.31

Pasek z symbolami armatury już nie jest TESTOWY. Poprawiłem polecenia do schematów i teraz będę dokładał nowe.

Symbole wstawione na linii rozcinają ją, wstawiane na innym obiekcie lub na pustym miejscy trzeba podać kąt obrotu.

Nakładka do ściągnięcia na stronie:

http://instalacjesanitarne.com/download.htm

Na stronie zaktualizowałem również opis wszystkich poleceń nakładki.

Link to comment
Share on other sites

Wyszła wersja PROFILKA 2011.01.31

Pasek z symbolami armatury już nie jest TESTOWY. Poprawiłem polecenia do schematów i teraz będę dokładał nowe.

Symbole wstawione na linii rozcinają ją, wstawiane na innym obiekcie lub na pustym miejscy trzeba podać kąt obrotu.

Nakładka do ściągnięcia na stronie:

http://instalacjesanitarne.com/download.htm

Na stronie zaktualizowałem również opis wszystkich poleceń nakładki.

male usprawnienie jesli chcesz (do wstawiania tabelek). zamiast dublowac kod mozna by tak:

(defun C:Tabela01 ()
 (TabelaFunkcja "01")
 (princ)
)
(defun C:TABELA02 ()
 (TabelaFunkcja "02")
 (princ)
)
(defun C:TABELA03 ()
 (TabelaFunkcja "03")
 (princ)
)
(defun C:TABELA04 ()
 (TabelaFunkcja "04")
 (princ)
)

(defun TabelaFunkcja (Numer / OLDCMD TB PT)
 (setq OLDCMD (getvar 'CMDECHO))
 (if (findfile (setq TB (strcat "profilek_tabelka" Numer ".dwg")))
   (if (setq PT (getpoint "\nWskaż punkt wstawienia tabeli: "))
     (progn
       (setvar 'CMDECHO 0)
       (command "_-insert" TB PT "" "" "")
     )
     (princ "\nNiepoprawny punkt. ")
   )
   (princ (strcat "\nNie znaleziono pliku \"" TB "\" !"))
 )
 (setvar 'CMDECHO OLDCMD) 
)

(princ)

jesli jestes zainteresowany to moge podrzucic pare rozwiazan.

j.

Link to comment
Share on other sites

Dzięki za zainteresowanie oraz kod.

Z tabelkami mam inny problem niż dublowanie kodu, chociaż każde usprawnienie jest pożądane.

Problem polega na tym, że chciałbym aby tabelka składała się z tekstu, atrybutów oraz pól. Z tekstem i atrybutami oczywiście nie ma problemu ale pola nie kopiują się z pliku do pliku.

Jutro postaram się załączyć tabelkę którą bym chciał wstawiać poleceniem insert ale niestety są w niej pola.

Jak masz jakieś ciekawe rozwiązania to ja zawsze jestem chętny do nauki, abym tylko znalazł na to czas :-)

Link to comment
Share on other sites

Dzięki za zainteresowanie oraz kod.

...Problem polega na tym, że chciałbym aby tabelka składała się z tekstu, atrybutów oraz pól. Z tekstem i atrybutami oczywiście nie ma problemu ale pola nie kopiują się z pliku do pliku.

Jutro postaram się załączyć tabelkę którą bym chciał wstawiać poleceniem insert ale niestety są w niej pola.

nie do konca rozumie w czym problem. podrzucisz plik to sie zobaczy.

...abym tylko znalazł na to czas :-)

to tak jak ja. zobacze co by mozna jeszcze jakos skrocic/polepszyc/przyspieszyc itp.

j.

Link to comment
Share on other sites

W załączniku przykład tabelki która nie wstawia się poprawnie.

Tabelka troche okrojona ze względu na jej właściciela (brak danych firmowych).

Jak będziesz analizować kod profilka to weź poprawkę na to, że niektóre polecenia pisałem dawno i należy je gruntownie poprawić w całości, bo kod działa ale jest strasznie chaotyczny (np PKS).

profilek_tabelka04.zip

Link to comment
Share on other sites

W załączniku przykład tabelki która nie wstawia się poprawnie.

Tabelka troche okrojona ze względu na jej właściciela (brak danych firmowych).

Jak będziesz analizować kod profilka to weź poprawkę na to, że niektóre polecenia pisałem dawno i należy je gruntownie poprawić w całości, bo kod działa ale jest strasznie chaotyczny (np PKS).

haha, FILED'y :grin: widze w czym problem. aby ci to zadzialalo musisz wczesniej utworzyc w rysunku wszyskie DRAWING PROPERTIES ktore masz w bazowym rysunku. gdzies mialem taka funkcje jak znajda to podrzuce

co do kodu to fakt. lekki chaos. ciezko sie odnalesc

j.

Link to comment
Share on other sites

sprobuj tego:

(defun C:TEST (/ DWGPROP)
 (vl-load-com)
 (setq DWGPROP
   (list
     '("PROFILEK_EDYCJA" "A")
     '("PROFILEK_DATA" "2011")
     '("PROFILEK_OBIEKT" "")
   )
 )
 (foreach % DWGPROP
   (kr:DWG_AddCustomProperties (car %) (cadr %))
 )
 (princ)
)

; ============================================================ ;
; Add drawing custom properties                                ;
;   Name  [sTR] - custom properties name                       ;
;   Value [sTR] - custom properties value                      ;
; ============================================================ ;
(defun kr:DWG_AddCustomProperties (Name Value / SI)
 (if
   (vl-catch-all-error-p
     (vl-catch-all-apply
       'vla-SetCustomByKey
       (list
         (setq SI
           (vla-get-SummaryInfo
             (vla-get-ActiveDocument
               (vlax-get-acad-object)
             )
           )
         )
         Name
         Value
       )
     )
   )
   (vla-AddCustomInfo SI Name Value)
 )
)

tworzy w rysunku PROPERTIES jesli ich nie ma. Jesli sa jakies wartosci to je nadpisuje

j.

Link to comment
Share on other sites

oto chodziło - prawie

trzeba przerobić to tylko tak aby nie nadpisywało wartości bo to bez sensu.

Raz wstawiona tabelka i uzupełniona poprawnie zostaje w rysunku.

Wstawiając druga tabelkę nie możemy jednocześnie tracić ustawionych DRAWING PROPERITIES.

A nie da sie tego zrobić bez visual lispa? podobnie do tego:

;=============================================================
(if (null (tblsearch "Layer" "IS_schemat_armatura"))
(progn
(command "_layer"
	"_N" "TEMP-LAYER"
	"_C" "3" "TEMP-LAYER"
	"_L" "Continuous" "TEMP-LAYER"
	"_LW" "0.15" "TEMP-LAYER" "")
(command "_rename" "_LA" "TEMP-LAYER" "IS_schemat_armatura")
(command "_clayer" "IS_schemat_armatura")
);progn
(command "_clayer" "IS_schemat_armatura")
);if
;=============================================================

Link to comment
Share on other sites

Urazy do visuala nie mam. Po prostu jeszcze go nie umiem. Lispa zacząłem się uczyć chyba w listopadzie zeszłego roku a do visuala jeszcze się porządnie nie zabrałem. Jak coś się da zrobić bez visuala to robię to bez niego. W planach mam teraz opanowanie DCLa i visuala, ale robota ostatnio się nawarstwia i czasu nie ma za dużo.

Link to comment
Share on other sites

Urazy do visuala nie mam. Po prostu jeszcze go nie umiem. Lispa zacząłem się uczyć chyba w listopadzie zeszłego roku a do visuala jeszcze się porządnie nie zabrałem. Jak coś się da zrobić bez visuala to robię to bez niego. W planach mam teraz opanowanie DCLa i visuala, ale robota ostatnio się nawarstwia i czasu nie ma za dużo.

tak samo zaczynalem. command chyba masz opanowane wiec zastartowalbym do visuala.

wierz mi ze po pewnym czasie nie bedziesz chcial wrocic z kolei do command :)

j.

Link to comment
Share on other sites

(defun C:TEST (/ DWGPROP)
 (vl-load-com)
 (setq DWGPROP
   (list
     '("PROFILEK_EDYCJA" "A")
     '("PROFILEK_DATA" "2011")
     '("PROFILEK_OBIEKT" "")
   )
 )
 (foreach % DWGPROP
   (kr:DWG_AddCustomProperties (car %) (cadr %) nil)
 )
 (princ)
)
; ============================================================ ;
; Add drawing custom properties                                ;
;   Key   [sTR] - custom properties name                       ;
;   Value [sTR] - custom properties value                      ;
;   Mode [bOOL] - nil = do not update existing key             ;
;                 T   = update existing key                    ;
; ============================================================ ;
(defun kr:DWG_AddCustomProperties (Key Value Mode / SI)
 (setq SI
   (vla-get-SummaryInfo
     (vla-get-ActiveDocument
       (vlax-get-acad-object)
     )
   )
 )
 (if (member Key (mapcar 'car (kr:DWG_GetCustomProperties)))
   (if Mode (vla-SetCustomByKey SI Key Value))
   (vla-AddCustomInfo SI Key Value)
 )
)
; ============================================================ ;
; Get drawing custom properties                                ;
; ============================================================ ;
(defun kr:DWG_GetCustomProperties (/ SI C K V LST)
 (setq SI
   (vla-get-SummaryInfo
     (vla-get-ActiveDocument
       (vlax-get-acad-object)
     )
   )
       C (vla-NumCustomInfo SI)
 )
 (while (> C 0)
   (vla-GetCustomByIndex SI (- C 1) 'K 'V)
   (setq LST (cons (cons K V) LST)
         C (1- C)
   )
 )
 LST
)
; ============================================================ ;
; Remove drawing custom properties                             ;
;   Mode - list of custom properties name to remove            ;
;          T = remove all                                      ;
; ============================================================ ;
(defun kr:DWG_RemoveCustomProperties (Mode / SI)
 (setq SI
   (vla-get-SummaryInfo
     (vla-get-ActiveDocument
       (vlax-get-acad-object)
     )
   )
 )
 (if (listp Mode)
   (foreach % Mode
     (vl-catch-all-apply
       'vla-RemoveCustomByKey
       (list SI %)
     )
   )
   (foreach % (mapcar 'car (kr:DWG_GetCustomProperties))
     (vla-RemoveCustomByKey SI %)
   )
 )
)

jesli chcesz to korzystaj: dodawanie (nadpisuje jesli chcemy), odczytywanie i usuwanie PROPERTIES. niestety visual. inaczej sie nie da. za wiele nie testowalem ale z grubsza powinno dzialac.

j.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...