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

[Yêu cầu] Chuyển cao độ Z của các loại đối tượng về Z=0 !

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

Thực tế khi vẽ bản vẽ CAD, nhiều khi ta dùng lệnh fillet các đối tượng đã có từ trước, nhưng ko fillet được. nguyên nhân là do cao độ Z (elevation) khác 0 và start Z và end Z của line khác 0. Như vậy để fillet được ta phải chỉnh thủ công các giá trị elevation và start Z, end Z về 0. Như vậy cũng hơi mất thời gian một chút bởi các đối tượng thuộc bình đồ rất nhiều. Vậy em mong các anh chị trên diễn đàn viết giúp em cái lisp chuyển elevation và start Z, end Z của tất cả các đối tượng về giá trị 0 để khi dùng fillet không bị lỗi. Em xin chân thành cảm ơ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

@hanam : Tiền tố là [Yêu cầu] bạn nhé :)

Yêu cầu của bạn có thể sử dụng flatten trong Express, hoặc nếu làm lisp thì cũng phải có file minh họa, loại đối tượng....

Ví dụ sau sử dụng với đa số đối tượng, trừ 3D - Block :

(defun c:flat ( / acsel elv ) (vl-load-com)
 (if (ssget "_X" (list (cons 410 (getvar 'CTAB))))
(progn
 	(vlax-for obj
   	(setq acsel
     	(vla-get-ActiveSelectionSet
       	(vla-get-ActiveDocument (vlax-get-acad-object))
     	)
   	)
   	(foreach elv '(1e99 -1e99)
     	(vl-catch-all-apply 'vla-move
       	(list obj (vlax-3D-point '(0. 0. 0.)) (vlax-3D-point (list 0. 0. elv)))
     	)
   	)
 	)
 	(vla-delete acsel)
)
 )
 (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

hihi.ngon rồi, cảm ơn bác KETXU nhé. Cảm ơn diễn đàn, chúc diễn đàn mình ngày một lớn mạnh, có nhìêu "cao thủ đầu có mủ" như bác KETXU.hihi.( Cao thủ đầu có mủ giỏi hơn cao thủ đó ạ). Có cái lisp này thì làm bình đồ sẽ nhanh hơn rất nhiều. hì hì.

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

Ngày xưa mình cũng hay vẽ bình đồ, mặt bằng,.. và cũng hay dính cái này

đôi khi lệnh flatten cũng k0 đủ mạnh để là phẳng mọi thứ, và mình lên mạng tìm được cái lisp supperflatten của bọn nước ngoài

May mà trong thư mục LISP của mình vẫn còn

 

Đown đây nhé:

http://www.cadviet.com/upfiles/3/superflatten.rar

  • 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

Thực tế khi vẽ bản vẽ CAD, nhiều khi ta dùng lệnh fillet các đối tượng đã có từ trước, nhưng ko fillet được. nguyên nhân là do cao độ Z (elevation) khác 0 và start Z và end Z của line khác 0. Như vậy để fillet được ta phải chỉnh thủ công các giá trị elevation và start Z, end Z về 0. Như vậy cũng hơi mất thời gian một chút bởi các đối tượng thuộc bình đồ rất nhiều. Vậy em mong các anh chị trên diễn đàn viết giúp em cái lisp chuyển elevation và start Z, end Z của tất cả các đối tượng về giá trị 0 để khi dùng fillet không bị lỗi. Em xin chân thành cảm ơn !

Có thể anh dùng CAD đời cũ, nên nó mới "giườm già" rắc rối lôi thôi thế thôi, hoặc giả cũng có thể anh đã Fillet " quá tải" R lớn hơn cạnh nhỏ của hai cạnh cần Fillet. Lệnh Fillet nó xuề xòa và dễ tính lắm, hai đường thẳng ở bất cứ chân trời góc biển nào trong không gian, nó đều vê đầu tròn được hết!

Nếu anh dùng CAD2011 trở lên để là các đối tượng về Z=0 chỉ cần dùng lệnh Flatten, lệnh tắt là FT đảm bảo nhanh hơn dùng 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

ghi nhận sự đóng góp của Hoan, CAD 2008 cũng có lệnh đó. Nhưng sau khi đánh lệnh và chọn đối tượng thì các thuộc tính Z vẫn nguyên xi như cũ. Bạn cứ kiểm tra lại xem nhé ! với lại mình chỉ dùng đến CAD 2010 thôi, từ bản 2011 trở nên nặng. và cũng không cải thiện được tính năng gì hơn nên mình không dù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

Em đã làm thử bằng cách vẽ khối hộp chữ nhật đặc bằng lệnh BOX >> EXPLODE phá vỡ khối solid >> EXPLODE phá vỡ tiếp faces >>> Vẽ loằng ngoằng các đường thẳng có cao độ Z khác 0 >>> Thực hiện lệnh Flatten ngon lành.

Anh nên cài CAD2011 dùng cho sướng, tội gì phải dùng CAD đời cũ cho khổ ra!

Command: Flatten

Select objects to convert to 2d...

Select objects: Specify opposite corner: 42 found

Select objects:

Remove hidden lines? <No>:

Command:

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

Em đã làm thử bằng cách vẽ khối hộp chữ nhật đặc bằng lệnh BOX >> EXPLODE phá vỡ khối solid >> EXPLODE phá vỡ tiếp faces >>> Vẽ loằng ngoằng các đường thẳng có cao độ Z khác 0 >>> Thực hiện lệnh Flatten ngon lành.

Anh nên cài CAD2011 dùng cho sướng, tội gì phải dùng CAD đời cũ cho khổ ra!

Command: Flatten

Select objects to convert to 2d...

Select objects: Specify opposite corner: 42 found

Select objects:

Remove hidden lines? <No>:

Command:

Flatten là dùng để convert 3D => 2D còn ý của bạn Hnam1210 yêu cầu là chuyển Start Z và elevation về 0. 2 cái khác nhau

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

Flatten là dùng để convert 3D => 2D còn ý của bạn Hnam1210 yêu cầu là chuyển Start Z và elevation về 0. 2 cái khác nhau

Flatten không convert 3D solid về 2D , nó chỉ có tác dụng là các đối tượng không phải là 3D solid về Z=0, 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

Cảm ơn bạn. Bác KETXU viết lisp xử được vấn đề của mình rồi. Bạn post lisp lên nhưng ko cho biết tên lệnh ? vì là .VLX mà ?

Lệnh là "SuperIron". Mỗi lần Load, bạn nhấn F2 để biế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

Ngày xưa mình cũng hay vẽ bình đồ, mặt bằng,.. và cũng hay dính cái này

đôi khi lệnh flatten cũng k0 đủ mạnh để là phẳng mọi thứ, và mình lên mạng tìm được cái lisp supperflatten của bọn nước ngoài

May mà trong thư mục LISP của mình vẫn còn

 

Đown đây nhé:

http://www.cadviet.com/upfiles/3/superflatten.rar

Cám ơn bạn!

Lisp rất hay. Khi sử dụng lisp này các block nằm trong block không bị lỗi. Trong khi lisp của bạn Ketxu hình như bị vướng lỗi này. Các bạn khác khi sử dụng có thể test lại để mọi người sử dụng đc lisp ổn định nhất.

Thâ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

các bác cho em hỏi. có cách nào để đưa đường Mline về Z=0 được không. 

Vẫn là point 10 và point 11 có z khác 0.  Như line 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

×