Đến nội dung


Hình ảnh
* * * * - 7 Bình chọn

[Hỏi]Đố vui với LISP


  • Please log in to reply
391 replies to this topic

#61 TRUNGNGAMY

TRUNGNGAMY

    biết lệnh block

  • Members
  • PipPipPipPipPipPip
  • 401 Bài viết
Điểm đánh giá: 91 (tàm tạm)

Đã gửi 15 September 2011 - 02:31 PM

@Ketxu : thử chạy file này với vị trí point mình đã đánh dấu thử xem (lệnh mình viết trên hàm của bạn cung cấp : timdtkx2)
http://www.cadviet.c...linegandiem.dwg
  • 0

#62 TRUNGNGAMY

TRUNGNGAMY

    biết lệnh block

  • Members
  • PipPipPipPipPipPip
  • 401 Bài viết
Điểm đánh giá: 91 (tàm tạm)

Đã gửi 15 September 2011 - 03:24 PM

@Ketxu, Gia_bach:
Sau khi Ketxu hd, mình đã sửa tạm và đã test hàm do Gia_bach cung cấp. Hiện tại hàm do Gia_bach cung cấp chạy nhanh và chính xác hơn của Ketxu. Tuy nhiên, do 2 bạn chưa viết phần tiếp theo hoặc viết chưa hoàn thiện nên mình chỉ viết tạm theo kiểu tuần tự nên tốc độ kg nhanh.

Trên bv khá lớn khoảng 41391 line mà mình đã up lần đầu. tốc độ khá chậm có thể khó chấp nhận đc :

