Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Đăng nhập để thực hiện theo  
quan08

[Yêu cầu] Vẽ hình chữ nhật

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

quan08    0

Nhờ các bác viết giùm e đoạn lisp vẽ hình chữ nhật cho nhập điểm chèn,bề rộng,chiều cao như file đính kèm dưới đây:

http://www.cadviet.com/upfiles/3/drawing1_88.dwg

Mong các bác bớt chút thời gian giúp e.Chân thành cảm ơn trước.

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
npham    75

Day ban.

 

 

(defun c:hcn (/ p1 p2 p3 p4 p5 p6 p7 h B)
(if (and
 	(setq h (getreal "\nH:"))
 	(setq b (getreal "\nb:"))
 	(setq p3 (getpoint "\nPoint:"))
 	)
 (progn

(setq p2 (polar p3 (* pi 0.5) (+ h 21))
 	p1 (polar p2 (* pi 1.75) 66)
 	p4 (polar p3 0 B)
 	p5 (polar p4 (* pi 0.5) h)
 	p6 (polar p5 pi (+ b 21))
 	p7 (polar p6 (* pi 1.75) 66))
(command "pline" p1 p2 p3 p4 p5 p6 p7 "")
(princ)
)
 )
 )

  • Vote tăng 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
quan08    0

Day ban.

 


(defun c:hcn (/ p1 p2 p3 p4 p5 p6 p7 h B)
(if (and
 	(setq h (getreal "\nH:"))
 	(setq b (getreal "\nb:"))
 	(setq p3 (getpoint "\nPoint:"))
 	)
 (progn

(setq p2 (polar p3 (* pi 0.5) (+ h 21))
 	p1 (polar p2 (* pi 1.75) 66)
 	p4 (polar p3 0 B)
 	p5 (polar p4 (* pi 0.5) h)
 	p6 (polar p5 pi (+ b 21))
 	p7 (polar p6 (* pi 1.75) 66))
(command "pline" p1 p2 p3 p4 p5 p6 p7 "")
(princ)
)
 )
 )

Cảm ơn bạn nhưng có 1 lỗi là khi vẽ 1 hình chữ nhật kích thước bất kỳ thì ra đúng như yêu cầu,hình thứ n cùng kích thước với hình đầu thì lisp vẫn thực hiện đúng nhưng khi vẽ hình chữ nhật kích thước khác thì bị lỗi vẽ hcn không đúng yêu cầu.Mong bạn và các bác xem giúp.Thanks.

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

Day ban.

 


(defun c:hcn (/ p1 p2 p3 p4 p5 p6 p7 h B)
(if (and
 	(setq h (getreal "\nH:"))
 	(setq b (getreal "\nb:"))
 	(setq p3 (getpoint "\nPoint:"))
 	)
 (progn

(setq p2 (polar p3 (* pi 0.5) (+ h 21))
 	p1 (polar p2 (* pi 1.75) 66)
 	p4 (polar p3 0 B)
 	p5 (polar p4 (* pi 0.5) h)
 	p6 (polar p5 pi (+ b 21))
 	p7 (polar p6 (* pi 1.75) 66))
(command "pline" p1 p2 p3 p4 p5 p6 p7 "")
(princ)
)
 )
 )

Bác gì ơi ! giờ bác thêm một đoạn lisp để gán layer và dim cho hình trên được không !

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
cd2k44    121

Bác gì ơi ! giờ bác thêm một đoạn lisp để gán layer và dim cho hình trên được không !

Đầy mình gửi bạn lisp này,nó gán layer thep làm layer để vẽ hình chữ nhật

