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

Nhờ mn viết giúp em lisp vẽ hình chữ nhật

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

Em nhờ các anh chị viết giúp em 1 cái lisp vẽ hình chữ nhật với chiều rộng mình nhập vào , còn chiều dài sẽ giống như vẽ line pick 2 điểm thì 2 điểm đó là tâm của hình chữ nhật. 
Ví dụ em nhập w=12 sau đó pick 2 điểm thì kết quả như hình ạ.

hcn.png

  • Vote giảm 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
35 phút trước, ronaldo2002 đã nói:

đúng ý em luôn rồi ạ, tuyệt quá anh, cảm ơn anh nhiều nha!! 

Không biết mục đích ứng dụng của bạn như thế nào, vẽ nhà khảo sát or thiếp lập layout?

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

Em nhờ các anh chị viết giúp em 1 cái lisp vẽ hình chữ nhật với chiều rộng mình nhập vào , còn chiều dài sẽ giống như vẽ line pick 2 điểm thì 2 điểm đó là tâm của hình chữ nhật. 
Ví dụ em nhập w=12 sau đó pick 2 điểm thì kết quả như hình ạ.

 

Sao k xử lý bằng Mline cho gọn gàng và nhiều option hơn trước khi dùng lisp bạn nhỉ :)

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

Sao k xử lý bằng Mline cho gọn gàng và nhiều option hơn trước khi dùng lisp bạn nhỉ :)

Mline thì mỗi hình phải vào cài thông số lại em thấy hơi lâu. Nếu chỉ vẽ 1 hình thôi thì được.

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

Sao k xử lý bằng Mline cho gọn gàng và nhiều option hơn trước khi dùng lisp bạn nhỉ :)

Mline phải cài scale nhiều a ạ, với còn cần đóng khoảng hở 2 đầu nữa. E vẽ liên tục các tấm thép 6,9,12,16,... biết đc mid point của hcn thì e nghĩ lisp sẽ nhanh nhất, e thử Mline rồi mà mỗi lần ấn ML rồi S rồi nhập xong vẽ 2 line thì lâu hơn hẳn.
Chắc do e mới dùng cad nên cũng ko biết hoặc mline ko có cái tự vẽ 2 nét để thành hcnhat

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

Không biết mục đích ứng dụng của bạn như thế nào, vẽ nhà khảo sát or thiếp lập layout?

em vẽ mặt cắt cho các tấm panel với nhiều kích thước, đa số biết được 2 điểm ở trục. Mline hay offset đều lâu hơn là lisp ạ

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, ronaldo2002 đã nói:

Mline phải cài scale nhiều a ạ, với còn cần đóng khoảng hở 2 đầu nữa. E vẽ liên tục các tấm thép 6,9,12,16,... biết đc mid point của hcn thì e nghĩ lisp sẽ nhanh nhất, e thử Mline rồi mà mỗi lần ấn ML rồi S rồi nhập xong vẽ 2 line thì lâu hơn hẳn.
Chắc do e mới dùng cad nên cũng ko biết hoặc mline ko có cái tự vẽ 2 nét để thành hcnhat

Tạo Mline style tích thêm vào start với end ở mục line là sẽ được HCN.

Thấy Mline có tốc độ tương đương với lisp.

Nếu cần sửa lại bề dày thép tấm thì Mline không cần vẽ lại. Ctrl +1 mà sửa lại thôi.

Lisp thì hơn ML ở điểm là đối tượng nó sẽ là Polynine. Quản lý nét, màu sắc, hay dộ dày nét dễ dàng hơn ml

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, vietduc147258 đã nói:

Tạo Mline style tích thêm vào start với end ở mục line là sẽ được HCN.

Thấy Mline có tốc độ tương đương với lisp.

Nếu cần sửa lại bề dày thép tấm thì Mline không cần vẽ lại. Ctrl +1 mà sửa lại thôi.

Lisp thì hơn ML ở điểm là đối tượng nó sẽ là Polynine. Quản lý nét, màu sắc, hay dộ dày nét dễ dàng hơn ml

vâng anh

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ào lúc 14/12/2023 tại 06:22, ronaldo2002 đã nói:

em vẽ mặt cắt cho các tấm panel với nhiều kích thước, đa số biết được 2 điểm ở trục. Mline hay offset đều lâu hơn là lisp ạ

Tạo Mline với khoảng cách 2 element là 1 thì bạn Chỉ cần mấy dòng macro ntn thôi, sẽ nhanh hơn. Đã có lưu bề rộng (space để lấy giá trị trước đó)
 

(defun c:1()
	(or *width* (setq *width* 1))
	(command "mline" "j" "z" "s" (setq *width* (cond ((getdist (strcat "\nB\U+1EC1 r\U+1ED9ng <" (rtos *width* 2 2) "> :")))(*width*))))
)

