lukasz215a Posted September 4, 2015 Report Share Posted September 4, 2015 Witam Przykład do pytania Mamy taki uład polilinii prosta łuk i prosta pierwsza prosta powiedzmy ze ma 95,35m za pomocą punkt zmierz robimy punkty na polilini co 100m i 100m wypada na łuku chcemy ładnie opisać na linni prostopadłej do łuku w punkcie 100 coś w stylu "0+100,00" i tu pytanie jak narysować prostopadłą do łuku w danym punkcie łuku (oczywiście będzie to prostopadła do stycznej) Można narysować dowolny okrąg o środku w punkcie 100 i pozniej go przyciąć do łuku i narysować coś w stylu dwusiecznej kąta ale może jest jakiś szybszy sposób? Quote Link to comment Share on other sites More sharing options...
dmatusz3 Posted September 4, 2015 Report Share Posted September 4, 2015 Witam, rozumiem, że musimy zacząć od punktu leżącego na łuku? Gdybyśmy zaczynali od drugiego punktu, to możemy użyć uchwytów. Zawsze radziłem sobie w taki sposób jak na filmie. Nie jest może najszybszy, ale dla moich zastosowań wystarczał. Quote Link to comment Share on other sites More sharing options...
kojacek Posted September 6, 2015 Report Share Posted September 6, 2015 Nie tam żebym upierał się aby odwodzić was od komplikowania sobie pracy, ale... może warto wykorzystać opcję _block do podziału? dmatusz3 1 Quote Link to comment Share on other sites More sharing options...
lukasz215a Posted September 7, 2015 Author Report Share Posted September 7, 2015 Super sposob. Dzieki. A czy jest jakas metoda aby takie bloki wstawic na punktach glownych skladowych polilini tzn. Na poczatkach i koncach poszczegolnych prostych oraz poczatkach koncach i srodkach lukow? Quote Link to comment Share on other sites More sharing options...
kojacek Posted September 7, 2015 Report Share Posted September 7, 2015 Bezpośrednio nie ma. Choć można wysmażyć krótkiego lisp-a. Inna sprawa - w węzłach polilini nie będzie raczej "prostopadłych". Quote Link to comment Share on other sites More sharing options...
dmatusz3 Posted September 7, 2015 Report Share Posted September 7, 2015 Nie tam żebym upierał się aby odwodzić was od komplikowania sobie pracy, ale... może warto wykorzystać opcję _block do podziału? :D racja, szacun za pomysł. A tutaj krótki film, jak ułożyć bloki na krzywej. W węzłach może się przydać maja pierwotna metoda, choć na połączeniach linii (i łukach bez styczności) będzie trudno o prostopadłą. Quote Link to comment Share on other sites More sharing options...
lukasz215a Posted September 12, 2015 Author Report Share Posted September 12, 2015 To jeszcze jedno pytanie dość luźlo związane z powyższym: Jak zmierzyć długość po łuku pomiędzy dwoma punktami na tym łuku? Quote Link to comment Share on other sites More sharing options...
kojacek Posted September 12, 2015 Report Share Posted September 12, 2015 To jeszcze jedno pytanie dość luźlo związane z powyższym: Jak zmierzyć długość po łuku pomiędzy dwoma punktami na tym łuku? Zawsze można użyć LISP-a: Poniższy kod pozwoli zmierzyć długość elementu dowolnej krzywej pomiędzy dwoma punktami na niej wskazanymi: ;;; (vl-load-com) ;;; (defun C:CDIST (/ sa sb vo) (if (setq sa (nentselp "\nWskaz pierwszy punkt na krzywej: ")) (if (setq sb (nentselp "\nWskaz drugi punkt na krzywej: ")) (if (and (eq (car sa)(car sb))) (progn (setq vo (vlax-ename->vla-object (car sa))) (abs (- (vlax-curve-getDistAtPoint vo (vlax-curve-getClosestPointTo vo (cadr sa) t) ) (vlax-curve-getDistAtPoint vo (vlax-curve-getClosestPointTo vo (cadr sb) t) ) ) ) ) (princ "\nWskazano rózne obiekty. ") ) (princ "\nNic nie wskazano. ") ) (princ "\nNic nie wskazano. ") ) (princ) ) . Quote Link to comment Share on other sites More sharing options...
lukasz215a Posted September 12, 2015 Author Report Share Posted September 12, 2015 problem jest taki ze ja sie na lispach nie znam i nie wiem co z tym zrobic Quote Link to comment Share on other sites More sharing options...
lukasz215a Posted September 13, 2015 Author Report Share Posted September 13, 2015 edit wczytalem lisp ale jak wskazuje dwa punkty na krzywej to albo komunikat ze wybrano rozne obiekty albo po wybraniu drugiego punktu nic sie nie pojawia Quote Link to comment Share on other sites More sharing options...
kojacek Posted September 13, 2015 Report Share Posted September 13, 2015 edit wczytalem lisp ale jak wskazuje dwa punkty na krzywej to albo komunikat ze wybrano rozne obiekty albo po wybraniu drugiego punktu nic sie nie pojawia Sprawdź teraz: ;;; (vl-load-com) ;;; (defun C:CDIST (/ sa sb vo re) (if (setq sa (nentselp "\nWskaz pierwszy punkt na krzywej: ")) (if (setq sb (nentselp "\nWskaz drugi punkt na krzywej: ")) (if (and (eq (car sa)(car sb))) (progn (setq vo (vlax-ename->vla-object (car sa))) (setq re (abs (- (vlax-curve-getDistAtPoint vo (vlax-curve-getClosestPointTo vo (cadr sa) t) ) (vlax-curve-getDistAtPoint vo (vlax-curve-getClosestPointTo vo (cadr sb) t) ) ) ) ) ) (princ "\nWskazano rózne obiekty. ") ) (princ "\nNic nie wskazano. ") ) (princ "\nNic nie wskazano. ") ) (if re re (princ)) ) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.