(defun c:hcn ()
 (setq luubatdiem (getvar "osmode"))
 (setvar "osmode" 0)
 (command "undo" "begin")
 (command "-layer" "m" "thep" "c" "1" "" "l" "" "" "")
 (setq W (getreal "\n nhap chieu rong(mm):")
H (getreal "\n nhap chieu cao(mm):")
P1 (getpoint "\n chon diem chuan:")
P2 (polar P1 0.00 W)
P3 (polar P2 (/ pi 2) H)
P4 (polar P3 pi W)
p5 (polar p4 (/ pi 2) 21)
p6 (polar p5 (* pi 1.75) 66)
p7 (polar p4 pi 21)
p8 (polar p7 (* pi 1.75) 66)
)
 (command "pline" p8 p7 p4 p3 p2 p1 p4 p5 p6 "")
 (setvar "osmode" luubatdiem)
 (command "undo" "end")
 (princ)
 )

  • Vote tăng 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
cd2k44    121

Cảm ơn bạn nhưng có 1 lỗi là khi vẽ 1 hình chữ nhật kích thước bất kỳ thì ra đúng như yêu cầu,hình thứ n cùng kích thước với hình đầu thì lisp vẫn thực hiện đúng nhưng khi vẽ hình chữ nhật kích thước khác thì bị lỗi vẽ hcn không đúng yêu cầu.Mong bạn và các bác xem giúp.Thanks.

Cái này theo mình do bạn vẽ hình chữ nhật trước rồi vẽ tiếp các hình chữ nhật khác,trong lisp không tắt chế độ bắt điềm nên bị lỗi thôi.Bài viết dưới mình đã chỉnh lại rồi đó bạn

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

Đầy mình gửi bạn lisp này,nó gán layer thep làm layer để vẽ hình chữ nhật

(defun c:hcn ()
 (setq luubatdiem (getvar "osmode"))
 (setvar "osmode" 0)
 (command "undo" "begin")
 (command "-layer" "m" "thep" "c" "1" "" "l" "" "" "")
 (setq W (getreal "\n nhap chieu rong(mm):")
H (getreal "\n nhap chieu cao(mm):")
P1 (getpoint "\n chon diem chuan:")
P2 (polar P1 0.00 W)
P3 (polar P2 (/ pi 2) H)
P4 (polar P3 pi W)
p5 (polar p4 (/ pi 2) 21)
p6 (polar p5 (* pi 1.75) 66)
p7 (polar p4 pi 21)
p8 (polar p7 (* pi 1.75) 66)
)
 (command "pline" p8 p7 p4 p3 p2 p1 p4 p5 p6 "")
 (setvar "osmode" luubatdiem)
 (command "undo" "end")
 (princ)
 )

khi mình tạo ra 3 layer thì mình muốn gán 1 trong 1 la đó vào đối tượng thì làm thế nào đc ahm, hihihi Dã tâm của em là đang tập gán layer và Dim cho đối tượng.

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
cd2k44    121

Bạn muốn thê hiện các dim như thế nào chứ bạn.Như bản vẽ mẫu hay sao.Nếu vậy thì loằng ngoằng trong bản vẽ quá,không ứng dụng thực tế lắ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

Bạn muốn thê hiện các dim như thế nào chứ bạn.Như bản vẽ mẫu hay sao.Nếu vậy thì loằng ngoằng trong bản vẽ quá,không ứng dụng thực tế lắm

không cần phức tập quá đâu bác, chỉ cần đo dim ra hiện số là đc, rồi tạo màu Text cho dim, kiểu đường.. thế thui, với cái ý trên nữa đó là nếu có nhiều layer thì mình muốn gán đối tượng cho 1 layer nào đó thì làm sao đc ! thanh

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
ketxu    2.649

Sử dụng Command dim với 3 đối số tiếp theo là điểm đầu, điểm cuối, điểm gióng dim thôi bạn :)

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

Sử dụng Command dim với 3 đối số tiếp theo là điểm đầu, điểm cuối, điểm gióng dim thôi bạn :)

