Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Nguyen Hoanh

Viết Lisp theo yêu cầu

Các bài được khuyến nghị

Làm thế nào để đưa các icon vào trong các menu của mình như các menu khác của cad nhỉ.Ví dụ như bên cạnh Help trong menu Help là icon hình

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Có ai có thể cho e biết đc Lisp có thể gọi đc 1 chương trình File exe đã cài trong máy ko?

Ví dụ như chương trinh tính thống kê thép CTK của Jin ấy?

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Làm thế nào để đưa các icon vào trong các menu của mình như các menu khác của cad nhỉ.Ví dụ như bên cạnh Help trong menu Help là icon hình

Không được! Nếu bạn muốn thì dùng Toolbars hoặc Image Tile Menu

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Có ai có thể cho e biết đc Lisp có thể gọi đc 1 chương trình File exe đã cài trong máy ko?

Ví dụ như chương trinh tính thống kê thép CTK của Jin ấy?

(command "start" "...\\Myapp.exe")

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Làm thế nào để đưa các icon vào trong các menu của mình như các menu khác của cad nhỉ.Ví dụ như bên cạnh Help trong menu Help là icon hình

 

Theo tôi biết thì cad2008 làm được việc này. Nhưng phài viết đi viết lại cho các đời cad mệt lắm với lại cái này mang tính biểu diển không cần thiết lắm.

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Mình đang cần một lisp thống kê thiết bị (như hình dưới)

test.jpg

 

Kí hiệu thiết bị được tạo bởi một block "hiệu ứng" (không biết giải thích như thế nào, text trong block có thể edit được... attribute gì đó <_<), khi dùng lisp thì nó sẽ cho mình một bảng thống kê các thiết bị (như trong hình kèm theo)

Đây là file cad ví dụ:

http://www.cadviet.com/upfiles/test.dwg

 

Rất mong được sự giúp đỡ của các Mod.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
...

Kí hiệu thiết bị được tạo bởi một block "hiệu ứng" (không biết giải thích như thế nào, text trong block có thể edit được... attribute gì đó <_<), khi dùng lisp thì nó sẽ cho mình một bảng thống kê các thiết bị (như trong hình kèm theo)

Đây là file cad ví dụ:

http://www.cadviet.com/upfiles/test.dwg

 

Rất mong được sự giúp đỡ của các Mod.

Cảm ơn bạn vì đã đưa ra yêu cầu rất mạch lạc.

 

Lệnh TKB (thống kê block) dưới đây sẽ làm điều bạn muốn:

