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  
trangnhung

[Yêu cầu] các bác giúp em 1 lisp về lệnh Break

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

trangnhung    0

e có một việc nhờ các bác giúp 1 tay. Các bác giúp e xem có thể viết 1 lisp thỏa mãn yêu cầu sau hay không: trên 1 đường thẳng AB 1 cẩn break 2 điểm C, D. sau khi break xong 2 điểm C, D thì đoạn thẳng CD có thể chuyển thành nét đứt, hay đổi sang màu khác được không. mong các bác giúp 1 tay. Chân thành cảm ơn. Chúc diễn đàn ngày 1 phát triển. 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
Doan Van Ha    2.676

e có một việc nhờ các bác giúp 1 tay. Các bác giúp e xem có thể viết 1 lisp thỏa mãn yêu cầu sau hay không: trên 1 đường thẳng AB 1 cẩn break 2 điểm C, D. sau khi break xong 2 điểm C, D thì đoạn thẳng CD có thể chuyển thành nét đứt, hay đổi sang màu khác được không. mong các bác giúp 1 tay. Chân thành cảm ơn. Chúc diễn đàn ngày 1 phát triển. thân !

 

Code nhanh.

(defun C:HA(/ p1 p2 ent)
(setq oldos (getvar "osmode"))
(setq p1 (getpoint "\nDiem 1: "))
(setq p2 (getpoint p1 "\nDiem 2: "))
(setq ent (car (nentselp p1)))
(setvar "osmode" 0)
(command "break" ent p1 p2)
(command "line" p1 p2 "")
(command "change" (entlast) "" "p" "c" 1 "")
(setvar "osmode" oldos)
(princ))

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
trangnhung    0

Hix các bác giúp em với. Lisp của bác Hà chỉ dùng cho đường pline nằm ngang, còn với đường pline cong thì khi dùng lisp của bác Hà thì đường cong lại chuyển về đường thẳng. các bác sửa giúp em vẫn đề này không. nghĩa là khi mình chọn điểm 1 và điểm 2 xong thì đoạn thẳng từ 2 điểm 1,2 sẽ chuyễn về nét đứt mà không thay đổi tính chất của đường thẳng đó đc ko. Mong các bác quan tâm. 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
Doan Van Ha    2.676

Hix các bác giúp em với. Lisp của bác Hà chỉ dùng cho đường pline nằm ngang, còn với đường pline cong thì khi dùng lisp của bác Hà thì đường cong lại chuyển về đường thẳng. các bác sửa giúp em vẫn đề này không. nghĩa là khi mình chọn điểm 1 và điểm 2 xong thì đoạn thẳng từ 2 điểm 1,2 sẽ chuyễn về nét đứt mà không thay đổi tính chất của đường thẳng đó đc ko. Mong các bác quan tâm. Chân thành cảm ơn !

 

Đề của bạn ban đầu là đường thẳng, bây giờ bạn mới thêm đường cong. Với lại, thấy trên diễn đàn đã có lisp kiểu này rồi nên viết thêm sợ bị loãng. Bạn cố gắng tìm 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
gia_bach    1.442

e có một việc nhờ các bác giúp 1 tay. Các bác giúp e xem có thể viết 1 lisp thỏa mãn yêu cầu sau hay không: trên 1 đường thẳng AB 1 cẩn break 2 điểm C, D. sau khi break xong 2 điểm C, D thì đoạn thẳng CD có thể chuyển thành nét đứt, hay đổi sang màu khác được không. mong các bác giúp 1 tay. Chân thành cảm ơn. Chúc diễn đàn ngày 1 phát triển. thân !

Thử Lisp biến 1 phần của đoạn thẳng trở thành nét Hidden2 (viết cũng đuợc 2 năm rồi)

link : http://www.cadviet.com/forum/index.php?showtopic=15057&view=findpost&p=79984

  • 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
trangnhung    0

Các bác admin ơi giúp em với. Tại sao lisp lại không thể thực hiện được trên Nova hay TKKpro nhỉ. Em gửi bản vẽ mẫu cho các bác xem thử giúp em với. em 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
phamthanhbinh    3.123

 

Hix không bác nào giúp em À. hu hu hu !

Hề hề hề,