Nói không phức tạp nhưng nó cũng cần : kiểu đường gióng, kiểu text, màu text.. và quan trọng là khi Dim mình thường phải chỉnh tỷ lệ về chiều cao text.. để hợp lý. Anh ket làm cho em một đoạn mẫu Lisp : vẻ 1 đoạn thẳng ra gán nó co layer tạo ra, đo dim hoàn chỉnh đc không? Thank

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
ketxu    2.649

không cần phức tập quá đâu bác, chỉ cần đo dim ra hiện số là đc, rồi tạo màu Text cho dim, kiểu đường.. thế thui, với cái ý trên nữa đó là nếu có nhiều layer thì mình muốn gán đối tượng cho 1 layer nào đó thì làm sao đc ! thanh

Nói không phức tạp nhưng nó cũng cần : kiểu đường gióng, kiểu text, màu text.. và quan trọng là khi Dim mình thường phải chỉnh tỷ lệ về chiều cao text.. để hợp lý. Anh ket làm cho em một đoạn mẫu Lisp : vẻ 1 đoạn thẳng ra gán nó co layer tạo ra, đo dim hoàn chỉnh đc không? Thank

mr sang topic Hướng dẫn lập trình lisp nhé

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
tungbatu    2

bạn nào có biết ấn vào đâu trên diễn đàn để gửi bài không chỉ mình với ,vào phần hướng dẫn nó không hiện lên ảnh mò mãi cũng không thấy đâu, thông cảm nha mình cũng ít lên diễn đàn

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
790312    4

Chắc ý chủ thớt vẽ cốt đai đây.

Mình thêm dòng :

(command "fillet" "r" "90")

(command "fillet" "p" "l")

dưới dòng

(command "pline" p8 p7 p4 p3 p2 p1 p4 p5 p6 "")

Sao nó chỉ bo được 3 góc,nhờ các bác xem giúp bo luôn góc kia giống file đính kèm giùm mình.

http://www.cadviet.com/upfiles/3/drawing1_89.dwg

Thanks.

  • Vote tăng 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
790312    4

Chắc ý chủ thớt vẽ cốt đai đây.

Mình thêm dòng :

(command "fillet" "r" "90")

(command "fillet" "p" "l")

dưới dòng

(command "pline" p8 p7 p4 p3 p2 p1 p4 p5 p6 "")

Sao nó chỉ bo được 3 góc,nhờ các bác xem giúp bo luôn góc kia giống file đính kèm giùm mình.

http://www.cadviet.c...drawing1_89.dwg

Thanks.

Không ai giúp được mình sao?Mong nhận được sự giúp đỡ của các bác!!!!!!!!!

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
duy782006    1.373

Chắc ý chủ thớt vẽ cốt đai đây.

Mình thêm dòng :

(command "fillet" "r" "90")

(command "fillet" "p" "l")

dưới dòng

(command "pline" p8 p7 p4 p3 p2 p1 p4 p5 p6 "")

Sao nó chỉ bo được 3 góc,nhờ các bác xem giúp bo luôn góc kia giống file đính kèm giùm mình.

http://www.cadviet.c...drawing1_89.dwg

Thanks.

(command "pline" p8 p7 p3 p2 p1 p5 p6 "")

Bỏ p4 đi thì nó bo ầm ầm cho bạn.

Lý do vìcó điểm p4 nên bán kính bo ị vượt phân đoạn nên ko bo được. Thực chất bạn ko cần xác định p4 làm cái giề

  • Vote tăng 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
lp_hai    207

bạn kiểm ra lại bán kính R có quá lớn không?

đúng vậy, chiều dài đoạn thép móc có 66 mà R=90 thì làm sao bo??

Mình cũng xin hỏi chủ Topic là bạn vẽ hình thép đai này ứng dụng thực tế hay để học hỏi lisp? Bởi cái R90 là quá lớn, ai mà bẻ thép như vậy.

Bạn có thể nội suy ra chính xác các điểm tại vị trí móc thép rồi vẽ PL (có thể chứa arc)

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

Đăng nhập để thực hiện theo  

×