Strona 1 z 1

Wybór połączenia do edycji

: 14 mar 2018, 13:28
autor: ziele_o2k
Postanowiłem się dzielić swoimi krótkimi usprawnieniami do AdvanceSteela pisanymi w jęcyku AutoLISP.
Pierwsze czym chciałbym się podzielić to wybór połączenia do edycji.
Odbywa się to przez podwójne kliknięcie na szarą ramkę połączenia.
Często w gąszczu połączeń (szarych ramek) nie wiem, które jest do zmiany...
Z pomocą przychodzi poniższa ikonka:
2018-03-14_13-07-27.jpg
2018-03-14_13-07-27.jpg (26.81 KiB) Przejrzano 1475 razy
Fajnie to działa bo, po kliknięciu na śrubę/spoinę/belkę zaznacza nam się (a czasem nawet pojawia i zaznacza, ale o tym w oddzielnym poście) szara ramka połączenia. Teraz wystarczy kliknąć w nią dwa razy i możemy edytować połączenie.
Ponieważ denerwowała mnie konieczność podwójnego etapu dojścia do edycji połączenia (najpierw element, a potem podwójny klik na ramkę połączenia), napisałem krótkiego lispa który działa za nas:

Kod: Zaznacz cały

(defun c:ase ( / LM:SelectIf _ent)
  (defun LM:SelectIf ( msg pred func keyw / sel ) (setq pred (eval pred))  
    (while
      (progn (setvar 'ERRNO 0) (if keyw (apply 'initget keyw)) (setq sel (func msg))
        (cond
          ( (= 7 (getvar 'ERRNO))
            (princ "\nMissed. Try again.")
          )
          ( (eq 'STR (type sel))
            nil
          )
          ( (vl-consp sel)
            (if (and pred (not (pred sel)))
              (princ "\nInvalid Object Selected.")
            )
          )
        )
      )
    )
    sel
  )
  (sssetfirst nil nil)
  (if
    (setq 
      _ent (car 
        (LM:SelectIf 
          "\nSelect object to edit connection: "  
          (lambda ( x ) 
            (wcmatch (cdr (assoc 0 (entget (car x)))) "ASTBEAM,ASTPLATE,ASTBOLT*,ASTWELD")
          )
          entsel nil
        )
    ))
    (if 
      (and 
        (vl-cmdf "_AstM4SwitchReprMode" "CONOBJ" _ent "")
        (cadr (ssgetfirst))
      )
      (vl-cmdf "_AstM4CommMultiEdit" "1")
      (progn
        (princ "\nNo connection detected. Try again.")
        (c:ase)
      )
    )
  )
  (princ)
)
W razie pytań, śmiało pisać.
Krótka prezentacja <klik w obrazek>:
ase.gif

Re: Wybór połączenia do edycji

: 14 mar 2018, 21:05
autor: thomas126
Jak to wprowadzić do swojego programu aby działało jak u Ciebie?

Re: Wybór połączenia do edycji

: 14 mar 2018, 21:33
autor: ziele_o2k
Zacznij od pierwszego ewentualnie drugiego linka.
http://www.lee-mac.com/runlisp.html
https://www.youtube.com/watch?v=o9un8YiXs6I
http://help.autodesk.com/view/ACD/2016/ ... F58970E1EE
http://help.autodesk.com/view/ACD/2016/ ... 7729D42520
http://help.autodesk.com/view/ACD/2016/ ... 1D49CF971F
Generalnie tworzysz sobie nowy plik tekstowy u siebie na kompie zmieniasz rozszerzenie txt na lsp, kopiujesz ten kod co tu wrzuciłem i wczytujesz jak na powyższych linkach.

Re: Wybór połączenia do edycji

: 14 mar 2018, 22:25
autor: thomas126
Ok, dzięki. Jutro na spokojnie ogarnę to i dam znać czy śmiga.

Re: Wybór połączenia do edycji

: 15 mar 2018, 09:46
autor: JerzyCP
thomas126 pisze:Ok, dzięki. Jutro na spokojnie ogarnę to i dam znać czy śmiga.
Śmiga, śmiga... potwierdzam :D .

Jurek

Re: Wybór połączenia do edycji

: 15 mar 2018, 13:27
autor: ziele_o2k
Jak będziecie mieli jakieś pomysły na takie usprawnienia to dajcie znać.
W oddzielnym poście napiszę jakie są możliwości AutoLISPa w advance steelu.

Re: Wybór połączenia do edycji

: 08 cze 2018, 20:51
autor: werron
ziele_o2k pisze:
14 mar 2018, 13:28
Fajnie to działa bo, po kliknięciu na śrubę/spoinę/belkę zaznacza nam się (a czasem nawet pojawia i zaznacza, ale o tym w oddzielnym poście) szara ramka połączenia. Teraz wystarczy kliknąć w nią dwa razy i możemy edytować połączenie.
Ponieważ denerwowała mnie konieczność podwójnego etapu dojścia do edycji połączenia (najpierw element, a potem podwójny klik na ramkę połączenia), napisałem krótkiego lispa który działa za nas:
Da się przecież jednym kliknięciem edytować makro (szarą ramkę).
Dodatkowo, nie trzeba się zastanawiać która ramka w gąszczu ramek odpowiada za konkretne połączenie.
Metoda:
- zaznaczamy LKM element utworzony przez makro (śruba / blacha)
- następnie klikamy PKM aby wywołać menu kontekstowe

Obrazek

- dalej wybieramy w menu: wspólne właściwości Advance
i tyle - odpala nam się okno z właściwościami makra.

Sporą zaleta powyższej metody jest fakt że działa to przy ukrytych szarych ramkach połączeń. Ja często wygaszam warstwę z tymi boksami w celu lepszej przejrzystości modelu.
A jak potrzebuję edytować makro, stosuję przedstawioną procedurę.

werron

Re: Wybór połączenia do edycji

: 21 cze 2018, 13:37
autor: ziele_o2k
werron pisze:
08 cze 2018, 20:51
Da się przecież jednym kliknięciem edytować makro (szarą ramkę).
Dodatkowo, nie trzeba się zastanawiać która ramka w gąszczu ramek odpowiada za konkretne połączenie.
Metoda:
- zaznaczamy LKM element utworzony przez makro (śruba / blacha)
- następnie klikamy PKM aby wywołać menu kontekstowe
- dalej wybieramy w menu: wspólne właściwości Advance
i tyle - odpala nam się okno z właściwościami makra.

Sporą zaleta powyższej metody jest fakt że działa to przy ukrytych szarych ramkach połączeń. Ja często wygaszam warstwę z tymi boksami w celu lepszej przejrzystości modelu.
A jak potrzebuję edytować makro, stosuję przedstawioną procedurę.

werron
No i fajno, nie wiedziałem, że wspólne własćiwości advance tak działają. Nauczyłem się czegoś nowego.
werron pisze:
08 cze 2018, 20:51
(...) Dodatkowo, nie trzeba się zastanawiać która ramka w gąszczu ramek odpowiada za konkretne połączenie. (...)
Moje tak samo działa - nie trzeba się zastanawiać tylko klikam na element.

Ja jednak pozostanę przy swoim podejściu, bo jest szybciej. Jestem ogromnym przeciwnikiem tych wszystkich wstążek, klikania szukania itd., wolę mieś wszystko pod skrótami na klawiaturze.
Pozdro!