Sao lại khóc nhè thế kia. vấn đề bạn đặt ra thực là có tí khó khăn do các Polyline của bạn. Với các polyline này việc break nó hơi loằng ngoằng do sau khi break nó tạo ra hai đối tượng mới toe, chả có họ hàng chi với thằng cũ nên hơi khó mần. Tuy nhiên không hẳn là không có cách. bạn hãy ráng chớ chút xíu xem sao chứ khóc hoài như vầy hổng ăn thua chi mô. Tội lắm, tội lắm lắm...

Hề 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
phamthanhbinh    3.123

 

Hix không bác nào giúp em À. hu hu hu !

Hề hề hề,

Đây rồi, nín đi nha.

Dùng thử coi có gì chưa ưng ý thì post lên nhé. Nhưng mà nhớ đọc kỹ hướng dẫn trước khi dùng kẻo mà lại khóc oan đó.

Hướng dẫn sủ dụng như sau:

1/- Load lisp vô bản vẽ

2/- Gõ lệnh brpl rùi enter.

3/- Khi lisp yêu cầu chọn điểm break thứ nhất thì nhớ phải chọn sao cho nó gần với điểm đầu của polyline (có cái dây tóc chỉ rõ điểm đầu ở mô đó) hơn là cái điểm break thứ hai sẽ được chọn sau đó. Cái ni mà chọn lộn là lisp nó nỏ biết đường đi mô, Rứa là nó chạy ra cái chi ráng chịu cái đó nha.

4/- Nếu như thấy cái kết quả chưa ưng thì hãy gõ undo để trả bản vẽ về nguyên trạng thái ban đầu nghen.

 

Hề hề hề, lisp đây ạ:


(defun c:brpl ( / oldos ent obj pd p1 p2 enp )
(vl-load-com)
(command "undo" "be")
(setq oldos (getvar "osmode"))
(setvar "osmode" 513)
(setq ent (car (entsel "\n Chon polyline can break (POLYLINE)"))
         obj (vlax-ename->vla-object ent)
         pd (vlax-curve-getstartpoint obj)
         p1 (vlax-curve-getclosestpointto obj (getpoint pd "\n Chon diem break thu nhat"))
         p2 (vlax-curve-getclosestpointto obj (getpoint p1 "\n Chon diem break thu hai"))
)
(command "break" ent p1 p1)
(setq enp (entlast))
(command "break" enp p2 p2)
(command "change" (entnext enp) "" "p" "c" 1 "lt" "hidden"  "" "")
(setvar "osmode" oldos)
(command "undo" "e")
(princ)
)

 

Chúc bạn vui và đừng bao giờ nhè nữa nghen.....

  • 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
trangnhung    0

Bác Bình ơi sao khi dùng lisp này thì đoạn nét đứt lại có màu đỏ mặc định nhỉ. bác sửa giúp em để đoạn nét đứt đó chuyển về màu 8 không. hì lại làm phiền 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

Theo tôi bạn tự chỉnh ở đây nhé:

(command "change" (entnext enp) "" "p" "c" 1 "lt" "hidden"  "" "")

thành:

(command "change" (entnext enp) "" "p" "c" 8 "lt" "hidden"  "" "")

Nếu muốn các màu khác thì bạn có thể tự thay đổi số 1 thành 1 tròn các số từ 2-256 nhé !

  • 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
phamthanhbinh    3.123

 

Bác Bình ơi sao khi dùng lisp này thì đoạn nét đứt lại có màu đỏ mặc định nhỉ. bác sửa giúp em để đoạn nét đứt đó chuyển về màu 8 không. hì lại làm phiền bác .

Hề hề hề,

Ấy là tại vì mình ...... khoái cái màu đỏ thui. Trong yêu cầu đặt ra bạn chỉ nói là chuyển màu chứ không chỉ định là màu gì cả nên khi làm lisp mình cứ lấy cái khoái của mình là chuẩn mà thui.

Nay bạn đả muốn nó màu 8 thì quá dễ cho mình rùi. bạn chỉ việc thay cái con số 1 trong đoạn code (command "change" ..... ) thành con số 8 là Ok thôi mà.

Hãy thử xem nó có OK xa lem, xem xem nó có giống thằng cu tí nhà bạn không nhé???

Hề hề hề, chúc bạn vui.

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  

×