(defun c:tkb (/ kq)
 (setq
   ssb	 (ssget '((0 . "INSERT") (2 . "kh1")))
   dc	 (getpoint "\nVao diem chen ket qua: ")
   x	 (car dc)
   y	 (cadr dc)
   lstb (ss2ent ssb)
   lstb (mapcar '(lambda (e)
	    (setq e1 (entnext e)
		  e2 (entnext e1)
	    )
	    (list (cdr (assoc 1 (entget e1)))
		  (cdr (assoc 1 (entget e2)))
	    )
	  )
	 lstb
 )
   lstb (vl-sort lstb '(lambda (e1 e2)
		  (if (= (cadr e1)(cadr e2))
		    (			    (			)
	  )
 )
 (foreach e lstb
   (if	(assoc e kq)
     (setq
e1 (assoc e kq)
e1 (cons (car e1) (1+ (cdr e1)))
kq (subst e1 (assoc e kq) kq)
     )
     (setq kq (append kq (list (cons e 1))))
   )
 )
 (foreach e kq
   (setq gt (car e)
  sl (itoa (cdr e))
   )
   (command ".insert"
     "kh1"
     (list x y)
     ""
     ""
     ""
     (car gt)
     (cadr gt)
   )
   (entmake (list (cons 0 "TEXT")
	   (cons 8 "NetText")
	   (cons 10 (list (+ x 1870) (+ y 181)))
	   (cons 40 250.0)
	   (cons 1 sl)
	   (cons 7 "STYLE7")
     )
   )
   (setq y (- y 880.0))
 )
 (princ)
)

(defun ss2ent (ss / sodt index lstent)
 (setq
   sodt  (if ss
    (sslength ss)
    0
  )
   index 0
 )
 (repeat sodt
   (setq ent	 (ssname ss index)
  index	 (1+ index)
  lstent (cons ent lstent)
   )
 )
 (reverse lstent)
)

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Cảm ơn bác Hoành rất nhiều!

- Cho mình hỏi thêm một chút nữa là:

Với trường hợp mà có nhiều tên Block khác nhau

ssb (ssget '((0 . "INSERT") (2 . "kh1"))), không đơn thuần là một tên thì có thể cập nhật cho lisp thống kê tự nhận biết các block dạng (attribute) để thống kê ko vậy? Nếu làm được thế thì tốt quá

 

Một lần nữa cảm ơn bác Hoành và Cadviet!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Cảm ơn bạn vì đã đưa ra yêu cầu rất mạch lạc.

 

Lệnh TKB (thống kê block) dưới đây sẽ làm điều bạn muốn:

(defun c:tkb (/ kq)
 (setq
   ssb	 (ssget '((0 . "INSERT") (2 . "kh1")))
   dc	 (getpoint "\nVao diem chen ket qua: ")
   x	 (car dc)
   y	 (cadr dc)
   lstb (ss2ent ssb)
   lstb (mapcar '(lambda (e)
	    (setq e1 (entnext e)
		  e2 (entnext e1)
	    )
	    (list (cdr (assoc 1 (entget e1)))
		  (cdr (assoc 1 (entget e2)))
	    )
	  )
	 lstb
 )
   lstb (vl-sort lstb '(lambda (e1 e2)
		  (if (= (cadr e1)(cadr e2))
		    (< (car e1)(car e2))
		    (< (cadr e1)(cadr e2)))
		)
	  )
 )
 (foreach e lstb
   (if	(assoc e kq)
     (setq
e1 (assoc e kq)
e1 (cons (car e1) (1+ (cdr e1)))
kq (subst e1 (assoc e kq) kq)
     )
     (setq kq (append kq (list (cons e 1))))
   )
 )
 (foreach e kq
   (setq gt (car e)
  sl (itoa (cdr e))
   )
   (command ".insert"
     "kh1"
     (list x y)
     ""
     ""
     ""
     (car gt)
     (cadr gt)
   )
   (entmake (list (cons 0 "TEXT")
	   (cons 8 "NetText")
	   (cons 10 (list (+ x 1870) (+ y 181)))
	   (cons 40 250.0)
	   (cons 1 sl)
	   (cons 7 "STYLE7")
     )
   )
   (setq y (- y 880.0))
 )
 (princ)
)

(defun ss2ent (ss / sodt index lstent)
 (setq
   sodt  (if ss
    (sslength ss)
    0
  )
   index 0
 )
 (repeat sodt
   (setq ent	 (ssname ss index)
  index	 (1+ index)
  lstent (cons ent lstent)
   )
 )
 (reverse lstent)
)

 

 

 

BÁC CÓ THỂ LÀM MỘT CÁI LISP ĐỂ VẼ CẦU THANG THẲNG VÀ CẦU THANG XOẮN THEO 1 THIẾT KỂ NÀO ĐÓ ĐƯỢC KO BÁC

THANK BÁC NHIỀU

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Bác nào giúp em cái lisp này với.

Chọn text 1 -> chọn text 2 -> chọn Pline -> in ra kết quả là Độ dốc / Chiều dài.

Trong đó Độc dốc = [(text1)-(text2)] / Chiều dài Pline.

 

Thanks.

 

cdle8.jpg

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Bác nào giúp em cái lisp này với.

Chọn text 1 -> chọn text 2 -> chọn Pline -> in ra kết quả là Độ dốc / Chiều dài.

Trong đó Độc dốc = [(text1)-(text2)] / Chiều dài Pline.

 

Thanks.

 

cdle8.jpg

Bạn có thể upload file dwg trong ảnh lên diễn đàn được không?

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Con số 110.37 lấy ở đâu hả bạn?

 

Trong file của bạn chẳng có giá trị nào như vậy cả.

Là khoảng cách giữa hai ngã 4 á bác. Em quên chưa trym 2 đầu cho nó còn 1 đoạn pline <_<

E nghĩ là giá trị (chiều dài) theo pline thì chuẩn hơn vì nếu chọn 2 điểm để ra chiều dài thì sợ có những đoạn nó có cả đường cong.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Là khoảng cách giữa hai ngã 4 á bác. Em quên chưa trym 2 đầu cho nó còn 1 đoạn pline <_<

E nghĩ là giá trị (chiều dài) theo pline thì chuẩn hơn vì nếu chọn 2 điểm để ra chiều dài thì sợ có những đoạn nó có cả đường cong.

Nếu như nhìn vào bản ảnh chụp màn hình của bạn, ai cũng nghĩ rằng khoảng cách giữa 2 đường tim của ngã tư là 110.37.

 

Nhưng trong bản vẽ DWG của bạn khoảng cách giữa 2 ngã tư chẳng có khoảng cách nào có giá trị 110.37. Tại các ngã tư, khi zoom lên các đường tim của bạn nát như tương, số điểm tim giao nhau tôi đếm được là 4 điểm, nhưng không có hai điểm bất kỳ nào có khoảng cách như bạn nêu.

 

Đừng mong chờ người khác sẽ giúp bạn nếu bạn không nghĩ rằng bạn phải giúp bạn trước. Nếu bạn đưa ra một bản vẽ chuẩn mực, chương trình lisp chưa chắc đã có một kết quả đúng. Huống chi bạn đưa ra một bản vẽ quá ẩu như vậy, chắc chắn chương trình lisp sẽ đưa ra kết quả sai.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Nếu như nhìn vào bản ảnh chụp màn hình của bạn, ai cũng nghĩ rằng khoảng cách giữa 2 đường tim của ngã tư là 110.37.

 

Nhưng trong bản vẽ DWG của bạn khoảng cách giữa 2 ngã tư chẳng có khoảng cách nào có giá trị 110.37. Tại các ngã tư, khi zoom lên các đường tim của bạn nát như tương, số điểm tim giao nhau tôi đếm được là 4 điểm, nhưng không có hai điểm bất kỳ nào có khoảng cách như bạn nêu.

 

Đừng mong chờ người khác sẽ giúp bạn nếu bạn không nghĩ rằng bạn phải giúp bạn trước. Nếu bạn đưa ra một bản vẽ chuẩn mực, chương trình lisp chưa chắc đã có một kết quả đúng. Huống chi bạn đưa ra một bản vẽ quá ẩu như vậy, chắc chắn chương trình lisp sẽ đưa ra kết quả sai.

Hic, bác làm gì mà nặng lời thế. Em ko biết khi bác view file của em có lỗi gì ko mà tim lại nát như tương, nhưng ảnh sau đây em capture lại khi đã trim cái đoạn bên trái đi, pline đó sẽ có độ dài 110,37.

 

http://www.cadviet.com/upfiles/cd2.jpg

 

Lúc đầu em cũng định ngồi vẽ 1 cái vuông vắn, đơn giản nhưng em nghĩ làm gì để các bác trên này hiểu ý mình là được, ko nghĩ vì file cad đó mà để bác phải nặng lời thế này <_<

 

Em gửi lại file cad, bác xem giúp em nhé. Sorry làm phiền bác nhiều quá.

http://www.cadviet.com/upfiles/cd2.dwg

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Ai có thể viết hộ e lisp này đc không.

E muốn mỗi khi mở cad ra nó sẽ tự load 1 số lisp của e( khoảng 30file) mà không cần phải gõ lệnh gì hết, giống như Startup của windown ấy. Em đã thử làm 1file acad.lsp rồi để vào trong thư mục C:\ProgramAuto Cad 2007\acad.lsp rồi mà không ăn thua.File acad.lsp e port phía dưới.Mong các anh giúp đỡ!!!!!!!

http://www.cadviet.com/upfiles/acad.lsp

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Ai có thể viết hộ e lisp này đc không.

E muốn mỗi khi mở cad ra nó sẽ tự load 1 số lisp của e( khoảng 30file) mà không cần phải gõ lệnh gì hết, giống như Startup của windown ấy. Em đã thử làm 1file acad.lsp rồi để vào trong thư mục C:\ProgramAuto Cad 2007\acad.lsp rồi mà không ăn thua.File acad.lsp e port phía dưới.Mong các anh giúp đỡ!!!!!!!

http://www.cadviet.com/upfiles/acad.lsp

 

Không biết mình có hiểu đúng ý bạn không nhưng cần gì viết lisp để load lisp khác mỗi khi khởi động cad nhỉ ?

1234.jpg

 

Thả các lisp vào Startup Suite là xong. Hy vọng có thông tin bổ ích.

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Ai có thể viết hộ e lisp này đc không.

E muốn mỗi khi mở cad ra nó sẽ tự load 1 số lisp của e( khoảng 30file) mà không cần phải gõ lệnh gì hết, giống như Startup của windown ấy. Em đã thử làm 1file acad.lsp rồi để vào trong thư mục C:\ProgramAuto Cad 2007\acad.lsp rồi mà không ăn thua.File acad.lsp e port phía dưới.Mong các anh giúp đỡ!!!!!!!

http://www.cadviet.com/upfiles/acad.lsp

Trong các file của bạn, Acad chỉ chấp nhận load *.lsp, *.fas và *.vlx thôi. Còn những cái khác thì nó bảo "I don't know!". Bạn sưu tầm lsp từ đủ các nguồn hằm bà lằng và còn lơ mơ về cái khoản load thì tốt nhất là dùng Startup Suite như anh bạn bighead đã nêu bên dưới (mà cái này trên diễn đàn đã nói rất nhiều, bạn không đọc hay sao ấy!)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
...cần gì viết lisp để load lisp khác mỗi khi khởi động cad nhỉ ?

Autodesk bày ra file acad.lsp là dành cho mục đích này. Nó hữu ích khi bạn muốn share chương trình của bạn cho mọi người, trong đó có những người hoàn toàn không có một chút khái niệm gì về lisp hay appload. Họ có thể xem chương trình của bạn như một application hoàn chỉnh, chỉ cần click vào setup.exe chẳng hạn là có ngay mọi thứ, không cần quan tâm đến bất cứ điều gì khác.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Ai có thể viết hộ e lisp này đc không.

E muốn mỗi khi mở cad ra nó sẽ tự load 1 số lisp của e( khoảng 30file) mà không cần phải gõ lệnh gì hết, giống như Startup của windown ấy. Em đã thử làm 1file acad.lsp rồi để vào trong thư mục C:\ProgramAuto Cad 2007\acad.lsp rồi mà không ăn thua.File acad.lsp e port phía dưới.Mong các anh giúp đỡ!!!!!!!

http://www.cadviet.com/upfiles/acad.lsp

 

Dối với cad 2007 thì file này có ten là acaddoc.lsp

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Hic, bác làm gì mà nặng lời thế. Em ko biết khi bác view file của em có lỗi gì ko mà tim lại nát như tương, nhưng ảnh sau đây em capture lại khi đã trim cái đoạn bên trái đi, pline đó sẽ có độ dài 110,37.

 

http://www.cadviet.com/upfiles/cd2.jpg

 

Lúc đầu em cũng định ngồi vẽ 1 cái vuông vắn, đơn giản nhưng em nghĩ làm gì để các bác trên này hiểu ý mình là được, ko nghĩ vì file cad đó mà để bác phải nặng lời thế này <_<

 

Em gửi lại file cad, bác xem giúp em nhé. Sorry làm phiền bác nhiều quá.

http://www.cadviet.com/upfiles/cd2.dwg

@ATnguyen:

Mong rằng bạn hiểu cho, chương trình luôn luôn có tính máy móc, nó không có cái gọi là "thông minh" để hiểu vấn đề như con người! Mọi dữ liệu đầu vào cho chương trình phải chính xác đến từng chi tiết nhỏ. Yêu cầu của bạn không có gì khó, nhưng người lập trình buộc phải hiểu chính xác ý bạn. Ví dụ minh hoạ bằng file *.dwg là phương tiện tốt nhất để diễn đạt ý.

Ví dụ là ví dụ, nhưng thông qua ví dụ bằng số liệu cụ thể, người lập trình sẽ hiểu đúng ý bạn muốn gì. Bởi vậy, yêu cầu của ví dụ là phải chính xác. Với file bản vẽ bạn post lần đầu, chương trình biết lấy đâu ra con số 110.37 để tính toán và xử lý? Hãy tự trách mình trước khi cho rằng anh Hoành nặng lời!

 

@Anh Hoành:

Cũng mong rằng anh thông cảm phần nào với thành viên mới. Chỉ 1 lần là anh bạn ATnguyen hiểu ra và tự rút kinh nghiệm. Ssg sẽ không làm cái này, "để dành" cho anh chứng tỏ rằng mình không cố chấp!

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Hic, bác làm gì mà nặng lời thế. Em ko biết khi bác view file của em có lỗi gì ko mà tim lại nát như tương, nhưng ảnh sau đây em capture lại khi đã trim cái đoạn bên trái đi, pline đó sẽ có độ dài 110,37.

 

Lúc đầu em cũng định ngồi vẽ 1 cái vuông vắn, đơn giản nhưng em nghĩ làm gì để các bác trên này hiểu ý mình là được, ko nghĩ vì file cad đó mà để bác phải nặng lời thế này <_<

 

Em gửi lại file cad, bác xem giúp em nhé. Sorry làm phiền bác nhiều quá.

 

Tên lệnh là XDD (xác định dốc).

 

Cách sử dụng như sau:

Trước khi sử dụng, hãy download file zip này về và bung nén rồi copy file muitendoc.dwg vào thư mục support: http://www.cadviet.com/upfiles/muitendoc.zip. Mục đích là tạo block mũi tên để chương trình chèn vào.

Bước 1. Khi gọi lệnh XDD, chương trình sẽ yêu cầu bạn pick vào một pline đường tim. Chương trình sẽ tự động nhận ra text cao độ. Và highlight 2 đối tượng mà chương trình tự động tìm được.

Bước 2. Nếu 2 đối tượng mà chương trình tìm là phù hợp, bạn chỉ cần pick vào tọa độ điểm chèn kết quả.

Bước 3 (nếu cần). Nếu 2 đối tượng mà chương trình tìm tại bước 1 không đúng, bạn hãy nhấn enter, chương trình sẽ yêu cầu bạn chọn 2 đối tượng text cao độ. Sau đó chương trình sẽ hỏi tọa độ điểm chèn như bước 2.

 

(defun c:xdd (/ dc)
 (if (not (tblsearch "block" "muitendoc"))
   (alert
     "\nBan phai copy file muitendoc.dwg tu: [url="http://www.cadviet.com/upfiles/muitendoc.dwg"][url="http://www.cadviet.com/upfiles/muitendoc.dwg"][url="http://www.cadviet.com/upfiles/muitendoc.dwg"]http://www.cadviet.com/upfiles/muitendoc.dwg[/url][/url][/url] vao thu muc support!"
   )
   (progn
     (setq
sel  (entsel "\nHay pick vao pline: ")
ent  (car sel)
len  (vla-get-length (vlax-ename->vla-object ent))
lst  (vl-remove	nil
		(mapcar	'(lambda (x)
			   (if (= (car x) 10)
			     (cdr x)
			     nil
			   )
			 )
			(entget ent)
		)
     )
p1   (car lst)
p2   (car (reverse lst))
sst  (ssget "X" '((0 . "TEXT") (8 . "1-cotduong")))
lstt (ss2ent sst)
lstt (mapcar '(lambda (e)
		(setq p	 (cdr (assoc 10 (entget e)))
		      d1 (distance p p1)
		      d2 (distance p p2)
		)
		(list e d1 d2)
	      )
	     lstt
     )
e1   (caar
       (vl-sort lstt '(lambda (x1 x2) (	     )
e2   (caar
       (vl-sort lstt '(lambda (x1 x2) (	     )
     )

     (redraw e1 3)
     (redraw e2 3)
     (while (not dc)
(setq dc
       (getpoint
	 "\nHay vao diem chen ket qua, hoac nhan enter de chon lai 2 text: "
       )
)
(if (not dc)
  (progn
    (redraw e1 4)
    (redraw e2 4)
    (setq e1 (car (entsel "\nVao text dau: ")))
    (redraw e1 3)
    (setq e2 (car (entsel "\nVao text cuoi: "))
    )
  )
)
     )
     (redraw e1 4)
     (redraw e2 4)
     (setq c1	(atof (cdr (assoc 1 (entget e1))))
    c2	(atof (cdr (assoc 1 (entget e2))))
    dh	(- c2 c1)
    i	(/ dh len)
    ang	(* (angle p2 p1) (/ 180.0 pi))
     )
     (if (      (putvalue dc ang i len)
   )
 )
 (princ)
)
(defun putvalue	(p a i l)
 (command ".insert"
   "muitendoc"
   p
   1.0
   1.0
   ang
   (rtos l 2 2)
   (rtos i 2 3)
 )
)

(defun ss2ent (ss / sodt index lstent)
 (setq
   sodt  (if ss
    (sslength ss)
    0
  )
   index 0
 )
 (repeat sodt
   (setq ent	 (ssname ss index)
  index	 (1+ index)
  lstent (cons ent lstent)
   )
 )
 (reverse lstent)
)

 

@ssg: Cảm ơn bác.

  • Vote tăng 2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

E từng thấy trên diên đàn có nói về lisp vẽ cửa đi, cửa sổ trên mặt bằng mà khi vẽ xong không bị mất bắt điểm và bày cho đoạn code khắc phục lỗ đó nhưng giờ tìm mãi mà không thấy nữa! Ai có thể tìm giúp e không ?

Xin đa tạ!!!!!!!!!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
E từng thấy trên diên đàn có nói về lisp vẽ cửa đi, cửa sổ trên mặt bằng mà khi vẽ xong không bị mất bắt điểm và bày cho đoạn code khắc phục lỗ đó nhưng giờ tìm mãi mà không thấy nữa! Ai có thể tìm giúp e không ?

Xin đa tạ!!!!!!!!!

Topic bàn về vấn đề bị mất bắt điểm ở đây: http://www.cadviet.com/forum/Hoi-ve-Lisp-t371.html

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Khách
Chủ đề này bây giờ đã bị đóng lại để trả lời thêm.

×