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

#2721 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 27 November 2015 - 02:40 PM

Có mỗi lời cám ơn mà phải tốn 2 comment, thay bằng 2 like đơn giản hơn, mà cũng đỡ công người khác khỏi hớ hàng. :lol:


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


#2722 Tr.CongSon

Tr.CongSon

    biết lệnh array

  • Members
  • PipPipPip
  • 183 Bài viết
Điểm đánh giá: 40 (tàm tạm)

Đã gửi 30 November 2015 - 05:15 PM

Có mỗi lời cám ơn mà phải tốn 2 comment, thay bằng 2 like đơn giản hơn, mà cũng đỡ công người khác khỏi hớ hàng. :lol:

 

@a Doan Van Ha :Em đọc bài xong like liền anh ơi ^^

Ban đầu em cảm ơn 2 anh đã Reply + em post code em dùng bị lỗi (post lên cadviet lại che mất mấy dòng code  :( nên anh nghĩ chỉ có dòng cảm ơn thôi ^^ )

Comment thứ 2 em post để biết em sửa được rồi ,chứ im im đôi lúc dễ làm người khác khó chịu lắm anh ạ,có khi lại nghĩ : không biết thằng này sửa được hay chưa mà chẳng thấy reply hay nó chỉ post lên chơi vậy thôi :v

 

Em sẽ rút kinh nghiệm lần sau :v 

Chúc anh luôn mạnh khỏe và thành công !


  • 0

#2723 Tr.CongSon

Tr.CongSon

    biết lệnh array

  • Members
  • PipPipPip
  • 183 Bài viết
Điểm đánh giá: 40 (tàm tạm)

Đã gửi 08 December 2015 - 11:57 AM

Anh chị cho em hỏi : Trong lisp có hàm nào xóa 1 folder không  ạ?


  • 0

#2724 ndtnv

ndtnv

    biết lệnh minsert

  • Members
  • PipPipPipPipPipPip
  • 437 Bài viết
Điểm đánh giá: 384 (khá)

Đã gửi 08 December 2015 - 12:53 PM

Nhạc sĩ nên search gg trước

http://www.cadtutor....ories-(folders)

https://forums.autod...nd/td-p/2874374


  • 2

#2725 pphung183

pphung183

    biết dimstyle

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

Đã gửi 08 December 2015 - 01:02 PM

Anh chị cho em hỏi : Trong lisp có hàm nào xóa 1 folder không  ạ?

Có sẵn hàm tạo và xóa thư mục của ACET :) :

   Make :

(acet-file-mkdir "C:\\...\\Desktop\\Tr.CongSon")
 Delete :
(acet-file-rmdir "C:\\...\\Desktop\\Tr.CongSon")

  • 2

#2726 Tr.CongSon

Tr.CongSon

    biết lệnh array

  • Members
  • PipPipPip
  • 183 Bài viết
Điểm đánh giá: 40 (tàm tạm)

Đã gửi 08 December 2015 - 01:19 PM

 

Có sẵn hàm tạo và xóa thư mục của ACET :) :

   Make :

(acet-file-mkdir "C:\\...\\Desktop\\Tr.CongSon")
 Delete :
(acet-file-rmdir "C:\\...\\Desktop\\Tr.CongSon")

 

Em cảm ơn 2 a!

Hàm acet này em biết a phung ạ, hàm này thuôc hàm của Express tool,nó chỉ xóa được folder trống thôi a^^

Cái em muốn là nó xóa folder bất kỳ ak a.hi

 

@ a ndtnv: Hàm delFolder a gởi dùng rất tốt ạ ^^ 


  • 0

#2727 pphung183

pphung183

    biết dimstyle

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

Đã gửi 08 December 2015 - 02:01 PM

Em cảm ơn 2 a!

Hàm acet này em biết a phung ạ, hàm này thuôc hàm của Express tool,nó chỉ xóa được folder trống thôi a^^

