_

zlecę napisanie LISPa

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

zlecę napisanie LISPa

Postprzez ronislaw » kwi 19, 2018 09:14

Chiałbym zlecić napisanie lispa, który by robił:
1. polecenie _audit
2._purge
3._overkill
4._ustawi grubość i kolor warstw na _BYLAYER
5. usunie typ linii 1, 2_14, 3_14, 4_14, 5_14
6. kolor white, 250 zmieni na kolor 0,0,0
7. grubość warstwy 0 ustawi na 0,18
8. ustawi ramki wstawionych obrazów, pdfów na wartość 2(_PDFFRAME,_IMAGEFRAME,)
9. i na koniec znowu _PURGE
ronislaw
 
Posty: 20
Dołączył(a): sty 14, 2011 17:07

Re: zlecę napisanie LISPa

Postprzez ziele_o2k » kwi 19, 2018 09:45

ronislaw napisał(a):Chiałbym zlecić napisanie lispa, który by robił:
1. polecenie _audit
2._purge
3._overkill
4._ustawi grubość i kolor warstw na _BYLAYER
5. usunie typ linii 1, 2_14, 3_14, 4_14, 5_14
6. kolor white, 250 zmieni na kolor 0,0,0
7. grubość warstwy 0 ustawi na 0,18
8. ustawi ramki wstawionych obrazów, pdfów na wartość 2(_PDFFRAME,_IMAGEFRAME,)
9. i na koniec znowu _PURGE

Takie coś to my tu za darmo robim :) Tylko pytanie czy masz Autocada czy jakąś pochodną?
Moje uwagi/pytania zanim się za to wezmę.
  1. to zrobim za pomocą
    Kod: Zaznacz cały
    vla-AuditInfo
  2. tutaj
    Kod: Zaznacz cały
    vla-PurgeAll
  3. to pewnie za pomocą jakiegoś
    Kod: Zaznacz cały
    acet-overkill2
  4. nie grubość i kolor warstw, a obiketów na bylayer. warstwa nie może mieć tych właściwości na JakWarstwa :) mam do tego lispa (dla koloru) dopiszę dla grubości i bydzie
  5. tutaj pojawiają się schody - muszę dokładniej wiedzieć co chcesz osiągnąć. Jeśli usunąć same definicje typów linii z bazy rysunku to nie możemy mieć żadnych obiektów z przypisanymi tymi typami linii. Jeśli typ linii razem z obiektami to już się robi ciekawie bo bloki itd. - trochę więcej info proszę.
  6. pikuś - jak mamy ustawiony kolor wszystkich obiektów na bylayer to mielimy tylko warstwy i mamy sprawę załatwioną
  7. pikuś
  8. pikuś
  9. jak pkt. 2
Ziele
Avatar użytkownika
ziele_o2k
 
Posty: 678
Dołączył(a): mar 18, 2014 11:33
Lokalizacja: Poznań

Re: zlecę napisanie LISPa

Postprzez ronislaw » kwi 19, 2018 15:53

ad. 5
mam rysunki z liniami na różnych warstwach i te obiekty, które mają typ linii 1, 1_14, 2_14 itd. usunąć
ronislaw
 
Posty: 20
Dołączył(a): sty 14, 2011 17:07

Re: zlecę napisanie LISPa

Postprzez ziele_o2k » kwi 19, 2018 16:29

ronislaw napisał(a):ad. 5
mam rysunki z liniami na różnych warstwach i te obiekty, które mają typ linii 1, 1_14, 2_14 itd. usunąć

Czyli wylatują wszystkie warstwy oraz wszystkie obiekty (linie łuki itd.), które mają ustawiony ten typ linii - wszystko jasne!
Ziele
Avatar użytkownika
ziele_o2k
 
Posty: 678
Dołączył(a): mar 18, 2014 11:33
Lokalizacja: Poznań

Re: zlecę napisanie LISPa

Postprzez ronislaw » maja 08, 2018 16:41

ponawiam prośbę
ronislaw
 
Posty: 20
Dołączył(a): sty 14, 2011 17:07

Re: zlecę napisanie LISPa

Postprzez ronislaw » maja 11, 2018 11:57

ziele_o2k czy dasz radę to zrobić.
Proszę o pomoc ew. informacje przemekmil@gmail.com
ronislaw
 
Posty: 20
Dołączył(a): sty 14, 2011 17:07

Re: zlecę napisanie LISPa

Postprzez hegybrown » maja 14, 2018 09:33

jaki masz budżet na napisanie tego lispa?
hegybrown
 
Posty: 5
Dołączył(a): lip 18, 2017 08:51

Re: zlecę napisanie LISPa

Postprzez ziele_o2k » maja 14, 2018 10:15

ronislaw napisał(a):ziele_o2k czy dasz radę to zrobić.
Proszę o pomoc ew. informacje przemekmil@gmail.com

Wrzuć przykładowego dwga z tymi nazwami linii itp. żebym mógł testować.
Ziele
Avatar użytkownika
ziele_o2k
 
Posty: 678
Dołączył(a): mar 18, 2014 11:33
Lokalizacja: Poznań

Re: zlecę napisanie LISPa

Postprzez ziele_o2k » maja 14, 2018 11:37

Na szybko, bez testowania.
5 ) do napisania jak dasz mi jakiś plik
8 ) poczytaj o zmiennych systemowych:
FRAME
PDFFRAME
IMAGEFRAME
i daj znać co lisp ma zmieniać.

Kod: Zaznacz cały
(defun c:test1 ( / )
  ;1) Audit
  (vla-AuditInfo (cd:ACX_ADoc) :vlax-true)
  ;2) purge
  (vla-PurgeAll (cd:ACX_ADoc))
  ;3) overkill
  (acet-overkill2(list(ssget "_X") 0.000001 nil nil nil nil))
  ;4a) all color by layer
  (c:abl)
  ;4b) all lineweight by layer
  (C:alwbl)
  ;5) usunie typ linii 1, 2_14, 3_14, 4_14, 5_14 do zrobienia
  ; do zrobienia
  ;6) kolor white, 250 zmieni na kolor 0,0,0
  (vlax-for obj (cd:ACX_Layers)
    (if (= (vla-get-color obj) 250)
      (pz:settruecolor obj 0 0 0)
    )
  )
  ;7) grubość warstwy 0 ustawi na 0,18
  (cd:ACX_SetProp (tblsearch "LAYER" "0") '(("LineWeight" . 18)))
  ;8) ustawi ramki wstawionych obrazów, pdfów na wartość 2(_PDFFRAME,_IMAGEFRAME,)
  ;(setvar 'frame 2)
  ;9) i na koniec znowu _PURGE
  (vla-PurgeAll (cd:ACX_ADoc))
)

(defun pz:settruecolor (@obj @r @g @b / _c)
  (setq _c
    (vlax-create-object
      (strcat "autocad.accmcolor." (substr (getvar 'acadver) 1 2))
    )
  )
  (vla-SetRGB _c @r @g @b)
  (vla-put-TrueColor @obj _c)
  (princ)
)


(defun C:abl ; = All to Color Bylayer
 
  (/ cb ent obj blk subent)

  (defun cb () ; = force Color(s) to Bylayer
    (setq obj (vlax-ename->vla-object ent))
    (vla-put-color obj 256); ByLayer
    (if (wcmatch (vla-get-ObjectName obj) "*Dimension,*Leader")
      (foreach prop '(DimensionLineColor ExtensionLineColor TextColor)
        ;; not all such entity types have all 3 properties, but all have at least one
        (if (vlax-property-available-p obj prop)
          (vlax-put obj prop 256); ByLayer
        ); if
      ); foreach
    ); if
  ); defun -- cb
;;  Top-level entities:
  (setq ent (entnext))
  (while ent
    (cb)
    (setq ent (entnext ent))
  ); while
;;  Nested entities in this drawing's Block definitions:
  (setq blk (tblnext "block" t))
  (while blk
    (if (= (logand 20 (cdr (assoc 70 blk))) 0); not an Xref [4] or Xref-dependent [16]
      (progn
        (setq ent (cdr (assoc -2 blk)))
        (while ent
          (cb)
          (setq ent (entnext ent))
        ); while
      ); progn
    ); if
    (setq blk (tblnext "block"))
  ); while
  (vla-Regen (cd:ACX_ADoc) 1)
  (princ)
); defun

(defun C:alwbl
 
  (/ cb ent obj blk subent)

  (defun clw () ; = force Color(s) to Bylayer
    (setq obj (vlax-ename->vla-object ent))
    (vla-put-lineweight obj -1); ByLayer
    (if (wcmatch (vla-get-ObjectName obj) "*Dimension,*Leader")
      (foreach prop '(DimensionLineWeight ExtensionLineWeight LeaderLineWeight)
        ;; not all such entity types have all 3 properties, but all have at least one
        (if (vlax-property-available-p obj prop)
          (vlax-put obj prop -1); ByLayer
        ); if
      ); foreach
    ); if
  ); defun -- cb
;;  Top-level entities:
  (setq ent (entnext))
  (while ent
    (clw)
    (setq ent (entnext ent))
  ); while
;;  Nested entities in this drawing's Block definitions:
  (setq blk (tblnext "block" t))
  (while blk
    (if (= (logand 20 (cdr (assoc 70 blk))) 0); not an Xref [4] or Xref-dependent [16]
      (progn
        (setq ent (cdr (assoc -2 blk)))
        (while ent
          (clw)
          (setq ent (entnext ent))
        ); while
      ); progn
    ); if
    (setq blk (tblnext "block"))
  ); while
  (vla-Regen (cd:ACX_ADoc) 1)
  (princ)
); defun
Ziele
Avatar użytkownika
ziele_o2k
 
Posty: 678
Dołączył(a): mar 18, 2014 11:33
Lokalizacja: Poznań

Re: zlecę napisanie LISPa

Postprzez ronislaw » maja 15, 2018 07:25

dzięki za podjęcie tematu.
Chodzi mi o to żeby usuwał obiekty z typem linii "1", "1_14", "2_14", "3_14", "4_14", "5_14"
Załączniki
wzór pliku.DXF
(1.69 MiB) Pobrane 4 razy
ronislaw
 
Posty: 20
Dołączył(a): sty 14, 2011 17:07

Następna strona

Powrót do AutoCAD

Kto przegląda forum

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