Đế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

#421 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 16 September 2009 - 02:38 PM

Chào các bác,
Hiện tại mình gặp một vấn đề như sau:
Trong quá trình ứng dụng lisp đối với một bản vẽ, mình muốn mở một bản vẽ khác để sử lý rồi sau đó đóng bản vẽ này lại và tiếp tục chạy lisp trên bản vẽ cũ.
Vậy xin hỏi các bác như sau:
1/- Có thể dùng lisp thực hiện nhiệm vụ này hay không? Cách tạo code để thực hiện nhiệm vụ đó.
2/- Nếu không thể, có cách lập trình bằng ngôn ngữ nào khác để thực hiện nhiệm vụ này không?

Thanks các bác nhiề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.

#422 nataca

nataca

    biết lệnh adcenter

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

Đã gửi 16 September 2009 - 02:51 PM

Chào các bác,
Hiện tại mình gặp một vấn đề như sau:
Trong quá trình ứng dụng lisp đối với một bản vẽ, mình muốn mở một bản vẽ khác để sử lý rồi sau đó đóng bản vẽ này lại và tiếp tục chạy lisp trên bản vẽ cũ.
Vậy xin hỏi các bác như sau:
1/- Có thể dùng lisp thực hiện nhiệm vụ này hay không? Cách tạo code để thực hiện nhiệm vụ đó.
2/- Nếu không thể, có cách lập trình bằng ngôn ngữ nào khác để thực hiện nhiệm vụ này không?

Thanks các bác nhiều.

Em chưa hiểu mở bản vẽ khác để xử lý là như thế nào. Tức là bản vẽ khác có dùng đến lisp của bản vẽ hiện thời hay không? Bản vẽ khác mở trong lúc lisp đang thực hiện ở bản vẽ này? Hay là trong khi đang chờ lisp thực hiện đối với bản vẽ này thì ta mở bản vẽ khác rồi làm j với nó thì làm mà không động chạm tới bản vẽ cũ?
  • 0

#423 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

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

Yêu cầu chưa rõ ràng lắm. Bạn nên giải thích thêm cho rõ hơn.

Hề hề,
Khổ quá, văn dốt vũ dát nên làm khổ các bác,
Là thế này ạ:
Mình đang làm việc với bản vẽ A đang mở, dùng lisp để sử lý một số cái linh tinh trong đó, khổ nỗi nó lại có dình dáng ít nhiều tới bản vẽ B nên phải mở nó ra để sử lý rốt ráo. Sau khi sử lý xong trên cái bản vẽ B thì đóng nó lại và quay trở về bản vẽ A để chạy nốt phần còn lại của lisp.
Trước nay mình toàn phải mở thằng B ra sử lý trước rồi mới chạy lisp trên bản vẽ A. Bây giờ mình muốn chèn thêm một đoạn lisp vào cái lisp cũ để nó làm hộ mình cái việc này (mở bản vẽ B ra trong khi lisp đang chạy và sử lý sau đó đóng nó lại). Thế nhưng loay hoay hoài mà chả mở được các bác ạ.
Mình đã thử xài lệnh open trong lisp nhưng không được các bác ạ.
Khổ thế nên mới định hỏi thăm các bác xem có cách nào chơi được nó không , để căn bệnh lười của mình nó thêm nặng ý mà.
Thanks các bác đã quan tâ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.

#424 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 2009 - 07:04 PM

Hề hề,
Khổ quá, văn dốt vũ dát nên làm khổ các bác,
Là thế này ạ:
Mình đang làm việc với bản vẽ A đang mở, dùng lisp để sử lý một số cái linh tinh trong đó, khổ nỗi nó lại có dình dáng ít nhiều tới bản vẽ B nên phải mở nó ra để sử lý rốt ráo. Sau khi sử lý xong trên cái bản vẽ B thì đóng nó lại và quay trở về bản vẽ A để chạy nốt phần còn lại của lisp.
Trước nay mình toàn phải mở thằng B ra sử lý trước rồi mới chạy lisp trên bản vẽ A. Bây giờ mình muốn chèn thêm một đoạn lisp vào cái lisp cũ để nó làm hộ mình cái việc này (mở bản vẽ B ra trong khi lisp đang chạy và sử lý sau đó đóng nó lại). Thế nhưng loay hoay hoài mà chả mở được các bác ạ.
Mình đã thử xài lệnh open trong lisp nhưng không được các bác ạ.
Khổ thế nên mới định hỏi thăm các bác xem có cách nào chơi được nó không , để căn bệnh lười của mình nó thêm nặng ý mà.
Thanks các bác đã quan tâm.

