Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
18 replies to this topic

#1 trangnhung

trangnhung

    biết vẽ pline

  • Members
  • PipPip
  • 60 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 16 December 2011 - 10:18 AM

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

#2 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 16 December 2011 - 10:28 AM

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))

  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#3 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5679 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 16 December 2011 - 02:35 PM

Trên diễn đàn có kha khá yêu cầu giống ntn rồi :)
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#4 trangnhung

trangnhung

    biết vẽ pline

  • Members
  • PipPip
  • 60 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 19 December 2011 - 03:44 PM

cảm ơn bác Doan Van Ha nhiều nha. chúc bác và mọi người luôn khỏe mạnh. giáng sinh zui zẻ nha !
  • 0

#5 trangnhung

trangnhung

    biết vẽ pline

  • Members
  • PipPip
  • 60 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 27 December 2011 - 10:01 PM

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

#6 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 28 December 2011 - 06:51 AM

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é.
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#7 trangnhung

trangnhung

    biết vẽ pline

  • Members
  • PipPip
  • 60 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 28 December 2011 - 07:59 AM

Hix tối qua e mò mẫm cả tối mà không tìm thấy. Thôi bác giúp thì giúp cho chót .hihi. Kính mong.
p/s.E gửi bác bản vẽ bác giúp e với:

http://www.mediafire.com/download.php?jrkvr139vjem8zs


  • 0

#8 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1434 Bài viết
Điểm đánh giá: 1426 (rất tốt)

Đã gửi 28 December 2011 - 09:55 AM

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
  • 1

#9 trangnhung

trangnhung

    biết vẽ pline

  • Members
  • PipPip
  • 60 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 28 December 2011 - 02:13 PM

Cảm ơn bác nhiều nha. Cảm ơn diễn đàn !
  • 0

#10 trangnhung

trangnhung

    biết vẽ pline

  • Members
  • PipPip
  • 60 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 10 March 2012 - 02:50 PM

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 !

http://www.mediafire.com/download.php?b2e832528m3s04m







  • 0

#11 trangnhung

trangnhung

    biết vẽ pline

  • Members
  • PipPip
  • 60 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 10 March 2012 - 02:51 PM

http://www.cadviet.c...3858_ban_ve.dwg
  • 0

#12 trangnhung

trangnhung

    biết vẽ pline

  • Members
  • PipPip
  • 60 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 12 March 2012 - 09:35 AM

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

#13 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6007 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 12 March 2012 - 11:08 AM


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ề.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#14 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6007 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 12 March 2012 - 11:52 AM


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.....
  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#15 trangnhung

trangnhung

    biết vẽ pline

  • Members
  • PipPip
  • 60 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 12 March 2012 - 01:59 PM

Thanks bác Bình Nha. Chẳng biết nói gì để cảm ơn bác. Chúc bác luôn mạnh khỏe và thành đạt trong cuộc sống !
  • 0

#16 trangnhung

trangnhung

    biết vẽ pline

  • Members
  • PipPip
  • 60 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 12 March 2012 - 02:26 PM

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

#17 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 368 Bài viết
Điểm đánh giá: 39 (tàm tạm)

Đã gửi 12 March 2012 - 03:22 PM

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é !
  • 1

#18 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6007 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 12 March 2012 - 03:24 PM


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.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#19 trangnhung

trangnhung

    biết vẽ pline

  • Members
  • PipPip
  • 60 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 14 March 2012 - 03:26 PM

hì. Thanks bác Bình nha. em cả ngố về lisp mà. chúc bác luôn khỏe
  • 0