HauDV 2 Báo cáo bài đăng Đã đăng Tháng 7 31 Vào lúc 20/4/2020 tại 08:25, Doan Nguyen Van đã nói: (Defun c:te (/ ss p1 p2 x a e) (Setq ss (ssget '(( 0 . "INSERT")))) (setq p1 (getpoint "pick diem chen") p2 (getpoint p1 "pick phuong, khoang cach")) (setq x (distance p1 p2) a (angle p1 p2)) (while (setq e (ssname ss 0)) (setq ss (ssdel e ss)) (command "copy" e "" "_NON" (cdr (assoc 10 (entget e))) "_NON" p1) (setq p1 (polar p1 a x))) ) e chào a, a có thể sửa giúp e lisp này để sắp xếp các khung rectang thành 1 hàng và khoảng cách giữa các rectang là một hằng số (ví dụ: 100) được không ạ. Điểm chèn của rectang là đỉnh trên bên trái ạ e cảm ơn a! Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
cuongtk2 415 Báo cáo bài đăng Đã đăng Tháng 7 31 @HauDV Lệnh viết khác một chút, bạn có thể điều chỉnh giá trị khoảng hở tại d 100, (defun c:test ( / D KC KQ P0 P1 P2 SS TONG) (defun upleft (obj) (vla-getboundingbox obj 'p1 'p2) (setq p1 (vlax-safearray->list p1) p2 (vlax-safearray->list p2)) (list (- (car p2) (car p1)) (list (car p1) (cadr p2) (caddr p2))) ) (setq ss (mapcar 'vlax-ename->vla-object (ACET-SS-TO-LIST (ssget '(( 0 . "LWPOLYLINE")))))) (setq ss (vl-sort ss '(lambda (o1 o2) (< (car (cadr (upleft o1))) (car (cadr (upleft o2)))) ) ) ) (setq tong 0 d 100 ; dat gia tri khoang ho la 100 p0 (cadr (upleft (car ss))) ) (foreach obj ss (progn (setq kq (upleft obj) kc (car kq) p1 (cadr kq)) (vla-move obj (vlax-3d-point p1) (vlax-3d-point (list (+ (car p0) tong) (cadr p0) (caddr p0))) ) (setq tong (+ tong kc d)) ) ) ) Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
HauDV 2 Báo cáo bài đăng Đã đăng Tháng 7 31 16 giờ trước, cuongtk2 đã nói: @HauDV Lệnh viết khác một chút, bạn có thể điều chỉnh giá trị khoảng hở tại d 100, (defun c:test ( / D KC KQ P0 P1 P2 SS TONG) (defun upleft (obj) (vla-getboundingbox obj 'p1 'p2) (setq p1 (vlax-safearray->list p1) p2 (vlax-safearray->list p2)) (list (- (car p2) (car p1)) (list (car p1) (cadr p2) (caddr p2))) ) (setq ss (mapcar 'vlax-ename->vla-object (ACET-SS-TO-LIST (ssget '(( 0 . "LWPOLYLINE")))))) (setq ss (vl-sort ss '(lambda (o1 o2) (< (car (cadr (upleft o1))) (car (cadr (upleft o2)))) ) ) ) (setq tong 0 d 100 ; dat gia tri khoang ho la 100 p0 (cadr (upleft (car ss))) ) (foreach obj ss (progn (setq kq (upleft obj) kc (car kq) p1 (cadr kq)) (vla-move obj (vlax-3d-point p1) (vlax-3d-point (list (+ (car p0) tong) (cadr p0) (caddr p0))) ) (setq tong (+ tong kc d)) ) ) ) e cảm ơn a nhiều ạ! Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác