Wybór połączenia do edycji
: 14 mar 2018, 13:28
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: 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:
W razie pytań, śmiało pisać.
Krótka prezentacja <klik w obrazek>:
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: 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)
)
Krótka prezentacja <klik w obrazek>: