Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;работает запуск диалога
- ;(defun c:hello ()
- ; (setq dcl_id (load_dialog "D:\\hello.dcl"))
- ; (if (not (new_dialog "hello" dcl_id) ) (exit))
- ; (action_tile "accept" "(done_dialog)")
- ; (start_dialog)
- ; (unload_dialog dcl_id)
- ;)
- ;получает координаты начала и конца, но только для 1 отрезка (последнего)
- (setq dx 10.0)
- (setq dy 10.0)
- (setq naborLine (ssget "X" '((0 . "LINE"))))
- (setq naborPolyline (ssget "X" '((0 . "LWPOLYLINE"))))
- (setq sizeLine (sslength naborLine))
- (setq sizePolyline (sslength naborPolyline))
- (setq i 0)
- (setq j 0)
- ;-----------------------------------------------------------------------------------------------------------
- (while (< i sizeLine)
- (setq P (ssname naborLine i))
- (setq prim (entget P))
- (setq startL (assoc 10 prim)) ;список начала
- (setq endL (assoc 11 prim)) ;список конца
- (setq start (cdr startL)) ;координты начала
- (setq end (cdr endL)) ;координаты конца
- (setq xs (car start)) ;X координата начала
- (setq ys (cadr start)) ;Y координата начала
- (setq xe (car end)) ;X координата конца
- (setq ye (cadr end)) ;Y координата конца
- (setq newxe xe)
- (setq newye ye)
- (setq vX (abs (- xs xe)))
- (setq vY (abs (- ys ye)))
- (cond
- ((< vX dx) (setq newxe xs)) ;новое значение X конца отрезка, если TRUE
- ((< vY dy) (setq newye ys)) ;новое значение Y конца отрезка, если TRUE
- )
- (setq new_end (list 11 newxe newye 0.0)) ;создание нового списка координат конца
- (setq prim (subst new_end endL prim)) ;замена старого списка с координатами конца преобразованным
- (entmod prim) ;применение изменений
- (setq i (1+ i))
- )
- ;-----------------------------------------------------------------------------------------------------------
- ;(while (< j sizePolyline)
- (foreach n (entget (ssname naborPolyline 0))
- (if (= 10 (car n)) (print n)))
- ;(entupd prim) ;регенерация примитива
- ;)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement