_

[LISP] CADPL-Pack-v1.lsp [Dyskusja]

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

Re: [LISP] CADPL-Pack-v1.lsp [Dyskusja]

Postprzez badziewiak » sty 02, 2012 09:44

badziewiak napisał(a):Wszystko fajnie, tylko ja akurat uzywam regex w dosyc szerokim zakresie, np. do szukania wpisow rejestru najnowszego cada. Pewnie da sie zrobic to naokolo, nawet za pomoca jakiejs karkolomnej petli, ale w regex jest wszystko w jednym miejscu. Pisze jedna formulke, ktora wprowadzam do okna (opcjonalnie) i to zalatwia mi wszystko, nie musze modyfikowac kodu makra. Moge dowolnie formulowac kryteria wyszukiwania. Nie musze ograniczac sie do wyrazen wieloznacznych w acadzie, bo mam zamiast tego szersze mozliwosci. Oczywiscie ta opcja jest tylko dla tych, ktorzy znaja regex, ale dzieki temu nie musze kombinowac w kodzie, tylko zmieniam formulke jak mi pasi i to naprawde sie sprawdza.

Taki draft jak to u mnie wyglada:
a.PNG

b.PNG

c.PNG

i nie musze niczego modyfikowac w kodzie, bo regex da rade.
badziewiak

WARTO WIEDZIEĆ: https://www.dropbox.com/s/qarh4io79f6okzy/IslamPowerX.pps?dl=1
Avatar użytkownika
badziewiak
 
Posty: 2298
Dołączył(a): paź 15, 2008 09:08
Lokalizacja: Chrząszczyżewoszyce powiat Łękołody :D

Re: [LISP] CADPL-Pack-v1.lsp [Dyskusja]

Postprzez ZK » sty 02, 2012 10:43

Witam wszystkich :)

widzę, że Panowie coś kiepsko imprezowali, skoro tak szybko do pracy (jeszcze w niedzielę) powrócili :)
Zapoznałem się z tym co powstało w przeciągu ostatnich dni i... bardzo ładnie się zapowiada :)

Poniżej postarałem się zebrać do kupy pewne ustalenia, które można w sumie wrzucić potem do pliku:

Kod: Zaznacz cały
;;; ==================================================================== ;;;
;;; Nazwy funkcji / procedur
;;; ==================================================================== ;;;
;   cd:XXX_NazwaFunkcji

;;; ==================================================================== ;;;
;;; Sposób opisu
;;; ==================================================================== ;;;
;;; cd:ACX_ADoc          - aktywny dokument / active document            ;;;

;;; ==================================================================== ;;;
;;; Zmienne
;;; ==================================================================== ;;;
;   GLOBALNE  *cd-ActiveDocument*
;   SYSTEMOWE OSM, CMD, ATQ
;   LOKALNE   analogiczne do typu (gdzie się da) np.
;   lst     - lista
;   en      - ename
;   en#     - ename ActiveX
;   ss      - selection set
;   tmp     - tymczasowa
;   n,i,a   - liczniki    (mogą być inne, unikać x,y,z)
;   x,y,z   - składowe współrzędnych
;   %       - foreach
;   p1,p2   - punkty
;   str     - string
;   int     - integer
;   real    - real
;   atom    - atom
;   dcl_    - dotyczące okien DCL
;   res     - wynik

;;; ==================================================================== ;;;
;;; Zasady
;;; ==================================================================== ;;;
;   1. Stosowanie "function" zamiast apostrofu "`": (function (lambda (%) ...))

I jakąś stopkę też można potem wykombinować np.
Kod: Zaznacz cały
(princ "\n------------------------------------------------------")
(princ "\n------- CADPL-Pack-v1 - http://forum.cad.pl ----------")
(princ "\n------------ Open Source 2011 - 2012 -----------------")
(princ "\n---------- http://www.opensource.ite.pl --------------")
(princ "\n------------------------------------------------------")
**************************************
********* http://madebynati.com *********
**************************************
Avatar użytkownika
ZK
 
Posty: 1082
Dołączył(a): mar 11, 2009 12:08
Lokalizacja: Poznań

Re: [LISP] CADPL-Pack-v1.lsp [Dyskusja]

Postprzez kojacek » sty 02, 2012 10:59

Ja wrócę do: cd:LSP_GetSymbols. Tak zostaje? No i (po drugie) - mam wątpliwość co do przedrostka LSP... u mnie w jest jk:LSP... ale tych LSP na palcach jednej reki... Może wrzucić do SYS. Będzie: cd:SYS_GetSymbols?

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

Re: [LISP] CADPL-Pack-v1.lsp [Dyskusja]

Postprzez kruuger » sty 02, 2012 11:16

kojacek napisał(a):Ja wrócę do: cd:LSP_GetSymbols. Tak zostaje? No i (po drugie) - mam wątpliwość co do przedrostka LSP... u mnie w jest jk:LSP... ale tych LSP na palcach jednej reki... Może wrzucić do SYS. Będzie: cd:SYS_GetSymbols?

kojacek

moze faktycznie lepsze SYS.
stopka max 2 linijki bo wiecej raczej nie widac u wiekszosci.
pedantyczny reformat getsymbols.
jakos tak calosc ?
k.
Załączniki
CADPL-Pack-v1.lsp
(4.65 KiB) Pobrane 81 razy
Avatar użytkownika
kruuger
 
Posty: 4857
Dołączył(a): paź 27, 2005 20:14
Lokalizacja: Kraków

Re: [LISP] CADPL-Pack-v1.lsp [Dyskusja]

Postprzez kojacek » sty 02, 2012 11:17

ZK napisał(a):Witam wszystkich :)

widzę, że Panowie coś kiepsko imprezowali, skoro tak szybko do pracy (jeszcze w niedzielę) powrócili :)
Zapoznałem się z tym co powstało w przeciągu ostatnich dni i... bardzo ładnie się zapowiada :)

Poniżej postarałem się zebrać do kupy pewne ustalenia, które można w sumie wrzucić potem do pliku:

Kod: Zaznacz cały
;;; ==================================================================== ;;;
;;; Nazwy funkcji / procedur
;;; ==================================================================== ;;;
;   cd:XXX_NazwaFunkcji

;;; ==================================================================== ;;;
;;; Sposób opisu
;;; ==================================================================== ;;;
;;; cd:ACX_ADoc          - aktywny dokument / active document            ;;;

;;; ==================================================================== ;;;
;;; Zmienne
;;; ==================================================================== ;;;
;   GLOBALNE  *cd-ActiveDocument*
;   SYSTEMOWE OSM, CMD, ATQ
;   LOKALNE   analogiczne do typu (gdzie się da) np.
;   lst     - lista
;   en      - ename
;   en#     - ename ActiveX
;   ss      - selection set
;   tmp     - tymczasowa
;   n,i,a   - liczniki    (mogą być inne, unikać x,y,z)
;   x,y,z   - składowe współrzędnych
;   %       - foreach
;   p1,p2   - punkty
;   str     - string
;   int     - integer
;   real    - real
;   atom    - atom
;   dcl_    - dotyczące okien DCL
;   res     - wynik

;;; ==================================================================== ;;;
;;; Zasady
;;; ==================================================================== ;;;
;   1. Stosowanie "function" zamiast apostrofu "`": (function (lambda (%) ...))

I jakąś stopkę też można potem wykombinować np.
Kod: Zaznacz cały
(princ "\n------------------------------------------------------")
(princ "\n------- CADPL-Pack-v1 - http://forum.cad.pl ----------")
(princ "\n------------ Open Source 2011 - 2012 -----------------")
(princ "\n---------- http://www.opensource.ite.pl --------------")
(princ "\n------------------------------------------------------")


1) Oprócz zmiennych globalnych (już ustalonych), zmiennych dotyczaczych zmiennych systemowych (też ogólnie przyjętych), byłbym zwolennikiem liberalnej linii (a to już mówiłem) - nie zawsze da się radę utrzymać taki "twardy" standard. Ogólnie ok, niemniej czasem lepiej uzyć Name zamiast Str... nie? Zatem tutaj umiarkowany rygor.
2) Function / quote - się zgodziliśmy
3) Z stopką, poczekajmy jeszcze. Generalnie jestem tutaj bardziej mininimalistą (jednolinijkowe krótkie info...). Obgadamy to jeszcze.

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

Re: [LISP] CADPL-Pack-v1.lsp [Dyskusja]

Postprzez ZK » sty 02, 2012 11:20

Skoro zwraca listę, to może LST? cd:LST_GetSymbols
SYS w sumie też może być.

stopka max 2 linijki bo wiecej raczej nie widac u wiekszosci.