- theo hàm của Gia_bach
Command: (bench '(timdt_gb) (list p) 1)
TIMDT_GB
Tổng : ................8078 mili giây
Trung bình : 8078.0000 mili giây / 1 lần

- theo hàm của Ketxu
Command: (bench '(timdt_kx2) (list p) 1)
TIMDT_KX2
Tổng : ................8140 mili giây
Trung bình : 8140.0000 mili giây / 1 lần
  • 0

#63 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 15 September 2011 - 03:24 PM

@TrungNgaMy : em thấy đang lạc đề bác ạ
Quý bác nên nói thẳng, bác đừng giận em. Bác đang quá bị động.
- Phần bài bên trên bác nói thiếu hàm pd3 là vì e trót sửa trong máy hàm Getdis của bác gia_bach là pd3 để viết cho ngắn,nhưng cũng là cùng trong 1 bài, điều này quá khó nhận thấy hay sao ạ ???
- Hàm timdtkx2 hay timdt_gb có phần quan trọng nhất là TÌM KHOẢNG CÁCH NHỎ NHẤT do bác viết , sao lại nói là em / bác gia_bach cung cấp ? Em và bác gia_bach mới chỉ tham gia giải đố phần cách tìm khoảng cách từ Point đến đoạn thẳng thôi
- Hàm Getdis của bác gia_bach đã trả về kết quả, chỉ khác cách lấy kết quả về, liệu có quá khó để 1 programmer như bác nhìn thấy điều đó / thay đổi vừa ý mình ?
Bác chú ý mình đang đố vui 1 vấn đề, chứ không phải bài tập về nhà dành cho mọi người và phải hoàn thành để nộp ^^

Mình nói lại cho rõ để có sự thống nhất .
.....
biến ssss là toàn cục các bạn đừng xóa đi.
.......(phần dữ liệu này các bạn có thể tự sáng tạo)
....... do các bạn đạo diễn)

(Hàm của mình viết dựa vào các hàm của Ketxu và Gia_bach cung cấp theo dạng như vậy)




(defun c:test ()
;Local Function :
(defun dxf( name n)
(cdr (assoc n (entget name)))
)
(defun taodanhsach (ss / i p1 p2 lst)
(setq i 0 l (sslength ss))
(while (< i l)
(setq name (ssname ss i))
(setq p1 (dxf name 10) p2 (dxf name 11))
(setq lst (append lst (list (list p1 p2))))
(setq i (1+ i))
)
lst
)
(defun getmin (pt lstPnt / kq)
(setq kq (car (vl-sort (mapcar '(lambda(x)(Getdis (car x) (cadr x) pt)) lstPnt) '(lambda(x y)(< (car x)(car y))))))
(entmakex (list (cons 0 "LINE")(cons 62 1)(cons 10 (caadr kq))(cons 11 (cadadr kq)))))
(defun Getdis (sta end pt / dis1 dis2 len res dt chcao pt0)
;; @Gia_Bach
(defun len-area (a b c / p);Dien tich tam giac
(setq p (/ (+ a b c) 2))
(sqrt (* p (- p a) (- p B)(- p c)) ))
(setq dis1 (distance pt sta)
dis2 (distance pt end)
len (distance end sta)
dt (len-area dis1 dis2 len)
chcao (/ (* 2 dt ) len)
pt0 (polar pt (+ (/ pi 2)(angle sta end)) chcao) )
(if (not (or (equal (angle pt0 sta) (angle pt0 end) 0.0001)
(equal (angle sta pt0) (angle sta end) 0.0001)) )
(setq pt0 (polar pt (angle pt0 pt) chcao)))
(if (inters pt pt0 sta end t)
(setq res (list chcao (list sta end)))
(if (< dis1 dis2)
(setq res (list dis1 (list sta end)))
(setq res (list dis2 (list sta end))))
)
res)

;============== Start Here
(setq ss (ssget '((0 . "line")))
pt (getpoint "\nDiem check :")
lst (taodanhsach ss)
start (car(_VL-TIMES))
enameLineGanNhat (getmin pt lst)
)
(princ (strcat "\n "
(rtos (/ (- (car (_VL-TIMES)) start) 1000.) 2 4)
" secs."
) ;_ strcat
))
Bác chú ý là hàm getmin em viết ra ở đây là cách đơn giản, nhanh và thường dùng nhất, nên không nói về vấn đề tốc độ. Nếu bác viết hàm so sánh nào khác thì cứ dùng, miễn là trả ra kết quả.
Giải thuật là :
Sau khi có list khoảng cách (kèm theo tọa độ Line tương ứng, bác có thể đạo diễn thành số hiệu của Line ), thì sắp xếp nó theo chiều lớn dần của Khoảng cách này. Sau đó lấy thằng đầu tiên (car), tất nhiên, sẽ là thằng có khoảng cách bé nhất, và chỉ lấy 1. Nếu bác muốn lấy nhiều hơn (có khả năng nhiều Line cùng khoảng cách) thì tiếp tục lấy các thằng tiếp theo.
Đến đây coi như đã đủ từ a-> z chưa ạ :)
Update : Code getdis mà em mạn phép sửa của bác gia_bach bên trên em có nhầm lẫn một chút nên gặp lỗi khi khoảng cách là đường cao tam giác, e đã sửa lại. Vô cùng xin lỗi các bác ^^
  • 1

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


#64 TRUNGNGAMY

TRUNGNGAMY

    biết lệnh block

  • Members
  • PipPipPipPipPipPip
  • 401 Bài viết
Điểm đánh giá: 91 (tàm tạm)

Đã gửi 15 September 2011 - 04:08 PM

@TrungNgaMy : em thấy đang lạc đề bác ạ
Quý bác nên nói thẳng, bác đừng giận em. Bác đang quá bị động.
- Phần bài bên trên bác nói thiếu hàm pd3 là vì e trót sửa trong máy hàm Getdis của bác gia_bach là pd3 để viết cho ngắn,nhưng cũng là cùng trong 1 bài, điều này quá khó nhận thấy hay sao ạ ???
- Hàm timdtkx2 hay timdt_gb có phần quan trọng nhất là TÌM KHOẢNG CÁCH NHỎ NHẤT do bác viết , sao lại nói là em / bác gia_bach cung cấp ? Em và bác gia_bach mới chỉ tham gia giải đố phần cách tìm khoảng cách từ Point đến đoạn thẳng thôi
- Hàm Getdis của bác gia_bach đã trả về kết quả, chỉ khác cách lấy kết quả về, liệu có quá khó để 1 programmer như bác nhìn thấy điều đó / thay đổi vừa ý mình ?
Bác chú ý mình đang đố vui 1 vấn đề, chứ không phải bài tập về nhà dành cho mọi người và phải hoàn thành để nộp ^^




(defun c:test ()
;Local Function :
(defun dxf( name n)
(cdr (assoc n (entget name)))
)
(defun taodanhsach (ss / i p1 p2 lst)
(setq i 0 l (sslength ss))
(while (< i l)
(setq name (ssname ss i))
(setq p1 (dxf name 10) p2 (dxf name 11))
(setq lst (append lst (list (list p1 p2))))
(setq i (1+ i))
)
lst
)
(defun getmin (pt lstPnt / kq)
(setq kq (car (vl-sort (mapcar '(lambda(x)(Getdis (car x) (cadr x) pt)) lstPnt) '(lambda(x y)(< (car x)(car y))))))
(entmakex (list (cons 0 "LINE")(cons 62 1)(cons 10 (caadr kq))(cons 11 (cadadr kq)))))
(defun Getdis (sta end pt / dis1 dis2 len res dt chcao pt0)
;; @Gia_Bach
(defun len-area (a b c / p);Dien tich tam giac
(setq p (/ (+ a b c) 2))
(sqrt (* p (- p a) (- p B)(- p c)) ))
(setq dis1 (distance pt sta)
dis2 (distance pt end)
len (distance end sta)
dt (len-area dis1 dis2 len)
chcao (/ (* 2 dt ) len)
pt0 (polar pt (+ (/ pi 2)(angle sta end)) chcao) )
(if (not (or (equal (angle pt0 sta) (angle pt0 end) 0.0001)
(equal (angle sta pt0) (angle sta end) 0.0001)) )
(setq pt0 (polar pt (angle pt0 pt) chcao)))
(if (inters pt pt0 sta end t)
(setq res (list chcao pt0))
(if (< dis1 dis2)
(setq res (list dis1 (list sta end)))
(setq res (list dis2 (list sta end))))
)
res)

;============== Start Here
(setq ss (ssget '((0 . "line")))
pt (getpoint "\nDiem check :")
lst (taodanhsach ss)
enameLineGanNhat (getmin pt lst)
))
Bác chú ý là hàm getmin em viết ra ở đây là cách đơn giản, nhanh và thường dùng nhất, nên không nói về vấn đề tốc độ. Nếu bác viết hàm so sánh nào khác thì cứ dùng, miễn là trả ra kết quả.
Giải thuật là :
Sau khi có list khoảng cách (kèm theo tọa độ Line tương ứng, bác có thể đạo diễn thành số hiệu của Line ), thì sắp xếp nó theo chiều lớn dần của Khoảng cách này. Sau đó lấy thằng đầu tiên (car), tất nhiên, sẽ là thằng có khoảng cách bé nhất, và chỉ lấy 1. Nếu bác muốn lấy nhiều hơn (có khả năng nhiều Line cùng khoảng cách) thì tiếp tục lấy các thằng tiếp theo.
Đến đây coi như đã đủ từ a-> z chưa ạ :)

Cám ơn bạn đã có những phản hồi. Quả thật đôi lúc mình kg thể hiểu ý nhau nhanh vì sự chủ quan của người khác. Như vđ mình đưa lên theo mình là rất rõ ràng mà các bạn cũng qua vài lần mới nắm hết ý đc. Quả thật tình mình kg hiểu hàm pd3 là cái bạn đặt sau khi chỉnh code của Gia_bach, khi mình thực thi nó báo lỗi.
Còn về hai cái hàm mình viết mình nói rõ là viết tạm dựa trên hai hàm do bạn và Gia_bach cung cấp và mình chỉ viết tuần tự thôi nên nó chậm, mình muốn các bạn viết ra vì mình nghĩ các bạn sẽ có giải pháp tố hơn. Nhìn code ban viết mình thấy ngắn gọn nhưng lúc đó thiếu cái pd3 nên kg thử đc
Phần code của Gia_bach có thể mình cũng hiểu nhưng nếu mình sửa đổi ở dòng cuối thì có thể kg tối ưu bằng chính Gia_bach sửa.
Mình kg phải là 1 programmer , mình quá mức nghiệp dư, chỉ thích lập trình thôi. Mình rất thích cách viết code súc tích ngắn gọn của bạn
Một lần nữa cám ơn bạn và Gia_bach

P/S bây giờ mình bận việc phải đi, sẽ quay lại sau
  • 1

#65 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 15 September 2011 - 04:09 PM

Thực ra là Ketxu "lừa" thiên hạ thôi. Chứ có rất nhiều cách gọi dialoge bằng chỉ 1 dòng (tức 1 hàm) như Ketxu. Lý do là các hàm này đã lập sẵn trong 1 số file của cad (VD: acad200x.lsp ...). Đáp án của bác Tue_NV là chuẩn. Câu đố này "sao sao ấy", nhưng xét về mặt "đố cho vui" thì cũng vui.
Thân thương!
P/S: nói thêm để đỡ tốn đất: tôi không hề trách Ket đâu, chỉ là vui thôi mà, hơn nữa cũng thêm 1 thông tin để mọi người biết: có 1 số hàm được lập sẵn trong cad để gọi dialoge chỉ bằng 1 dòng (tức 1 hàm). Dù biết vậy nhưng chính tôi cũng bị Ket lừa đấy. Hì, hì, hì!!!

Hề hề hề,
Đây là đố vui mà.
Đã là đố, ắt phải có tí xảo thuật trong đó để nhiều người không biết. Không thể gọi đó là lừa được, vì chắc chắn sẽ có giải đố mà. Chẳng qua chỉ là để kẻ chưa biết thì mót thêm được tí, người biết rồi thì cũng có dịp ôn lại cái mình ít dùng.
Vậy nên nó rất vui vì giúp ích được nhiều người.
Thú thực là mình cũng toàn đi mót từ những cái mọi người vui mà post lên thế này cả đấy.
Hy vọng rằng (nếu coi đây là lừa) mọi người hãy chịu khó để lừa mình thêm càng nhiều càng ít hỉ.
Hề hề hề ,....
PS: mà chửa biết ai lừa ai đâu nhé?????
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#66 gia_bach

gia_bach

    biết lệnh adcenter

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

Đã gửi 15 September 2011 - 04:22 PM

........................
Phần code của Gia_bach có thể mình cũng hiểu nhưng nếu mình sửa đổi ở dòng cuối thì có thể kg tối ưu bằng chính Gia_bach sửa.
Mình kg phải là 1 programmer , mình quá mức nghiệp dư, chỉ thích lập trình thôi. Mình rất thích cách viết code súc tích ngắn gọn của bạn
.............

Tôi cũng kô phải là 1 programmer, viết giải trí cho vui ...
V/đề "tối ưu" : tôi nghĩ rằng viết nhiều, đọc nhiều, mót nhiều ... và sau khi so sánh nhiều ph/án tự mình sẽ rút ra đuợc ph/án "tối ưu" nhất. Khi đó code (ý tưởng) của người khác tự nó "sẽ là của mình".
  • 0

#67 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 15 September 2011 - 04:31 PM

@bác TrungNgaMy : vì e chậm hiểu, lại nói xong mới nghĩ, có gì nóng nảy bác thông cảm. Dù sao thì ở đây có mấy ai là không nghiệp dư ^^ Bác còn viết ARX từ hồi em chưa biết máy tính cơ :|
Hàm getmin chắc chắn có nhiều đáp án nhanh hơn nữa để bác lựa chọn (theo em nhớ thì apply min nhanh hơn vl-sort thì phải ^^), mà phản xạ ì trệ quá, đành ngồi chờ thôi :D
P/S : số lượng list của bác mà lớn chắc cũng tầm 100k đối tượng thôi chứ ^^ Dù gì cũng cần đến thực tế sử dụng

@bác Bình : e vẫn đang chờ bác ĐVH ra thêm vài câu đố đây ^^ Đã gọi là đố vui thì phải có tí quái chứ bác hè ^^

Nhân tiện có 1 câu đố mới, mời các bác giải đố. Câu này quá nhiều người biết, nên giải là 2 phát thanks và thời hạn đến 10h tối thôi nhé ^^
Làm cách nào để chọn nhanh tất cả các đối tượng, trừ các đối tượng thuộc layer bị đóng băng trong bản vẽ ?
  • 1

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


#68 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 15 September 2011 - 04:43 PM

Chà, chỉ một câu nói mà hôm kia Ket trách, sau đó tôi P/S thì Ket rút lại lời trách. Hôm nay tưởng qua rồi, ai ngờ bị bác PTB trách nữa, rồi lại bị Ket "chờ" khéo nữa. Biết vậy, sau khi Ket rút lại lời trách thì tôi cũng rút của mình luôn cho xong.
Tôi srr tất cả, và mong bỏ qua cho, chứ nếu không thì... không dám đố đâu.
Thân thương!
  • 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.


#69 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 15 September 2011 - 04:53 PM

Giờ còn trách gì nữa. Lúc đọc comment của bác e định dislike nhưng chẳng có, nói thì cũng chẳng vui, nên thôi!
Câu đố đó e định để đi kèm với các hàm acad_colordlg,acad_helpdlg ... nhưng bị bắt bài nên ngậm hạt thị thôi. Dù sao thì bác ĐVH bây giờ cũng khác xưa rồi ^^ Ngoài ra còn các hàm nào undocument nữa k bác ?? ( e khoái nhất cheat hay EE kiểu thế)
Quanh đi quẩn lại có mấy người, khuấy lên 1 tí cho vui, mình e cm mãi, buồn. Bác đố câu gì dễ dễ th, để gọi là cùng nhau kiếm tí thanks :D
Các bác giải câu trên đi, để e còn đưa câu khác
  • 1

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


#70 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 15 September 2011 - 05:03 PM

Chà, chỉ một câu nói mà hôm kia Ket trách, sau đó tôi P/S thì Ket rút lại lời trách. Hôm nay tưởng qua rồi, ai ngờ bị bác PTB trách nữa, rồi lại bị Ket "chờ" khéo nữa. Biết vậy, sau khi Ket rút lại lời trách thì tôi cũng rút của mình luôn cho xong.
Tôi srr tất cả, và mong bỏ qua cho, chứ nếu không thì... không dám đố đâu.
Thân thương!

Hề hề hề,
Ai bảo đấy là trách móc nhỉ???? Ấy chỉ là vài điều tâm sự của anh hề thôi mà. Mình vốn là dân đi mót nên cái cảnh bị cầm gậy đuổi xua, bị ném đá cũng đã nhiều. Cho nên mới sinh ra cái tâm sự hề hề hề như vầy. Những mong cho cái hề hề hề nó nhiều hơn trong cuộc đời mà thôi. Có vậy mới có thể yên tâm mà mót được các bác ạ.
Hề hề hề,....
Mà bác rút cái chi thì rút chứ chớ có rút ..... lui nghen. Mình và mọi người còn cần nhiều tới sự giúp sức của bác mà......
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#71 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 15 September 2011 - 05:41 PM

@bác TrungNgaMy : vì e chậm hiểu, lại nói xong mới nghĩ, có gì nóng nảy bác thông cảm. Dù sao thì ở đây có mấy ai là không nghiệp dư ^^ Bác còn viết ARX từ hồi em chưa biết máy tính cơ :|
Hàm getmin chắc chắn có nhiều đáp án nhanh hơn nữa để bác lựa chọn (theo em nhớ thì apply min nhanh hơn vl-sort thì phải ^^), mà phản xạ ì trệ quá, đành ngồi chờ thôi :D
P/S : số lượng list của bác mà lớn chắc cũng tầm 100k đối tượng thôi chứ ^^ Dù gì cũng cần đến thực tế sử dụng

@bác Bình : e vẫn đang chờ bác ĐVH ra thêm vài câu đố đây ^^ Đã gọi là đố vui thì phải có tí quái chứ bác hè ^^

Nhân tiện có 1 câu đố mới, mời các bác giải đố. Câu này quá nhiều người biết, nên giải là 2 phát thanks và thời hạn đến 10h tối thôi nhé ^^
Làm cách nào để chọn nhanh tất cả các đối tượng, trừ các đối tượng thuộc layer bị đóng băng trong bản vẽ ?

Hề hề hề,
Cố đấm một phát xem có ăn được xôi của bác ketxu không hỉ???
(setq lstr "")
(while (setq a (tblnext "layer"))
(if (and (/= (cdr (assoc 70 (tblsearch "layer" a))) 1) (/= (cdr (assoc 70 (tblsearch "layer" a))) 2))
(setq lstr (strcat lstr a ",")
)
)
(setq lstr (substr lstr 1 (1- (strlen lstr))))
(setq ss (ssget "x" (list (cons 0 lstr))))
Hề hề hề,
Nếu chẳng được xôi mong bác chớ trách phạt nghen.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#72 TRUNGNGAMY

TRUNGNGAMY

    biết lệnh block

  • Members
  • PipPipPipPipPipPip
  • 401 Bài viết
Điểm đánh giá: 91 (tàm tạm)

Đã gửi 15 September 2011 - 06:56 PM

Làm cách nào để chọn nhanh tất cả các đối tượng, trừ các đối tượng thuộc layer bị đóng băng trong bản vẽ ?

( command "_.select" "all" "")
(ssget "P")
  • 1

#73 master_worse

master_worse

    biết lệnh offset

  • Advance Member
  • PipPipPip
  • 170 Bài viết
Điểm đánh giá: 87 (tàm tạm)

Đã gửi 15 September 2011 - 07:15 PM

Làm cách nào để chọn nhanh tất cả các đối tượng, trừ các đối tượng thuộc layer bị đóng băng trong bản vẽ ?

(setq ss (ssget))

Bài viết đã được chỉnh sửa nội dung bởi master_worse: 15 September 2011 - 07:48 PM

  • 0

Ngu dốt không đáng thẹn bằng thiếu ý chí học hỏi


Tri thức làm người ta khiêm tốn, ngu si làm người ta kiêu ngạo (Ngạn ngữ Anh)


#74 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 15 September 2011 - 10:21 PM

(setq lstr "")
(while (setq a (tblnext "layer"))
(if (and (/= (cdr (assoc 70 (tblsearch "layer" a))) 1) (/= (cdr (assoc 70 (tblsearch "layer" a))) 2))
(setq lstr (strcat lstr a ",")
)
)
(setq lstr (substr lstr 1 (1- (strlen lstr))))
(setq ss (ssget "x" (list (cons 0 lstr))))

Em không chạy được bác ạ ^^ Chắc chỗ setq lstr bị thiếu dấu đóng ngoặc ^^

(setq ss (ssget))

Câu đố là chọn nhanh toàn bộ đối tượng...mà bác ^^

( command "_.select" "all" "")
(ssget "P")

Bác TNM trả lời đúng, xin tặng bác 2 Thanks ^^

Đáp án của em :

(ssget "_A")


  • 3

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


#75 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 16 September 2011 - 08:35 AM

Ket xu có vẻ như rất nôn nóng nhận tick Thanks nhỉ?
Cơ hội đây : Đây là lệnh gì?
Làm thế nào để CAD hiện được hộp thoại này một cách nhanh nhất
Hình đã gửi

Khi nhấn OK -> thì CAD cho mình chọn Dim -> Các dim được chọn sẽ gán dimension style trong hộp thoại mà ta đã chọn?
Lệnh gì vậy nhỉ?
Cơ cấu giải thưởng : 8 tick thanks dành cho đáp án đúng và cho sử dụng tài liệu. hề hề
Ai thấy câu đố này hay cũng có thể tick Thanks cho mình. Hì hì
  • 2

#76 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 16 September 2011 - 02:36 PM

Câu này khó, e chưa có time tìm nhưng mà bác Tuệ đã treo giải 8 cái thì cũng chẳng vừa ^^
P/S : cứ thấy điều chưa biết cần học hỏi thì thanks thôi :)
Tranh thủ đi hỏi thôi ^^
Còn chuyện nôn nóng nhận Thanks thì là lẽ đương nhiên rồi, keke , nhưng mà lấy được Thank từ các bác e là khó :D

|
|
\/

.
  • 1

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


#77 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 16 September 2011 - 04:28 PM

Nó là lệnh của CAD đấy Ketxu à. Và một điều tất nhiên là nó có thể viết bằng Lisp
(Command.....)
Lẽ đương nhiên, nó sẽ là khó với người chưa biết, và rất dễ với người biết đến nó :)
Đây là 1 câu đố vui, chắc là "lừa" được rất nhiều người rồi. Vì có rất nhiều người chưa biết tới nó :D
Mời các bạn cùng thư giãn
  • 0

#78 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 16 September 2011 - 04:58 PM

Nhìn hộp thoại em đoán là của CAD rồi, vì DCL không có icon đó ^^.
Câu trả lời :

(command "_aidimstyle" "o")

8 thanks, 8 thanks ô la la ^^
Ngoài ra còn 1 số thứ khác mà giờ mới để ý đến ^^ Tks bác Tuệ vì câu đố này :)

Hình đã gửi
  • 2

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


#79 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 16 September 2011 - 06:47 PM

Nhìn hộp thoại em đoán là của CAD rồi, vì DCL không có icon đó ^^.
Câu trả lời :

(command "_aidimstyle" "o")

8 thanks, 8 thanks ô la la ^^
Ngoài ra còn 1 số thứ khác mà giờ mới để ý đến ^^ Tks bác Tuệ vì câu đố này :)
.......

Xin chúc mừng Ketxu đã giải trúng câu đố. Thấy Ket vui quá đi à :D
Đã tick đủ 8 Thanks cho Ketxu :)
  • 0

#80 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 September 2011 - 08:56 PM

Thấy mấy bác đố vui mà ham. Các câu đố của các bác khó quá nên kiếm thank không dễ. Câu đố này hơi "mặt trận" tí, nghĩa là mỗi người kiếm một tí thank cho vui cửa vui nhà nhé!
Khái niệm (ai cũng biết rồi nhưng vẫn phải nói): khi ta đánh "U' vào command thì lệnh trước đó sẽ hoàn trả lại.
Đố: hãy liệt kê các lệnh mà "U' không có hiệu lực gì cả!
Mỗi lệnh được chỉ ra là 1 thank.
P/S (10h37' - 16/9/2011): do câu hỏi bị sơ hở nên Ketxu đã lượm thank nhanh quá (vẫn thank vài cái). Nay sửa lại chính xác như sau:
Hãy liệt kê các lệnh có làm thay đổi trên screen (không kể dialoge, menu) mà lệnh "U" không có hiệu lực gì cả!
  • 1

* 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.