Đế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
2854 replies to this topic

#2341 thanhduan2407

thanhduan2407

    biết lệnh adcenter

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

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

@thanhduan: Em nghiên cứu thêm về hàm grread!

Em còn gà mờ về hàm này lắm, cũng thích lắm nhưng chưa tìm hiểu.

Cảm ơn anh Tue_NV


  • 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







#2342 thanhduan2407

thanhduan2407

    biết lệnh adcenter

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

Đã gửi 03 January 2015 - 10:30 AM

Các anh, các bác có thể cho em 1 ví dụ thao tác một cái gì đó (ví dụ Entsel đi) cho đến khi Enter thì kết thúc sử dụng hàm Grread được không ạ?

Em cảm ơn ạ


  • 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







#2343 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 03 January 2015 - 10:42 AM

Hàm mẫu chọn 1 đối tượng theo 1 kiểu nhất định. Chừng nào chọn được, hoặc Enter/Space mới kết thúc:

;----- Chon 1 doi tuong thoa man dieu kien. Returns:  selected entity ename if successful, else nil.
(defun LM:Selectif ( foo fun str / e )
 (while
  (progn (setq e (car (fun str)))      
   (cond ((eq 'ENAME (type e)) (if (and foo (not (foo e))) (princ "\n** Doi tuong khong hop le **"))))))
 e)
;----- Example
(defun C:TEST()
 (LM:Selectif (lambda (x) (eq "TEXT" (cdr (assoc 0 (entget x))))) nentsel "\nChon 1 Text: "))
 

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


#2344 thanhduan2407

thanhduan2407

    biết lệnh adcenter

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

Đã gửi 03 January 2015 - 10:59 AM

Dạ, hàm này chưa thỏa mãn bác Hạ ạ! 

Yêu cầu là phải chọn được đối tượng, đối tượng phải là Text và chỉ khi Enter hoặc Space mới kết thúc ạ!

Em chọn vào khoảng trống (nil) thì ......ko dc ạ


  • 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







#2345 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 03 January 2015 - 11:14 AM

Srr, cái này mới chính xác.

;----- Nh¾c nhë User chän cho ®Õn khi tho¶, in kÕt qu¶ ra dßng command
(defun LM:SelectIf ( msg pred func keyw / sel )
 (setq pred (eval pred))
 (while
  (progn
   (setvar 'ERRNO 0)
   (if keyw (apply 'initget keyw))
   (setq sel (func msg))
   (cond
   ((= 7 (getvar 'ERRNO)) (princ "\nMissed, Try again."))
   ((eq 'STR (type sel))  nil)
   ((vl-consp sel) (if (and pred (not (pred sel))) (princ "\nInvalid Object Selected."))))))
 sel)
;----- VÝ dô nµy nh¾c nhë cho ®Õn khi 1 Line ®­îc chän, nÕu hîp lÖ sÏ in ra dßng command
(defun c:test ( / entity )
 (setq entity (car (LM:SelectIf "\nSelect a Text: " (lambda ( x ) (eq "TEXT" (cdr (assoc 0 (entget (car x)))))) entsel nil))))
 

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


#2346 thanhduan2407

thanhduan2407

    biết lệnh adcenter

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

Đã gửi 03 January 2015 - 11:20 AM

Tuyệt vời rồi bác Hạ ạ!

Em cảm ơn bác Hạ 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







#2347 thanhduan2407

thanhduan2407

    biết lệnh adcenter

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

Đã gửi 04 January 2015 - 02:53 PM

Cho em hỏi một chút!

Em muốn tạo 1 hàm Entmake Qleader bởi 2 điểm (P1 là điểm đầu mũi tên, P2 là phía cuối), không ghi chú Text (Node) thì em sẽ phải viết như nào ạ?

Em cảm ơn các bác 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







#2348 thanhduan2407

thanhduan2407

    biết lệnh adcenter

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

Đã gửi 04 January 2015 - 02:57 PM

Dạ thôi ạ! Em làm được rồi, có gì em hỏi tiếp


  • 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







#2349 trinhhoanghieu090

trinhhoanghieu090

    Edu level: li8

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

Đã gửi 04 January 2015 - 04:22 PM

Các bác ơi cho em hỏi chút, trong một list có thể gồm nhiều phần tử giống nhau, ví dụ ( "A" "A" 1 1 3 4 0 4). Em muốn xóa các phần tử giống nhau này đi chỉ để lại một phần tử duy nhất, có hàm nào làm được việc này không các bác. Như List ở trên sau khi xử lý sẽ thành ( "A" 1 3 4 0)
  • 0

#2350 thanhduan2407

thanhduan2407

    biết lệnh adcenter

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

Đã gửi 04 January 2015 - 04:58 PM

Của bạn đây!

(defun LM:_UniqueFuzz ( l fz )
    (if l
      (cons (car l)
        (LM:_UniqueFuzz
          (vl-remove-if '(lambda ( x ) (equal x (car l)  fz)) (cdr l)) fz
        )
      )
    )
)

;;;;Test (LM:_UniqueFuzz (list "A" "A" 1 1 3 4 0 4) 0.00000001)


  • 1



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







#2351 trinhhoanghieu090

trinhhoanghieu090

    Edu level: li8

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

Đã gửi 04 January 2015 - 05:29 PM

Thanks bac thanhduan247 nhiều
  • 0

#2352 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 05 January 2015 - 12:10 PM

Bài toán dễ dàng giải quyết bằng mapcar hoặc các vòng lặp mà trinhhoanghieu090 ?


  • 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


#2353 pphung183

pphung183

    biết dimstyle

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

Đã gửi 05 January 2015 - 01:24 PM

Các bác ơi cho em hỏi chút, trong một list có thể gồm nhiều phần tử giống nhau, ví dụ ( "A" "A" 1 1 3 4 0 4). Em muốn xóa các phần tử giống nhau này đi chỉ để lại một phần tử duy nhất, có hàm nào làm được việc này không các bác. Như List ở trên sau khi xử lý sẽ thành ( "A" 1 3 4 0)

Học thầy xong trả hết cho thầy :lol:

(defun TraThay (lst / L x) ;;;Delete same items in List
(foreach x lst 
(if (not (member x L)) (setq L (append L (list x))))) L)


Test : (TraThay (list "A" "A" 1 1 3 4 0 4))


  • 1

#2354 trinhhoanghieu090

trinhhoanghieu090

    Edu level: li8

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

Đã gửi 05 January 2015 - 02:00 PM

Học thầy xong trả hết cho thầy :lol:

(defun TraThay (lst / L x) ;;;Delete same items in List
(foreach x lst 
(if (not (member x L)) (setq L (append L (list x))))) L)


Test : (TraThay (list "A" "A" 1 1 3 4 0 4))

ý bác khó hiểu quá! thanks bác nha. :D


  • 0

#2355 trinhhoanghieu090

trinhhoanghieu090

    Edu level: li8

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

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

Bài toán dễ dàng giải quyết bằng mapcar hoặc các vòng lặp mà trinhhoanghieu090 ?


Hi hi, đúng là dạo này đầu óc em mụ mẫm thật. :D
  • 0

#2356 thanhduan2407

thanhduan2407

    biết lệnh adcenter

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

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

Các bác cho em hỏi 1 số biến với!

Em muốn cài đặt 1 số thông số này cho việc đo góc: (DIMSAH ;    DIMBLK1 ; DIMBLK2 ; DIMSCALE) ở trong Standards nhưng chưa biết cách. Nhờ các bác chỉ cho em với

36665_11.jpg

 

36665_22.jpg


  • 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







#2357 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 05 January 2015 - 07:11 PM

Đây:

(setvar 'dimblk "")

(setvar 'dimblk2 "None")

(setvar 'dimsah 1)

(setvar 'dimasz 0.25)

(setvar 'dimscale 10)


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


#2358 thanhduan2407

thanhduan2407

    biết lệnh adcenter

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

Đã gửi 05 January 2015 - 09:27 PM

Cảm ơn bác Hạ. Tuy nhiên nó lại chạy vào Style Overrides. Chính điều khó này nên em hỏi các bác để sao cho nó nhảy vào Standards bác ạ!

36665_555_1.jpg


  • 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







#2359 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 05 January 2015 - 09:42 PM

Học thầy xong trả hết cho thầy :lol:

(defun TraThay (lst / L x) ;;;Delete same items in List
(foreach x lst 
(if (not (member x L)) (setq L (append L (list x))))) L)


Test : (TraThay (list "A" "A" 1 1 3 4 0 4))

 

Việc so sánh không nên sử dụng với hàm member. Có những TH tuy là bằng nhau nhưng có sự sai số

Nên sử dụng hàm equal cho chắc chắn.


  • 0

#2360 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 05 January 2015 - 09:44 PM

Command -dimstyle và lựa chọn Save

P/s Bác Tuệ : giống mà bác, k phải bằng ^^


  • 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