Đến nội dung


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

Hỏi về Lisp (thuật toán, ý tưởng, coding,...)


  • Please log in to reply
2849 replies to this topic

#2401 hiepttr

hiepttr

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1298 Bài viết
Điểm đánh giá: 518 (tốt)

Đã gửi 22 January 2015 - 05:03 PM

Phần chữ màu xanh Hiếu lục lọi trong này:

http://www.cadviet.c...g-qua-trinh-ve/


  • 1

Có vợ dù dữ dù hiền , bạn đều có lợi
_ Nếu vợ hiền, bạn sẽ là người đàn ông sung sướng
_ Nếu vợ dữ, bạn sẽ thành ... triết gia !

Bergson


#2402 trinhhoanghieu090

trinhhoanghieu090

    Edu level: li8

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

Đã gửi 22 January 2015 - 05:19 PM

Thanks hiep nha
  • 0

#2403 thanhduan2407

thanhduan2407

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 992 Bài viết
Điểm đánh giá: 223 (khá)

Đã gửi 26 January 2015 - 09:38 AM

Chào các anh/chị/em trên diễn đàn!

Em có 1 ý tưởng này không biết đã có chưa ạ!

Đó là việc thống kê các biến được khai báo trong lisp.

Nhiều khi em muốn giải phóng các biến nhưng cứ phải đi tìm “setq” để cho lên dòng đầu của defun của hàm. Công việc này rất thời gian và hoa mắt. Các anh/chị/em có mẹo gì không hoặc có lisp nào thống kê các biến có trong lisp không ạ? Cảm ơn anh/chị/em nhiều


  • 0



Tôi là con kiến bò trên sa mạc kiến thức bao la. Biển học thật rộng lớn







#2404 trinhhoanghieu090

trinhhoanghieu090

    Edu level: li8

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

Đã gửi 26 January 2015 - 09:51 AM

Không biết bác thanhduan247 viết lisp trên vlide hay notepad, em thì hay dùng notepad++. Nó có một chức năng khá hay là bôi xanh tất cả các từ có nội dung giống nhau trong file lisp. Bác chỉ cần bôi xanh vào một từ setq, sau đó kích đúp vào từ bôi xanh, thế là các biến hiện ra hết. Tuy cách này "hoang dã" nhưng chắc cũng giúp bác đỡ mỏi mắt tìm mấy em biến trong khi chờ các bro hiến kế. :D
  • 1

#2405 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 26 January 2015 - 09:58 AM

Thanhduan đọc bài #19 nhé!

http://www.cadviet.c...al-lisp-editor/


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


#2406 thanhduan2407

thanhduan2407

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 992 Bài viết
Điểm đánh giá: 223 (khá)

Đã gửi 26 January 2015 - 10:15 AM

Cảm ơn bạn trinhhoanghieu090  và bác Doan Van Ha. Thật tuyệt ạ! 


  • 0



Tôi là con kiến bò trên sa mạc kiến thức bao la. Biển học thật rộng lớn







#2407 pphung183

pphung183

    biết dimstyle

  • Members
  • PipPipPipPipPip
  • 384 Bài viết
Điểm đánh giá: 425 (tốt)

Đã gửi 26 January 2015 - 01:30 PM

 

Thấy bạn cũng là 1 Fan của Lee-Mac mà sao bạn không ngó tới trang này -_-

http://lee-mac.com/debugvlide.html


  • 1

#2408 thanhduan2407

thanhduan2407

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 992 Bài viết
Điểm đánh giá: 223 (khá)

Đã gửi 27 January 2015 - 09:38 AM

Thấy bạn cũng là 1 Fan của Lee-Mac mà sao bạn không ngó tới trang này -_-

http://lee-mac.com/debugvlide.html

Bác Doan Van Ha chỉ cho em cách rồi ạ! Cái anh gửi không phải cái em hỏi anh ạ! Em làm đc rồi. ^^

Đúng là em là FAN cuồng Lee-Mac.  :wub:


  • 0



Tôi là con kiến bò trên sa mạc kiến thức bao la. Biển học thật rộng lớn







#2409 hoccad1989

hoccad1989

    biết zoom

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

Đã gửi 31 January 2015 - 10:56 PM

 Em đang tập tành chắp vá ít lisp vào để chủ động sửa theo ý muôn nhưng gặp một số vấn đề sau.

Các bác cho em hỏi trong trường hợp em có 1 TEXT1, TEXT2 ở giữa, xung quanh là 4 hoặc nhiều hơn thế TEXT3 làm sao để em quét chọn toàn bộ 3 loại text này (thuộc 3 layer khác nhau) và lisp sẽ tính toán tổng của "TEXT3" rồi chia cho giá trị của "TEXT2" rồi điền kết quả vào "TEXT1".

Cảm ơn các bác. em có bản vẽ kèm theo, các bác giúp em.

http://www.cadviet.c...ile_dau_vao.dwg


  • 0

#2410 nhoclangbat

nhoclangbat

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1409 Bài viết
Điểm đánh giá: 379 (khá)

Đã gửi 01 February 2015 - 06:53 AM

- nếu bạn đang luyện thì có thể tham khảo thử cách của nhoc như thể này ^^.

- quét hết các text bạn mún, sau đó lọc ra các text theo từng layer ra từng danh sách khác nhau.

- có danh sách text màu đỏ lấy dxf1 ra rùi cộng với nhau, chia cho dxf1 của text màu đất cuối cùng entmod text màu xanh

- nhoc nghĩ cái sườn  là vậy ^^, còn lại tùy bạn ứng biến

p/s: lưu ý nếu kỹ thì nên thêm đk chỉ nhận các text là dạng số ^^


  • 1
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#2411 hoccad1989

hoccad1989

    biết zoom

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