Cái em muốn là nó xóa folder bất kỳ ak a.hi

 

@ a ndtnv: Hàm delFolder a gởi dùng rất tốt ạ ^^ 

Muốn dùng doping tăng lực thì hàng đây :D :

(acet-sys-command (strcat "RD /s /q " "\"C:\\...\\Tr.CongSon" "\""))

  • 4

#2728 Tr.CongSon

Tr.CongSon

    biết lệnh array

  • Members
  • PipPipPip
  • 183 Bài viết
Điểm đánh giá: 40 (tàm tạm)

Đã gửi 08 December 2015 - 03:27 PM

 

Muốn dùng doping tăng lực thì hàng đây :D :

(acet-sys-command (strcat "RD /s /q " "\"C:\\...\\Tr.CongSon" "\""))

 

Công nhận liều dooping của a uy lực thật ^^

Hàm này nó giống như (command "shell") đúng ko a?

Nhưng Em chưa hiểu cái  "RD /s /q" có ý nghĩa là gì ?

A có thể giải thích thêm ko ạ?


  • 0

#2729 pphung183

pphung183

    biết dimstyle

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

Đã gửi 08 December 2015 - 04:08 PM

Công nhận liều dooping của a uy lực thật ^^

Hàm này nó giống như (command "shell") đúng ko a?

Nhưng Em chưa hiểu cái  "RD /s /q" có ý nghĩa là gì ?

A có thể giải thích thêm ko ạ?

1/ Chính xác

2/ RD : xóa thư mục với 2 thông số :

/s : xóa toàn bộ cây thư mục,  /q : xóa không cần hỏi

  • 4

#2730 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 05 January 2016 - 06:29 PM

Hề hề hề,

Xin hỏi các bác một vấn đề như sau.

Trong quá trình sử dụng lisp, tôi có gặp một vấn đề là tìm số lần đệ quy để thực hiện được nhiệm vụ yêu cầu. Vì vậy tôi có dùng biến đếm số lần đệ quy, Tuy nhiên kết quả ra rất không đúng. Mày mò mãi mới phát hiện ra rằng cứ mỗi lần thực hiện đệ quy thì cái biến đếm này tăng lên với giá trị 2^n (với n là số lần thực hiện đệ quy).

Thực lòng tôi không hiểu sao lại như vậy nên rất mong các bác có thể giải đáp vì sao lại như vậy.


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

#2731 HoaVien

HoaVien

    biết vẽ arc

  • Members
  • PipPip
  • 44 Bài viết
Điểm đánh giá: 12 (tàm tạm)

Đã gửi 05 January 2016 - 09:07 PM

Hề hề hề,

Xin hỏi các bác một vấn đề như sau.

Trong quá trình sử dụng lisp, tôi có gặp một vấn đề là tìm số lần đệ quy để thực hiện được nhiệm vụ yêu cầu. Vì vậy tôi có dùng biến đếm số lần đệ quy, Tuy nhiên kết quả ra rất không đúng. Mày mò mãi mới phát hiện ra rằng cứ mỗi lần thực hiện đệ quy thì cái biến đếm này tăng lên với giá trị 2^n (với n là số lần thực hiện đệ quy).

Thực lòng tôi không hiểu sao lại như vậy nên rất mong các bác có thể giải đáp vì sao lại như vậy.

Bác cho em xem tí ... ti code.

Em chưa thấy là em chưa tin ạ,

cái zụ này người trong cuộc thường không tĩnh táo cho lắm, lúc nào cũng nói là "em chả làm gì cả mà nó cứ ...gây hậu quả nghiêm trọng".


  • 0

#2732 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 07 January 2016 - 03:25 PM

Bác cho em xem tí ... ti code.

Em chưa thấy là em chưa tin ạ,

cái zụ này người trong cuộc thường không tĩnh táo cho lắm, lúc nào cũng nói là "em chả làm gì cả mà nó cứ ...gây hậu quả nghiêm trọng".

Hề hề hề,

Muốn code thì có code đây:

 

Lưu ý rằng trong hàm (alert ....) nếu thay (itoa (loga2 (1+ i))) bằng hàm (itoa i) sẽ thấy sự khác nhau giữa giá trị của i và số bước đệ quy thực tế.

(defun chua ( a / b b1 b2 b3 b4  )
;;;;;(setq i 0)
(while (not (equal a 6174 0.1))
(setq  ;;;;;a (getint "\n Nhap so co 4 chu so: ")
          b (itoa a)
          b1 (+ (atoi (substr b 1 1)) 0.1)
          b2 (+ (atoi (substr b 2 1)) 0.2)
          b3 (+ (atoi (substr b 3 1)) 0.3)
          b4 (+ (atoi (substr b 4 1)) 0.4)
          bls1 (vl-sort (list b1 b2 b3 b4) '(lambda (x y) (>= x y)))
          bls2 (vl-sort (list b1 b2 b3 b4) '(lambda (x y) (<= x y)))
          bmax (atoi (strcat (itoa (fix (nth 0 bls1))) (itoa (fix (nth 1 bls1))) (itoa (fix (nth 2 bls1))) (itoa (fix (nth 3 bls1)))))
          bmin (atoi (strcat (itoa (fix (nth 0 bls2))) (itoa (fix (nth 1 bls2))) (itoa (fix (nth 2 bls2))) (itoa (fix (nth 3 bls2)))))
          a (- bmax bmin)   )
(setq i (1+ i))
(if (>= a 1000)
    (progn
           (chua a)
          
    )
    (progn
          (if (>= a 100)
              (setq a (* a 10))
              (setq a (* a 100))
          )
          (chua a)
          
    )
)
 
)
a
 
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(defun c:test (/ a i)
(setq i 0)
(setq a (getint "\n Nhap so tu nhien co 4 chu so: "))
(chua a)
(alert (strcat "\n So " (itoa a) " tro thanh So cua chua 6174 sau " (itoa (loga2 (1+ i))) " buoc lap"))
)
;;;;;;;;;;;;;;;;;
(defun loga2 ( a / )
(setq i 0)
(while (/= a  1)
(setq  a (/ a 2)
           i (1+ i)  )
)
i
)  
 

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

#2733 ndtnv

ndtnv

    biết lệnh minsert

  • Members
  • PipPipPipPipPipPip
  • 437 Bài viết
Điểm đánh giá: 384 (khá)

Đã gửi 07 January 2016 - 07:09 PM

Đây là bài toán về số Kaprekar

Bạn tham khảo:

(defun chua ( a / b b1 b2 b3 b4  )
;;;;;(setq i 0)
(if (not (equal a 6174 0.1))
  (progn
  (setq  ;;;;;a (getint "\n Nhap so co 4 chu so: ")
            b (itoa a)
            b1 (+ (atoi (substr b 1 1)) 0.1)
            b2 (+ (atoi (substr b 2 1)) 0.2)
            b3 (+ (atoi (substr b 3 1)) 0.3)
            b4 (+ (atoi (substr b 4 1)) 0.4)
            bls1 (vl-sort (list b1 b2 b3 b4) '(lambda (x y) (>= x y)))
            bls2 (vl-sort (list b1 b2 b3 b4) '(lambda (x y) (<= x y)))
            bmax (atoi (strcat (itoa (fix (nth 0 bls1))) (itoa (fix (nth 1 bls1))) (itoa (fix (nth 2 bls1))) (itoa (fix (nth 3 bls1)))))
            bmin (atoi (strcat (itoa (fix (nth 0 bls2))) (itoa (fix (nth 1 bls2))) (itoa (fix (nth 2 bls2))) (itoa (fix (nth 3 bls2)))))
            a (- bmax bmin)   )
  (setq i (1+ i))
  
  (if (>= a 1000)
      (progn
            (setq a (chua a))
           
      )
      (progn
            (if (>= a 100)
                (setq a (* a 10))
                (setq a (* a 100))
            )
            (setq a (chua a))
           
      )
  )
  ;)
 
))
a
)

Code còn dài dòng nhiều chỗ VD:

- Đổi số <-> string chậm hơn dùng rem nhiều lần

- b1, b2, b3, b4 không cần thiết phải là số thực

- bls2 là reverse của bls1 nên không cần tính

- bmax = 1000*(nth 0 bls1) + 100*(nth 1 bls1) +.....

  có thể dùng mapcar cho gọn hơn


  • 2

#2734 thanhduan2407

thanhduan2407

    biết lệnh adcenter

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

Đã gửi 11 January 2016 - 05:53 PM

Em chào các bác!

Em đang tìm phương thức để lấy được danh sách tọa độ của điểm chèn (list Coordinates ..) khi mình thực hiện ArrayRectang khi có điểm Pick, có khoảng cách hàng, cột…. mà em chưa biết để tìm ra cách. Cái khó của em là em chỉ cần lấy tọa độ của các điểm dạng ArrayRectang mà không phải chèn bLock. Nếu chèn rồi lại mất công xóa đi thì mất thời gian quá.

(vlax-invoke

    Object  'ArrayRectangular KCH KCC….)

Em nhờ các bác tư vấn cho em với ạ!

Em xin chân thành cảm ơn nhiều!

Ps: Đã Modify.

Em đã tóm được các điểm chèn rùi. Nhưng phải thêm công đoạn xóa Block đi. 


  • 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







#2735 duy782006

duy782006

    PHẠM QUỐC DUY

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

Đã gửi 12 January 2016 - 09:15 AM

Sao bạn không làm hàm con tính ra tọa độ từ điểm cơ sở từ , hàng ngang, hàng dọc, khoảng cách cho nó khỏe bạn. Hay mình hiểu sai ý.


  • 0

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#2736 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 January 2016 - 01:47 PM

Đây là bài toán về số Kaprekar

Bạn tham khảo:

(defun chua ( a / b b1 b2 b3 b4  )
;;;;;(setq i 0)
(if (not (equal a 6174 0.1))
  (progn
  (setq  ;;;;;a (getint "\n Nhap so co 4 chu so: ")
            b (itoa a)
            b1 (+ (atoi (substr b 1 1)) 0.1)
            b2 (+ (atoi (substr b 2 1)) 0.2)
            b3 (+ (atoi (substr b 3 1)) 0.3)
            b4 (+ (atoi (substr b 4 1)) 0.4)
            bls1 (vl-sort (list b1 b2 b3 b4) '(lambda (x y) (>= x y)))
            bls2 (vl-sort (list b1 b2 b3 b4) '(lambda (x y) (<= x y)))
            bmax (atoi (strcat (itoa (fix (nth 0 bls1))) (itoa (fix (nth 1 bls1))) (itoa (fix (nth 2 bls1))) (itoa (fix (nth 3 bls1)))))
            bmin (atoi (strcat (itoa (fix (nth 0 bls2))) (itoa (fix (nth 1 bls2))) (itoa (fix (nth 2 bls2))) (itoa (fix (nth 3 bls2)))))
            a (- bmax bmin)   )
  (setq i (1+ i))
  
  (if (>= a 1000)
      (progn
            (setq a (chua a))
           
      )
      (progn
            (if (>= a 100)
                (setq a (* a 10))
                (setq a (* a 100))
            )
            (setq a (chua a))
           
      )
  )
  ;)
 
))
a
)

Code còn dài dòng nhiều chỗ VD:

- Đổi số <-> string chậm hơn dùng rem nhiều lần

- b1, b2, b3, b4 không cần thiết phải là số thực

- bls2 là reverse của bls1 nên không cần tính

- bmax = 1000*(nth 0 bls1) + 100*(nth 1 bls1) +.....

  có thể dùng mapcar cho gọn hơn

Hề hề hề,

Cảm ơn sự chỉ dẫn của bác ndtnv.

1/- Về việc tách các chữ số, mình quên cái hàm (rem ....) nên mới dùng cái cách lẩm cẩm như vậy.

2/- Về các biến b1 b2 b3 b4 sở dĩ mình cho nó thành các số thực như vậy để tránh trường hợp có các giá trị nguyên trùng nhau. (Khi đó hàm (vl-sort ...) sẽ luôn trả về đủ 4 giá trị )

3/- Đúng là không cần tới biến bls2


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

#2737 nguyenngoctu2

nguyenngoctu2

    Edu level: aa5

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

Đã gửi 12 January 2016 - 01:56 PM

Em chào anh Hoành và mọi người yêu cad!

Em có bộ lisp rất hay, của một ông anh trai làm cho công ty chuyên về thiết kế xây dựng nổi tiếng số một trong miền nam Việt Nam,nhưng không hề biết cài toàn bộ các lisp này để sử dụng, trong khi công ty yêu cầu phải thành thạo các lisp này để thiết kế. Có thể các lisp này đã có trên cad việt rồi, nhưng em cứ up lên cho mọi người tham khảo và giúp đỡ, em đã mò nhiều giờ , làm mọi cách nhưng không load toàn bộ lisp này được, mong anh Hoành và mọi người chỉ điểm!

Tiện thể, anh nào có sap 2000 v14.2.2 cho win 8, thì up lên, xin được cảm ơn và không biết hậu tạ như thế nào !

Chân thành!

 

https://www.dropbox....nh cao.rar?dl=0


  • 0

#2738 nguyenngoctu2

nguyenngoctu2

    Edu level: aa5

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

Đã gửi 12 January 2016 - 02:01 PM

Em chào anh Hoành và mọi người yêu cad!

Em có bộ lisp rất hay, của một ông anh trai làm cho công ty chuyên về thiết kế xây dựng nổi tiếng số một trong miền nam Việt Nam,nhưng không hề biết cài toàn bộ các lisp này để sử dụng, trong khi công ty yêu cầu phải thành thạo các lisp này để thiết kế. Có thể các lisp này đã có trên cad việt rồi, nhưng em cứ up lên cho mọi người tham khảo và giúp đỡ, em đã mò nhiều giờ , làm mọi cách nhưng không load toàn bộ lisp này được, mong anh Hoành và mọi người chỉ điểm!

Tiện thể, anh nào có sap 2000 v14.2.2 cho win 8, thì up lên, xin được cảm ơn và không biết hậu tạ như thế nào !

Chân thành!

 

https://www.dropbox....nh cao.rar?dl=0


  • 0

#2739 thanhduan2407

thanhduan2407

    biết lệnh adcenter

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

Đã gửi 12 January 2016 - 07:19 PM

Sao bạn không làm hàm con tính ra tọa độ từ điểm cơ sở từ , hàng ngang, hàng dọc, khoảng cách cho nó khỏe bạn. Hay mình hiểu sai ý.

 Như thế mất rất nhiều thời gian và phải lập công thức. Em đã làm đc rồi ạ! Tuy nhiên hơi mất công đoạn trải mảng block xong lấy ra tọa độ rồi lại xóa đi.

Chương trình của em đây!


  • 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







#2740 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 13 January 2016 - 11:22 AM

 Như thế mất rất nhiều thời gian và phải lập công thức. Em đã làm đc rồi ạ! Tuy nhiên hơi mất công đoạn trải mảng block xong lấy ra tọa độ rồi lại xóa đi.

Chương trình của em đây!

hề hề hề,

Chương trình của em ....... ĐÂU ??????


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