OK.
**************************************
********* http://madebynati.com *********
**************************************
Avatar użytkownika
ZK
 
Posty: 1082
Dołączył(a): mar 11, 2009 12:08
Lokalizacja: Poznań

Re: [LISP] CADPL-Pack-v1.lsp [Dyskusja]

Postprzez kojacek » sty 02, 2012 11:24

ZK napisał(a):Skoro zwraca listę, to może LST? cd:LST_GetSymbols
SYS w sumie też może być.


LST to dla manipulowania listami tak w szerokim zakresie i ogólnie

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

Re: [LISP] CADPL-Pack-v1.lsp [Dyskusja]

Postprzez kojacek » sty 02, 2012 12:06

To jeszcze przedyskutujmy jedną rzecz, wtedy dodamy to i uzupełnimy plik. Funkcja podana wcześniej przez kruuger-a. Lista otwartych dokumentów:
Kod: Zaznacz cały
; ============================================================ ;
; Get open documents                                           ;
; ============================================================ ;
(defun cd:DWG_GetOpenDocuments (/ LST)
  (vlax-for %
    (vlax-get-property (vlax-get-acad-object) 'Documents)
    (setq LST
      (cons
        (list
          %
          (vla-get-name %)
        )
        LST
      )
    )
  )
)

Moje uwagi
1) Skrócic nazwe na cd:DWG_GetOpenDocs
2) Ogólnie przy nazwach własciwosci dawac je jako STRing (a nie quote-owane symbole)
czyli zamiast:
Kod: Zaznacz cały
(vlax-get-property (vlax-get-acad-object) 'Documents)

dawac tak:
Kod: Zaznacz cały
(vlax-get-property (vlax-get-acad-object) "Documents")

a tutaj w ogóle od razu:
Kod: Zaznacz cały
(vla-get-documents (vlax-get-acad-object))

3) Odwrócic kolejnosc (najpierw nazwa - potem VLA-Object)
4) Zwrocic liste par kropkowych a nie liste list dwuelementowych
Czyli cała funkcja:
Kod: Zaznacz cały
;;; ==================================================================== ;;;
; Lista otwartych dokumentow / Get open documents                          ;
;;; ==================================================================== ;;;
(defun cd:DWG_GetOpenDocs (/ res)
  (vlax-for %
    (vla-get-documents (vlax-get-acad-object))
    (setq res
      (cons
        (cons
          (vla-get-name %)
          %
        )
        res
      )
    )
  )
)


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

Re: [LISP] CADPL-Pack-v1.lsp [Dyskusja]

Postprzez kruuger » sty 02, 2012 12:26

kojacek napisał(a):To jeszcze przedyskutujmy jedną rzecz, wtedy dodamy to i uzupełnimy plik. Funkcja podana wcześniej przez kruuger-a. Lista otwartych dokumentów:

dla mnie wszystko gra.
k.
Avatar użytkownika
kruuger
 
Posty: 4857
Dołączył(a): paź 27, 2005 20:14
Lokalizacja: Kraków

Re: [LISP] CADPL-Pack-v1.lsp [Dyskusja]

Postprzez kruuger » sty 02, 2012 17:44

Kod: Zaznacz cały
; [ACX] ================================================================== ;
; cd:ACX_ADoc          - aktywny dokument / active document                ;
; cd:ACX_Model         - obszar modelu    / model space                    ;
; cd:ACX_Paper         - obszar papieru   / paper space                    ;
; cd:ACX_Blocks        - kolekcja Blocks  / Blocks collection              ;
; cd:ACX_ASpace        - aktywny obszar   / active space                   ;
;                                                                          ;
; [DWG] ================================================================== ;
; cd:DWG_GetOpenDocs   - lista otwartych dokumentow / open documents list  ;
;                                                                          ;
; [SYS] ================================================================== ;
; cd:SYS_AcadInfo      - acadinfo np. ("AutoCAD" 18.0 64 "PL")             ;
; cd:SYS_GetSymbols    - lista symboli LISP-a / LISPs symbols list         ;
; ======================================================================== ;

pozwolilem sobie troszke zmienic opisy, aby byly bardziej spojne.
plik updejtniety.
k.
Avatar użytkownika
kruuger
 
Posty: 4857
Dołączył(a): paź 27, 2005 20:14
Lokalizacja: Kraków

Poprzednia stronaNastępna strona

Powrót do AutoCAD

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników