Nhờ sửa lisp- thay tọa độ âm bằng khoảng cách dương trong AutoLisp Đã đăng Tháng 4 22, 2020 · Trả lời báo cáo Chào các bác, hiện tại e đang muốn chỉnh sửa 1 lisp. lisp đang nhận tọa độ có những tọa độ âm mà e muốn hiển thị kích là khoảng cách ( bỏ dấu âm) Và làm sao khi nhận object không nhận đường tròn nữa mà nhận đường tâm tròn ạ. code lisp ở dưới (defun c:TD(/ oldos ssd Lptx Lpty) (ChonLayer "DIM") (vl-load-com) (setq kc 10.0) (setq oldos (getvar "osmode")) (command "undo" "be") (setq ssd (Tue-ss-list (list (ssget '((0 . "*CIRCLE")))))) (command "ucs" "w") (setq goc (getpoint "\n Chon goc toa do tuong doi :")) (setvar "osmode" 0) (command "zoom" "e") (foreach x ssd (foreach z (vl-sort (Tue-ent-Lpoint x) '(lambda(x1 x2) (if (= (car x1) (car x2)) (< (cadr x1) (cadr x2)) (< (car x1) (car x2)) ) ) ) (if (not (member (- (car z) (car goc)) (mapcar 'car Lptx))) (setq Lptx (append Lptx (list(list (- (car z) (car goc)) z)))) ) )) (foreach x ssd (foreach z (vl-sort (Tue-ent-Lpoint x) '(lambda(x1 x2) (if (= (cadr x1) (cadr x2)) (< (car x1) (car x2)) (< (cadr x1) (cadr x2))) ) ) (if (not (member (- (cadr z) (cadr goc)) (mapcar 'car Lpty))) (setq Lpty (append Lpty (list(list (- (cadr z) (cadr goc)) z)))) ) ) ) (foreach z Lptx (command "DIMORDINATE" (cadr z) "t" (rtos (car z) 2 2) "x" (list (caadr z) (+ (cadr (cadr z)) kc) 0.0) ) ) (foreach z Lpty (command "DIMORDINATE" (cadr z) "t" (rtos (car z) 2 2) "y" (list (- (caadr z) kc) (cadr (cadr z)) 0.0) ) ) (command "zoom" "p") (setvar "osmode" oldos) (command "ucs" "p") (command "undo" "e") )
Nhờ sửa lisp- thay tọa độ âm bằng khoảng cách dương
trong AutoLisp
Đã đăng · Trả lời báo cáo
Chào các bác, hiện tại e đang muốn chỉnh sửa 1 lisp. lisp đang nhận tọa độ có những tọa độ âm mà e muốn hiển thị kích là khoảng cách ( bỏ dấu âm)
Và làm sao khi nhận object không nhận đường tròn nữa mà nhận đường tâm tròn ạ.
code lisp ở dưới
(defun c:TD(/ oldos ssd Lptx Lpty)
(ChonLayer "DIM")
(vl-load-com)
(setq kc 10.0)
(setq oldos (getvar "osmode"))
(command "undo" "be")
(setq ssd (Tue-ss-list (list (ssget '((0 . "*CIRCLE"))))))
(command "ucs" "w")
(setq goc (getpoint "\n Chon goc toa do tuong doi :"))
(setvar "osmode" 0)
(command "zoom" "e")
(foreach x ssd
(foreach z (vl-sort (Tue-ent-Lpoint x) '(lambda(x1 x2) (if (= (car x1) (car x2)) (< (cadr x1) (cadr x2)) (< (car x1) (car x2)) )
) )
(if (not (member (- (car z) (car goc)) (mapcar 'car Lptx)))
(setq Lptx (append Lptx (list(list (- (car z) (car goc)) z))))
)
))
(foreach x ssd
(foreach z (vl-sort (Tue-ent-Lpoint x) '(lambda(x1 x2) (if (= (cadr x1) (cadr x2)) (< (car x1) (car x2)) (< (cadr x1) (cadr x2)))
) )
(if (not (member (- (cadr z) (cadr goc)) (mapcar 'car Lpty)))
(setq Lpty (append Lpty (list(list (- (cadr z) (cadr goc)) z))))
)
)
)
(foreach z Lptx
(command "DIMORDINATE" (cadr z) "t" (rtos (car z) 2 2) "x" (list (caadr z) (+ (cadr (cadr z)) kc) 0.0) )
)
(foreach z Lpty
(command "DIMORDINATE" (cadr z) "t" (rtos (car z) 2 2) "y" (list (- (caadr z) kc) (cadr (cadr z)) 0.0) )
)
(command "zoom" "p")
(setvar "osmode" oldos)
(command "ucs" "p")
(command "undo" "e")
)