Giả sử file In A1 (06-04-09)2.dwg nằm trong ổ D :.
Cách gọi nó (mở nó) ra như sau :
(defun c:pgp()
(command "_ai_editcustfile" "D:\\In A1 (06-04-09)2.dwg")
(princ)
)
Bạn xem thêm bài viết của Tue_NV ở đây : Bai viet so 5, bai viet so 6
Hy vọng bạn sẽ thú vị về nó
:s_big:
  • 1

#425 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 16 September 2009 - 09:17 PM

Trong khi vẽ, đôi khi ta chọn đối tượng trước rồi mới gõ lệnh và cad hiểu những đối tượng vừa chọn đó là để phục vụ cho lệnh vừa nhập. VD: khi muốn xóa một đối tượng nào đó, ta có thể chọn đối tượng trước hoặc sau khi gõ lênh erase. Vậy muốn làm việc này với lisp thì ta phải viết như thế nào?
Cụ thể với lisp sử dụng hàm SSGET ngay đầu lisp để chọn đối tượng muốn xử lý.
  • 0

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#426 nataca

nataca

    biết lệnh adcenter

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

Đã gửi 16 September 2009 - 10:14 PM

Trong khi vẽ, đôi khi ta chọn đối tượng trước rồi mới gõ lệnh và cad hiểu những đối tượng vừa chọn đó là để phục vụ cho lệnh vừa nhập. VD: khi muốn xóa một đối tượng nào đó, ta có thể chọn đối tượng trước hoặc sau khi gõ lênh erase. Vậy muốn làm việc này với lisp thì ta phải viết như thế nào?
Cụ thể với lisp sử dụng hàm SSGET ngay đầu lisp để chọn đối tượng muốn xử lý.

đây là một ví dụ để có thể chọn đối tượng trước khi dùng lệnh. Chú ý tới hàm ssgetfirst
	
(setq SSet (cadr (ssgetfirst)))
(if (null SSet)
(setq SSet (ssget)
)
)

  • 1

#427 kamezoko

kamezoko

    biết vẽ line

  • Members
  • PipPip
  • 25 Bài viết
Điểm đánh giá: -3 (bình thường)

Đã gửi 16 September 2009 - 10:14 PM

em kiếm trên diển đàn có 2 lisp sau:
http://www.cadviet.c...files/2/pla.lsp
http://www.cadviet.c...files/2/tla.lsp
các lisp chạy rất tốt...em muốn kết hợp 2 lisp trên thành 1 lisp (thực hiện các công việc giống 2 lisp đó)
mong các anh giúp đở..em cám ơn :s_big:
  • 0

#428 ndtnv

ndtnv

    biết lệnh minsert

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

Đã gửi 17 September 2009 - 03:43 PM

Hề hề,
Khổ quá, văn dốt vũ dát nên làm khổ các bác,
Là thế này ạ:
Mình đang làm việc với bản vẽ A đang mở, dùng lisp để sử lý một số cái linh tinh trong đó, khổ nỗi nó lại có dình dáng ít nhiều tới bản vẽ B nên phải mở nó ra để sử lý rốt ráo. Sau khi sử lý xong trên cái bản vẽ B thì đóng nó lại và quay trở về bản vẽ A để chạy nốt phần còn lại của lisp.
Trước nay mình toàn phải mở thằng B ra sử lý trước rồi mới chạy lisp trên bản vẽ A. Bây giờ mình muốn chèn thêm một đoạn lisp vào cái lisp cũ để nó làm hộ mình cái việc này (mở bản vẽ B ra trong khi lisp đang chạy và sử lý sau đó đóng nó lại). Thế nhưng loay hoay hoài mà chả mở được các bác ạ.
Mình đã thử xài lệnh open trong lisp nhưng không được các bác ạ.
Khổ thế nên mới định hỏi thăm các bác xem có cách nào chơi được nó không , để căn bệnh lười của mình nó thêm nặng ý mà.
Thanks các bác đã quan tâm.