- Ưu điểm :
+ Tạo style theo ý thích, đổi màu, đổi linetype, thêm trục ..., có thể chỉnh thuộc tính, có thể edit các vị trí giao cắt dễ dàng,  chỉnh justify blah blah
+ Trường hợp muốn nó thành Polyline như lisp ban đầu thì làm xong hết đi, explode -> Join
- Nhược điểm : là các nhược điểm cố hữu của Mline, như không edit được style sau khi đã vẽ, k vẽ cung cong ... nhưng mấy cái đó bài toán bạn đưa ra cũng k cần giải quyết :)
 

  • 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

 

Chào các bạn,

Tớ đã thử 2 code này với b = 123456789.123, l = 123456789.123.

Scale lên 1000 lần.

Và khi xoay ngang thì có chênh lệch delta x, delta y.

Theo ý tớ thì mình sẽ vẽ hình chữ nhật nằm ngang trước rồi sau đó xoay về đúng góc có lẽ sẽ không có sai số.

Đây là ý kiến của tớ, chứ chỉnh sửa lisp thì tớ không rành lắm.

 

Bổ sung: có khi xoay vẫn bị sai số do phép chia góc. Thôi bỏ qua vậy, nhỏ quá nên phải chấp nhận thôi.

 

 

image.png.abc4ee6e402ef87f8c7999df5768b424.png

 

Vào lúc 13/12/2023 tại 08:34, limfx đã nói:

Lệnh HCN, bạn nhập b và pick 2 điểm

Không biết có theo ý bạn chưa?

Rectangle pick (HCN).lsp

1 giờ} trướ}c, ketxu đã nói:

Tạo Mline với khoảng cách 2 element là 1 thì bạn Chỉ cần mấy dòng macro ntn thôi, sẽ nhanh hơn. Đã có lưu bề rộng (space để lấy giá trị 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
37 phút trước, ketxu đã nói:

Sao lại có chuyện đó hỉ :D

 

Chắc do mình thử thì nó vậy thôi. Có lẽ là do số lẻ khi vẽ hình chữ nhật theo phương chéo, rồi rotate nằm ngang, rồi đo chênh y.

Chỉ có cách scale lên 10.000 lần thì mới phát hiện được. Nhưng mà không quan trọng lắm nếu chấp nhận sai số nhỏ.

image.png.85a574c67ff4ac1aa92df5d8e17632eb.png

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

Mình nghĩ là do tay chân hoặc do xử lý float của CAD th :)

Làm việc với các số quá lớn hoặc quá nhỏ trong AutoCad/ZWCad/GstarCad... thì gặp lỗi này hoài á.

Nhiều khi các points nó còn theo Elon Musk bay vào vũ trụ nữa đó.

  • 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
Vào lúc 13/12/2023 tại 08:34, limfx đã nói:

image.png.977986e2a4dac520e2753e20f3a754b0.png

Lệnh HCN, bạn nhập b và pick 2 điểm

Không biết có theo ý bạn chưa?

Rectangle pick (HCN).lsp

xin nhờ anh với mn giúp em sửa 1 chút ạ, là giá trị bề rộng nếu k nhập sẽ lưu giá trị của lần thao tác trước đc k ạ, ví dụ lần trước dùng lệnh HCN mình đặt bề rộng là 9 nếu tiếp tục dùng sẽ là 9 như kiểu offset ấy nó lưu giá trị lần trc sử dụng.

  • Vote giảm 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
23 phút trước, limfx đã nói:

Tùy chọn  bản vẽ đã nhập b, lisp sẽ lấy giá trị trước đó đã nhập, nếu bạn enter nếu chấp nhận or nhập số mới

Rectangle pick (HCN).lsp

tuyệt vời luôn anh ạ, cảm ơn anh nhiều nha. Chúc anh sức khỏe ạ !

  • 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

Không liên quan lắm nhưng e có thể dùng lệnh vẽ tường của Yqarch để vẽ nhé, nó biết tấu được khá nhiều thứ có thể sửa được layer theo sở thích trong mục user1

 

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ào lúc 24/12/2023 tại 19:30, limfx đã nói:

Tùy chọn  bản vẽ đã nhập b, lisp sẽ lấy giá trị trước đó đã nhập, nếu bạn enter nếu chấp nhận or nhập số mới

Rectangle pick (HCN).lsp

Phiền anh một chút ạ, lisp a viết thì rất oke rồi nhưng khi em chuyển hệ trục tọa độ thì lisp vẽ ko được mà sẽ vẽ các hình về gốc tọa độ 0,0. Mong a có thời gian thì fix giúp em ạ, 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

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

×