Đã gửi 01 February 2015 - 07:33 AM

- nếu bạn đang luyện thì có thể tham khảo thử cách của nhoc như thể này ^^.

- quét hết các text bạn mún, sau đó lọc ra các text theo từng layer ra từng danh sách khác nhau.

- có danh sách text màu đỏ lấy dxf1 ra rùi cộng với nhau, chia cho dxf1 của text màu đất cuối cùng entmod text màu xanh

- nhoc nghĩ cái sườn  là vậy ^^, còn lại tùy bạn ứng biến

p/s: lưu ý nếu kỹ thì nên thêm đk chỉ nhận các text là dạng số ^^

 

 

Nhoc làm giúp mình đoạn code lọc layer rồi dùng entmod vào text màu xanh nhé. mình không đọc ko rõ lắm, bạn cho mình đoạn code để áp dụng vào nhiều bài toán khác nhé.

Cảm ơn nhoclangbat.


  • 0

#2412 nhoclangbat

nhoclangbat

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1409 Bài viết
Điểm đánh giá: 379 (khá)

Đã gửi 01 February 2015 - 07:49 AM

- hi nhoc cũng mới thử code nhanh theo ý tưởng của bạn, bạn tham khảo ^^

(defun C:tinhcd(/ c ename info cong chia ds_cong ds_ent num)
(setq c -1 )
(if (setq ss (ssget '((0 . "TEXT"))))
 (progn
    (while (setq ename (ssname ss (setq c (1+ c))))
      (if (setq num (distof (cdr (assoc 1 (entget ename)))))
	      
          (setq ds_ent (append ds_ent (list ename)))
      );if
	  ds_ent
	);while, vong while dùng de kiem tra cac text dang so, neu la dang so thi gom cac ename do vao 1 danh sach
;//////////////////////////////////////////////////////////////////	
(if ds_ent
(progn
(foreach k ds_ent
(if (= (cdr (assoc 8 (entget k))) "TEXT2")
   (setq info (entget k))
   ) ; if nay de loc lay elist cua text mau xanh can entmod
;///////////////////////////////////////////
(if (= (cdr (assoc 8 (entget k))) "TEXT1")
   (setq chia (distof (cdr (assoc 1 (entget k)))))
   ) ; if nay dung de loc texst mau vang dat sau do lay gia tri cua no ra
;////////////////////////////////////////////
(if (= (cdr (assoc 8 (entget k))) "TEXT3")
 (progn
   (setq cong (distof (cdr (assoc 1 (entget k)))))
   (setq ds_cong (append ds_cong (list cong)))
   )
   )
 ) ; if nay de loc cac text mau do gom cac gia tri cua no vao 1 danh sach
(entmod (subst (cons 1 (rtos (/ (apply '+ ds_cong) chia) 2 2))   (assoc 1 info) info))
)  
)
  );progn
  (alert "\nChua co doi tuong dc chon hoac ban chi chon toan text chu ^^")
);if    
(princ)
)


  • 1
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#2413 hoccad1989

hoccad1989

    biết zoom

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

Đã gửi 01 February 2015 - 07:59 AM

Cảm ơn nhoclangbat nhiều. Mình sẽ thêm thử đặt nó vào mấy cái lisp mình đang mắc đoạn này xem sao.


  • 0

#2414 trinhhoanghieu090

trinhhoanghieu090

    Edu level: li8

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

Đã gửi 01 February 2015 - 10:29 AM

Cảm ơn nhoclangbat nhiều. Mình sẽ thêm thử đặt nó vào mấy cái lisp mình đang mắc đoạn này xem sao.


Hi hi, nếu bạn muốn vọc vạch, tìm hiểu kỹ hơn thì đăng ký học lớp autolisp online trên diễn đàn mình ý. Mình mới học 2 tháng mà cũng tự tạo cho mình được khối thứ hay ho rồi
  • 0

#2415 trinhhoanghieu090

trinhhoanghieu090

    Edu level: li8

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

Đã gửi 02 February 2015 - 09:34 AM

Chào các bác, em có vấn đề cần các bác tư vấn giúp:133631_hoi.jpg

 

Đầu tiên em dùng hàm ssget để chọn các toàn bộ các đường thẳng. Sau đó em lọc để tập hợp ename được sinh ra từ lệnh ssget chỉ còn ename của các đường thẳng có chiều dài lớn hơn . Làm thế nào để từ tập hợp ename mà lại highlight ngược lại được như hình ạ. Thanks các bác


  • 0

#2416 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 02 February 2015 - 09:47 AM

Bạn không nói rõ các Line dài gom thành list hay tập chọn. Nếu tập chọn thì:

(sssetfirst nil ss)


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


#2417 trinhhoanghieu090

trinhhoanghieu090

    Edu level: li8

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

Đã gửi 02 February 2015 - 09:52 AM

Bác Ha ơi trong trường hợp gom thành list thì dùng hàm nào ạ


  • 0

#2418 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 02 February 2015 - 09:58 AM

Hàm này dành cho từng object:

vla-highlight


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


#2419 trinhhoanghieu090

trinhhoanghieu090

    Edu level: li8

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

Đã gửi 02 February 2015 - 10:04 AM

Thanks bác Ha nhiều, chúc bác tuần mới gặt hái được nhiều thành công. :D


  • 0

#2420 trinhhoanghieu090

trinhhoanghieu090

    Edu level: li8

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

Đã gửi 05 February 2015 - 09:26 AM

chào các bác ạ, em search trên diễn đàn thấy có lệnh "Bpoly" dùng để tạo miền kín rất hay, nhưng khi dùng vào lisp thì tốc độ rất chậm do chạy bằng command. Các bác biết hàm lisp nào có chức năng tương đương như lệnh này không chỉ em với. Thanks các bác ạ


  • 0