Bạn thử làm theo cách sau:
1. Tạo 1 file rỗng (VD a.lsp) rồi cho vào danh sách tự động load
2. Ghi nội dung các lệnh lisp cần thực hiện vào file a.lsp
- Nếu các lệnh là không đổi, cho vào file b.lsp, trước khi chạy copy sang file a.lsp
3. Mở file dwg, các lệnh trong a.lsp sẽ tự động thực hiện
4. Close file dwg
5. Xóa nội dung trong a.lsp

Sau đây là VD cho trường hợp lệnh không thay đổi
(vì là VD nên chưa xử lý trường hợp có lỗi)
VD trong file b.lsp có lệnh vẽ sau:
(entmake '((0 . "CIRCLE") (10 0 0) (40 . 100.0)))
Hàm sau sẽ open file a.dwg trong folder của bản vẽ đang mở, vẽ vòng tròn đk 100
(vl-load-com)
(defun C:TestRun ( / f s ac docs doc)
(vl-file-delete "C:/a.lsp")
(vl-file-copy "C:/b.lsp" "C:/a.lsp")
(setq ac (vlax-get-acad-object))
(setq docs (vlax-get-property ac 'Documents))
(setq s (strcat (getvar "DWGPREFIX") "a.dwg"))
(setq doc (vlax-invoke-method docs "Open" s))
(vlax-invoke-method doc "Close" "True")
(setq f (open "C:/a.lsp" "w"))
(close f)
)

  • 1

#429 thiep

thiep

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 369 Bài viết
Điểm đánh giá: 260 (khá)

Đã gửi 18 September 2009 - 10:30 AM

Trong khi vẽ, đôi khi ta chọn đối tượng trước rồi mới gõ lệnh và cad hiểu những đối tượng vừa chọn đó là để phục vụ cho lệnh vừa nhập. VD: khi muốn xóa một đối tượng nào đó, ta có thể chọn đối tượng trước hoặc sau khi gõ lênh erase. Vậy muốn làm việc này với lisp thì ta phải viết như thế nào?
Cụ thể với lisp sử dụng hàm SSGET ngay đầu lisp để chọn đối tượng muốn xử lý.

Chào Thaistreetz và Nataca,
Hàm SSGET với sel-method là "I" sẽ chọn các đối tượng do người dùng chọn trước khi phát lệnh. Đây là 1 mã ví dụ:
(defun c:ssI (/ ss p1 p2)
(setq ss (ssget "I"))
(if (null ss)
(alert
"\nban chua chon doi tuong truoc \nhoac da chon truoc \nnhung chua trung doi tuong nao"
)
(progn
(setq p1 (getvar "lastpoint"))
(setq p2 (ACET-SS-DRAG-MOVE ss p1 "di chuyên cac doi tuong vua chon dên diêm:" 0))
(command ".move" ss "" p1 p2)
)
)
(princ)
)

Hãy chú ý hàm ACET-SS-DRAG-MOVE, rất có ích cho các bạn đó.
Thaistreetz ứng dụng hàm này vào lisp GHI TOA DO CAC DIEM VA THONG KE THANH BANG xem!
  • 3

#430 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 18 September 2009 - 12:35 PM

Hãy chú ý hàm ACET-SS-DRAG-MOVE, rất có ích cho các bạn đó.

Cảm ơn Tuệ, Thiep bận rộn cả ngày hôm qua, Tuệ đã tiếp tay rất nhanh cho Tuynh.
Thiep chỉ gợi ý Tue rằng có 1 hàm trong thư viện Express tools tạo POLYLINE rất nhanh, đó là: acet-pline-make.
Còn lisp trên, Tuynh hãy đợi Tue_NV sẽ thêm vòng lặp để chọn đối tượng đến khi enter thì thôi

Chào bạn thiep
Bạn có thể chỉ cho mình cấu trúc và cú pháp của ACET-SS-DRAG-MOVE ở đâu không?

Cả hàm acet-pline-make mà Thiep đã viết cho Tuynh nữa. Mình tìm hoài trong thư viện Express tools mà chẳng thấy
acet-pline-make đâu.
Cảm ơn Thiep rất nhiều
  • 0

#431 thiep

thiep

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 369 Bài viết
Điểm đánh giá: 260 (khá)

Đã gửi 18 September 2009 - 01:47 PM

Chào bạn thiep
Bạn có thể chỉ cho mình cấu trúc và cú pháp của ACET-SS-DRAG-MOVE ở đâu không?

Cả hàm acet-pline-make mà Thiep đã viết cho Tuynh nữa. Mình tìm hoài trong thư viện Express tools mà chẳng thấy
acet-pline-make đâu.
Cảm ơn Thiep rất nhiều

Chào Tue_NV,
Các hàm này nằm trong các lisp của Express, ví dụ acet-pline-make nằm trong extrim.lsp, mời bạn qua đây:
http://www.cadviet.c...&...ost&p=73330
Thiep sẽ giới thiệu hết 1 số hàm trong thư viện Express tools mà thiep sưu tầm được và sẽ chia sẻ với các bạn.
  • 0

#432 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 18 September 2009 - 02:02 PM

Chào Thaistreetz và Nataca,
Hàm SSGET với sel-method là "I" sẽ chọn các đối tượng do người dùng chọn trước khi phát lệnh. Đây là 1 mã ví dụ:

(defun c:ssI (/ ss p1 p2)
(setq ss (ssget "I"))
(if (null ss)
(alert
"\nban chua chon doi tuong truoc \nhoac da chon truoc \nnhung chua trung doi tuong nao"
)
(progn
(setq p1 (getvar "lastpoint"))
(setq p2 (ACET-SS-DRAG-MOVE ss p1 "di chuyên cac doi tuong vua chon dên diêm:" 0))
(command ".move" ss "" p1 p2)
)
)
(princ)
)

Hãy chú ý hàm ACET-SS-DRAG-MOVE, rất có ích cho các bạn đó.
Thaistreetz ứng dụng hàm này vào lisp GHI TOA DO CAC DIEM VA THONG KE THANH BANG xem!

ACET-SS-DRAG-MOVE Rất hay anh Thiệp ạ. Nó cho ta một cái nhìn rất trực quan về kết quả trước khi vẽ. Bản thân em cũng nhiều lần tự hỏi vì sao một số chương trình làm được điều này. Thanks anh nhiều :s_big:
  • 0

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#433 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 18 September 2009 - 03:50 PM

Các anh, các chị cho em hỏi:
Làm sao có thể tạo 1 tập chọn chứa các đối tượng của nhiều bản vẽ (file)?
Xử lý, cập nhật các đối tượng này có như bình thường không?
Tks!!!

Hôm nay! Cả nhà đi vắng à!
Ngày mai (20/09/2009) mấy anh chị di cafe xong về chỉ em nha!

23/09/2009: topic này bị bỏ hoang rồi sao?????????? :cheers:
  • 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)


#434 chandatn

chandatn

    biết pan

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

Đã gửi 25 September 2009 - 10:53 AM

Các anh, các chị cho em hỏi:
trong lisp co câu lệnh ssadd
Hàm (ssadd...)
Chức năng: Thêm một đối tượng vào tập đối tượng

(ssadd [ename] [ss])

Thế nhưng em vẫn ko hiểu nhờ các bác chỉ bảo hộ cái. Thanhkou nhiều
  • 0

#435 polarisvn

polarisvn

    biết zoom

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

Đã gửi 25 September 2009 - 12:33 PM

uh...cái này mình cũng ko hiểu..mong các bạn chỉ giúp..
  • 0
Đời là bể khổ, ai không bơi sẽ chìm...!

#436 gia_bach

gia_bach

    biết lệnh adcenter

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

Đã gửi 25 September 2009 - 01:01 PM

Các anh, các chị cho em hỏi:
trong lisp co câu lệnh ssadd
Hàm (ssadd...)
Chức năng: Thêm một đối tượng vào tập đối tượng

(ssadd [ename] [ss])

Thế nhưng em vẫn ko hiểu nhờ các bác chỉ bảo hộ cái. Thanhkou nhiều

Bạn tham khảo ví dụ duới đây.
(defun c:test ()
(setq ss (ssadd) lstName (list))
(while (setq sel (entsel "\nChon doi tuong them vao tap hop SS : "))
(setq obj (car sel))
(if (= (type obj) 'ENAME)
(progn
(ssadd obj ss)
(princ (strcat "\n\tDa them 1 "(cdr (assoc 0 (entget obj))) " vao tap hop SS"))
)
)
)
(princ (strcat "\nTap hop SS co " (itoa (sslength ss)) " doi tuong."))
(foreach obj (mapcar 'cadr (ssnamex ss))
(if (setq sl (assoc (setq name (cdr (assoc 0 (entget obj)))) lstName))
(setq lstName (subst (list name (1+ (nth 1 sl))) (assoc name lstName) lstName ) )
(setq lstName (cons (list name 1) lstName)) ) )
(if lstName
(progn
(princ "\n\tTrong do co : ")
(foreach name lstName
(princ (strcat "\n\t\t - "(itoa (cadr name)) " : " (car name)))
)
)
)
(princ)
)

  • 0

#437 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 25 September 2009 - 01:05 PM

uh...cái này mình cũng ko hiểu..mong các bạn chỉ giúp..

Chào bạn polarisvn,
Nó đây bạn, cái này mình trích trong Help của Cad, bạn xem thử nhé

ssadd Function

Adds an object (entity) to a selection set, or creates a new selection set

(ssadd [ename [ss]])

Arguments

ename

An entity name.

ss

A selection set.

If called with no arguments, ssadd constructs a new selection set with no members. If called with the single entity name argument ename, ssadd constructs a new selection set containing that single entity. If called with an entity name and the selection set ss, ssadd adds the named entity to the selection set.

Return Values

The new or modified selection set.

Examples

When adding an entity to a set, the new entity is added to the existing set, and the set passed as ss is returned as the result. Thus, if the set is assigned to other variables, they also reflect the addition. If the named entity is already in the set, the ssadd operation is ignored and no error is reported.

Set e1 to the name of the first entity in drawing:

Command: (setq e1 (entnext))



Set ss to a null selection set:

Command: (setq ss (ssadd))



The following command adds the e1 entity to the selection set referenced by ss:

Command: (ssadd e1 ss)



Get the entity following e1:

Command: (setq e2 (entnext e1))



Add e2 to the ss entity:

Command: (ssadd e2 ss)



Đại ý cái này nói là:
Hàm ssadd được dùng để thêm một đối tượng vào một tập chọn, hay là tạo ra một tập chọn mới.
Cú pháp của nó:
(ssadd ename [ss])
Trong đó
ename là tên của đối tượng được thêm vào ( cái tên này phải lấy theo tên mà cad đã định nghĩa cho đối tượng trong bản vẽ, nó có thể là kết quả từ các hàm lựa chọn đối tượng như entsel, entlast, .... hay hàm ssname, ....)
ss là tập chọn các đối tượng đã được xác định trước để gán thêm đối tượng mới vào.
Nếu hàm ssadd được gọi không có các đối số kèm theo tức là (ssadd) thì nó sẽ tạo ra một tập chọn mới mà chả có ma nào trong đó cả.
Giá trị trả về của hàm ssadd là một tập chọn mới hay một tập chọn đã được chỉnh sửa.

Bạn hãy xem thêm các vì dụ sẽ rõ về cách sử dụng hàm ssadd này bạn ạ.
Chúc bạn thành công.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#438 gia_bach

gia_bach

    biết lệnh adcenter

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

Đã gửi 25 September 2009 - 01:12 PM

Các anh, các chị cho em hỏi:
Làm sao có thể tạo 1 tập chọn chứa các đối tượng của nhiều bản vẽ (file)?
Xử lý, cập nhật các đối tượng này có như bình thường không?
.............

Chào master_worse
Một cách chung chung thì LISP không thể tạo 1 tập chọn chứa các đối tượng của nhiều bản vẽ.
Tuy nhiên với những t/hợp cụ thể, kết hợp với VBA hay Script (ScriptPro) thì có thể giải quyết đuợc.
VD :
- in tất cả các file đang open trong CAD hiện hành (và chưa open).
- duyệt qua tất cả các file thực hiện cùng 1 tổ hợp lệnh (zoom Extents, purge, save, close ...)
  • 1

#439 khaosat2009

khaosat2009

    biết lệnh offset

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

Đã gửi 26 September 2009 - 08:48 AM

Mình sưu tầm được Lisp lập bảng tọa độ góc ranh.
nay mình muốm thêm vào dòng chữ bên dưới chữ BẢNG TỌA ĐỘ GÓC RANH với dòng chữ : Hệ toạ độ VN-2000
Mong được chỉ chỉ giúp :

;;;HEADER
(setvar "CLAYER" "bangtd")
(linepx p0 (* 32 h))
(command "copy" "L" "" "m" p00 p01 p02 "")
(linepy p0 (- (distance p0 p02)))
(command "copy" "L" "" "m" p0
(list (+ (car p0) (* 4 h)) (cadr p0))
(list (+ (car p0) (* 14 h)) (cadr p0))
(list (+ (car p0) (* 24 h)) (cadr p0))
(list (+ (car p0) (* 32 h)) (cadr p0))
"")
(setq Lkqua nil)
(wtxtMC "BAÛNG TOÏA ÑOÄ GOÙC RANH"
(polar (polar p0 0 (* 16 h)) (* 0.5 pi) (* 2 h))
(* 1.2 h) nil)

(txt1 (setq Lkq (list "TT" "X (m)" "Y (m)" "S (m)")))
(setq Lkqua (append Lkqua (list Lkq)))
(setq p0 (polar p0 (* 1.5 pi) (* 3 h)))
-------------------------------------
Mình phải chỉnh vào đâu ?
mẫu link sau :
http://www.cadviet.c...e_td_vn2000.rar
Cám ơn
  • 0

#440 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 26 September 2009 - 09:30 AM

Mình sưu tầm được Lisp lập bảng tọa độ góc ranh.
nay mình muốm thêm vào dòng chữ bên dưới chữ BẢNG TỌA ĐỘ GÓC RANH với dòng chữ : Hệ toạ độ VN-2000
Mong được chỉ chỉ giúp :

;;;HEADER
(setvar "CLAYER" "bangtd")
(linepx p0 (* 32 h))
(command "copy" "L" "" "m" p00 p01 p02 "")
(linepy p0 (- (distance p0 p02)))
(command "copy" "L" "" "m" p0
(list (+ (car p0) (* 4 h)) (cadr p0))
(list (+ (car p0) (* 14 h)) (cadr p0))
(list (+ (car p0) (* 24 h)) (cadr p0))
(list (+ (car p0) (* 32 h)) (cadr p0))
"")
(setq Lkqua nil)
(wtxtMC "BAÛNG TOÏA ÑOÄ GOÙC RANH"
(polar (polar p0 0 (* 16 h)) (* 0.5 pi) (* 2 h))
(* 1.2 h) nil)

(txt1 (setq Lkq (list "TT" "X (m)" "Y (m)" "S (m)")))
(setq Lkqua (append Lkqua (list Lkq)))
(setq p0 (polar p0 (* 1.5 pi) (* 3 h)))
-------------------------------------
Mình phải chỉnh vào đâu ?
mẫu link sau :
http://www.cadviet.c...e_td_vn2000.rar
Cám ơn


Bạn thử sửa
(wtxtMC "BAÛNG TOÏA ÑOÄ GOÙC RANH"
thành
(wtxtMC "BAÛNG TOÏA ÑOÄ GOÙC RANH\nHệ toạ độ VN-2000"
Xem
  • 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