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

Viết giúp lisp cad trải mặt phẳng từ hình được chọn

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

 image.png.b622fcf6ed23bb7e7dee4eedfe1baafd.pngimage.thumb.png.52c6d052d4946e427fc67aa92e01eeb6.png
ví dụ biết 2 đường tròn đồng tâm r1 = 300 r2= 360 h bằng 60. lisp này có thể trải cái mặt chéo của nó thành mặt phẳng hình quạt. nếu có thể trải được hình khác nữa càng tốt ạ. Xin cảm ơn mọi người đã đọc bài viết <3

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

Kết quả trải phẳng từ hình nón mẹ.

Bán kính trong : 424,25

Bán kính ngoài : 509,10

Góc mở : 254,56 độ

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
(defun c:TraiNonCut (/ p1 r1 r2 h L rArc2 rArc1 theta pCenter pStart1 pStart2)
  (setq r1 (getdist "\nNhập bán kính nhỏ (r1): "))
  (setq r2 (getdist "\nNhập bán kính lớn (r2): "))
  (setq h  (getdist "\nNhập chiều cao (h): "))
  (setq pCenter (getpoint "\nChọn điểm đặt hình trải: "))

  (if (and r1 r2 h pCenter (> r2 r1))
    (progn
      ;; Tính toán thông số
      (setq L (sqrt (+ (expt h 2) (expt (- r2 r1) 2))))
      (setq rArc2 (/ (* r2 L) (- r2 r1)))
      (setq rArc1 (- rArc2 L))
      (setq theta (/ (* 2 pi r2) rArc2))

      ;; Vẽ cung lớn (Arc 2)
      (entmake
        (list
          '(0 . "ARC")
          (cons 10 pCenter)
          (cons 40 rArc2)
          (cons 50 0.0)
          (cons 51 theta)
        )
      )

      ;; Vẽ cung nhỏ (Arc 1)
      (entmake
        (list
          '(0 . "ARC")
          (cons 10 pCenter)
          (cons 40 rArc1)
          (cons 50 0.0)
          (cons 51 theta)
        )
      )

      ;; Vẽ 2 đường line nối đầu mút
      (setq pStart1 (polar pCenter 0.0 rArc1))
      (setq pEnd1   (polar pCenter 0.0 rArc2))
      (setq pStart2 (polar pCenter theta rArc1))
      (setq pEnd2   (polar pCenter theta rArc2))

      (entmake (list '(0 . "LINE") (cons 10 pStart1) (cons 11 pEnd1)))
      (entmake (list '(0 . "LINE") (cons 10 pStart2) (cons 11 pEnd2)))
    )
    (princ "\nThông số không hợp lệ (r2 phải lớn hơn r1).")
  )
  (princ)
)

Nó đơn giản vậy thôi.

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

×