Chuyển đến nội dung
Diễn đàn CADViet
TranAnhTuong

Nhờ viết LISP tạo hình chữ nhật từ LINE

Các bài được khuyến nghị

Nhờ mọi người viết dùm em 1 LISP tạo hình chữ nhật từ Line có trước. Chiều dài hình chữ nhật bằng với chiều dài line, chiều rộng hình chữ nhật nhập thông số ah!

Dưới đây là ảnh minh hoạ:

Untitled-1.jpg

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
Vừa xong, TranAnhTuong đã nói:

em cần bung 1 line có sẵn thành hình chữ nhật ah!

Có yêu cầu góc không bạn, bình thường thì quét rectang đến cuối đường line, kéo lên nhập chiều dài vẫn được mà

 

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

Dạ không anh! em thao tác với rất nhiều đường line lớn nhỏ khác nhau. nên cần dùng lisp để mọi việc nhanh chóng. Nó tương tự như lệnh offset 2 bên nhưng ở đây là mình sẽ nhập chiều rộng của hình chữ nhật!

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
4 phút trước, TranAnhTuong đã nói:

Thao tác như video này ah!

https://photos.app.goo.gl/SH71UuLmcSubALv78

Giống như lệnh offset sang 2 bên của line, polyline..., nhưng nối 2 đầu và xoá đường gốc. Phải không?

  • Like 1

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
1 giờ trước, thiep đã nói:

Giống như lệnh offset sang 2 bên của line, polyline..., nhưng nối 2 đầu và xoá đường gốc. Phải không?

Đúng rồi ah!

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

Mình cũng tham gia tý:

(defun c:tt  (/ a d e p s _lwpoly)
  (defun _lwpoly  (l)
    (entmake (append (list (cons 0 "LWPOLYLINE")
                           (cons 100 "AcDbEntity")
                           (cons 100 "AcDbPolyline")
                           (cons 90 (length l))
                           (cons 70 1))
                     (mapcar '(lambda (p) (cons 10 (trans p 1 0))) l))))
  (setq d (cond (#othedglin2rec#)
                (100)))
  (initget 2)
  (setq d (cond ((getdist (strcat "\nChieu dai canh khac <" (rtos d 2 2) ">: ")))
                (d)))
  (setq #othedglin2rec# d)
  (while (setq s (ssget '((0 . "LINE"))))
    (while (and (setq e (ssname s 0)) (ssdel e s))
      (setq p (mapcar '(lambda (x) (cdr (assoc x (entget e)))) '(10 11))
            a (apply 'angle p))
      (entdel e)
      (_lwpoly (mapcar '(lambda (x y) (polar x (+ a (* y pi)) (* 0.5 d)))
                       (append p (reverse p))
                       (list 0.5 0.5 1.5 1.5)))))
  (princ))

 

  • Like 2

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
16 phút trước, TranAnhTuong đã nói:

Đúng rồi ah!

Bạn xem ở topic này, lisp doubleoffset viết chung cho tất cả các đối tượng đường, LINE, LWPOLYLINE, SPLINE, ARC, CIRCLE, cùng 1 lúc chọn nhiều đường để doubleoffset, xoá hay không xoá đối tượng gốc, có hộp thoại.

https://www.cadviet.com/forum/topic/179621-nhờ-giúp-đỡ-về-lisp-offset-double/?do=findComment&amp;comment=444609

  • Like 1

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

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

×