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 [phần 2]

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

Phamthanhbinh xem lại giúp : sau khi chọn các đối tượng theo yêu cầu của lisp, tất cả các block thông tin của mỗi điểm đều có giá trị y chang, ví dụ ban đầu chọn điểm 4 có cao độ là 3.83 thì kết quả tất cả các điểm đều có ATL là 3.83, NUM là 4. Đối với DES cũng vậy. Làm phiền các bạn nhiều quá

Chào bác tnmtpc,

Mình chưa hiểu cái lỗi của bác là do đâu nhưng đây là cái mình đã chạy trên file bác gửi, nó hoàn toàn không bị vấn đề như bác nói, bác kiểm tra lại nhé.

http://www.mediafire.com/file/mfk4g4812q4h794/nxyzc_5.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
Trong bản vẽ nxyzc_5 của bác Up lên đã có sẵn các Block tuy bác chưa chèn ra ngoài nhưng đã nằm trong data của file rồi.

Đoạn mã của tôi test thử trên file của bác chạy ngon lành.

Bác phải nhớ chọn đối tượng theo đúng thứ tự.

Đầu tiên phải chọn điểm chèn POINT (vàng) trước sau đó mới chọn đến các cái khác.

Nếu trong bản vẽ của bác chỉ có NUM không thì làm như sau:

- CHọn POINT (Vàng) sau đó click 3 lần vào NUM (Xanh)

Nếu trong bản vẽ chỉ có NUM và ALT thì làm như sau:

- CHọn POINT (Vàng) sau đó chọn ALT (Đỏ trên) rồi chọn NUM (xanh) lần cuối cùng chọn cái nào cũng được.

Nếu trong bản vẽ có NUM và DES thì làm như sau

- CHọn POINT (Vàng), chọn cái nào cũng được, chọn NUM (xanh), chọn DES (đỏ dưới)

Nếu có đủ cả 3 thì làm như sau

- CHọn POINT (Vàng), chọn ALT (đỏ trên), chọn NUM (xanh), chọn DES (đỏ dưới)

Mình đã down ngược file nxyzc_5 về máy, và chạy lisp bị lỗi như thế mà, chỉ còn lại các point thôi. hoa35ktxd xem lại giúp và xem như bản vẽ nguồn không có sẵn các block.

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
Chào bạn Ksor Phong,

Thật tình chưa hiểu bạn muốn gì???? Bạn cần hiểu kỹ hơn vể đối tượng Block. Nếu bạn không cho explore block thì làm sao để chỉnh sửa nó được nhỉ??? Vì sao bạn lại cần làm như vậy??? Nếu phá nó ra chỉnh sửa xong rồi block lại có được không (tất nhiên là lúc này bạn phải tạo thêm block mới trên bản vẽ của bạn nếu như bạn không muốn mất đi block nguyên thủy của nó) ???

Cái ý lấy màu Bylayer của bạn là theo layer nào??? Layer mà block được đưa vào hay layer của các đối tượng có trong block??? Bạn nên nhớ rằng một block có thể được đưa vào nhiều layer khác nhau nhưng màu của các đối tượng có trong block không hề thay đổi gì cho dù mỗi layer có một màu khác nhau. Vậy nên bạn cần xác định rõ mới có thể xử lý được bạn ạ......

Chúc bạn vui,...

Trong Express có lệnh XLIST có thể truy cập các thuộc tính của 1 đối tượng trong block nên việc này chắc là được. Nhưng block trong block thì lệnh XLIST chưa đáp ứng đ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
Chào bác tnmtpc,

Mình chưa hiểu cái lỗi của bác là do đâu nhưng đây là cái mình đã chạy trên file bác gửi, nó hoàn toàn không bị vấn đề như bác nói, bác kiểm tra lại nhé.

http://www.mediafire.com/file/mfk4g4812q4h794/nxyzc_5.dwg

Đây là kết quả mình đã thực hiện:

 

http://www.mediafire.com/?lbgasen56h9j16n

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 đã down ngược file nxyzc_5 về máy, và chạy lisp bị lỗi như thế mà, chỉ còn lại các point thôi. hoa35ktxd xem lại giúp và xem như bản vẽ nguồn không có sẵn các block.

Thế thì chịu rồi, chắc máy của bác có thiết lập gì đó đặc biệt ngoài tầm dự đoán của tôi.

Và tôi thấy rất vô lý vì trước đó bác đã chạy được rồi, bây giờ lại không được.

Có lẽ bác thao tác không đúng như tôi hướng dẫn. Nếu bác hiểu về LISP thì sẽ biết được nguyên lý làm việc của đoạn mã trên.

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
Thế thì chịu rồi, chắc máy của bác có thiết lập gì đó đặc biệt ngoài tầm dự đoán của tôi.

Và tôi thấy rất vô lý vì trước đó bác đã chạy được rồi, bây giờ lại không được.

Có lẽ bác thao tác không đúng như tôi hướng dẫn. Nếu bác hiểu về LISP thì sẽ biết được nguyên lý làm việc của đoạn mã trên.

Do Bản vẽ của bạn tnmtpc thiết lập biến Attreq = 0 -> nên Lisp thực hiện lệnh Insert bị lỗi. (không chèn được cái Block) mà lại xóa cái Text nên bản vẽ của bác tnmtpc bị "mất tiêu" như bác đã thấy

@ tnmtpc : Trước khi chạy Lisp, bác thiết lập biến Attreq = 1 là OK ngay

 

Command: attreq

Enter new value for ATTREQ : 1

 

@hoa35ktxd : Khi viết Lisp, bác nên lường trước các tình huống có thể xảy ra, nên thiết lập biến AttReq vào trong Líp cho chắc, bác ạ :D .

  • Vote tăng 3

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
Do Bản vẽ của bạn tnmtpc thiết lập biến Attreq = 0 -> nên Lisp thực hiện lệnh Insert bị lỗi. (không chèn được cái Block) mà lại xóa cái Text nên bản vẽ của bác tnmtpc bị "mất tiêu" như bác đã thấy

@ tnmtpc : Trước khi chạy Lisp, bác thiết lập biến Attreq = 1 là OK ngay

 

Command: attreq

Enter new value for ATTREQ <0>: 1

 

@hoa35ktxd : Khi viết Lisp, bác nên lường trước các tình huống có thể xảy ra, nên thiết lập biến AttReq vào trong Líp cho chắc, bác ạ :D .

Chính xác 1000% luôn, sau khi thiết lập biến ATTREQ <0>: 1 thì cả hai lisp của PhamThanhbinh và hoa35ktxd đều hoạt động như ý. Các bạn thông cảm cho mình nhé vì mình biết lisp sơ sơ thôi, nói đến biến thì cũng mù tịt.

Đưa giúp luôn cái vụ thiết lập biến vào lisp luôn thể để người khác khỏi gặp sự cố như mình

Cám ơn tất cả mọi người

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
Do Bản vẽ của bạn tnmtpc thiết lập biến Attreq = 0 -> nên Lisp thực hiện lệnh Insert bị lỗi. (không chèn được cái Block) mà lại xóa cái Text nên bản vẽ của bác tnmtpc bị "mất tiêu" như bác đã thấy

@ tnmtpc : Trước khi chạy Lisp, bác thiết lập biến Attreq = 1 là OK ngay

 

Command: attreq

Enter new value for ATTREQ : 1

 

@hoa35ktxd : Khi viết Lisp, bác nên lường trước các tình huống có thể xảy ra, nên thiết lập biến AttReq vào trong Líp cho chắc, bác ạ :D .

Cám ơn bác Tue_NV nhé vì mình cũng không để ý tới cái biến hệ thống này, khi bác nhắc, đọc lại Help mới thấy như sau:

 

ATTREQ System Variable

Concepts Procedures Reference

 

Type: Integer

Saved in: Registry

Initial value: 1

 

Determines whether the INSERT command uses default attribute settings during insertion of blocks.

 

0 Assumes the defaults for the values of all attributes

1 Turns on prompts or dialog box for attribute values, as specified by ATTDIA

 

Mình đã bổ sung việc thiết lập lại biến này trong đoạn lisp post ở trên. Âu cũng là một bài học cho những người viết lisp.

 

@tnmtpc: Bác đọc chỗ đánh dấu đỏ ở trên sẽ hiểu lý do vì sao mà khi bác chạy lisp nó bị như vậ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

@ tnmtpc: Thật lòng tôi thấy quá thất vọng với bác qua những bài viết vừa rồi. Mặc dù đã được bác TUE_NV nhắc nhở và tôi đã giải thích vậy mà vẫn còn thắc mắc. Thú thực khi nhìn thấy số lượng bài viết của bác tôi nghĩ bác đã kinh qua 1 chút kinh nghiệm nhất là khi bác nói: "Không ai quan tâm à" hay đại loại như thế thì tôi mới thấy chạnh lòng.

Qua việc này tôi thấy bác chưa biết trân trọng những gì người khác đã quan tâm giúp bác cho dù rất nhỏ mà bác chỉ muốn đòi hỏi chứ bác chưa chịu tư duy.

Thân.

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
@ tnmtpc: Thật lòng tôi thấy quá thất vọng với bác qua những bài viết vừa rồi. Mặc dù đã được bác TUE_NV nhắc nhở và tôi đã giải thích vậy mà vẫn còn thắc mắc. Thú thực khi nhìn thấy số lượng bài viết của bác tôi nghĩ bác đã kinh qua 1 chút kinh nghiệm nhất là khi bác nói: "Không ai quan tâm à" hay đại loại như thế thì tôi mới thấy chạnh lòng.

Qua việc này tôi thấy bác chưa biết trân trọng những gì người khác đã quan tâm giúp bác cho dù rất nhỏ mà bác chỉ muốn đòi hỏi chứ bác chưa chịu tư duy.

Thân.

Đừng giận Bác ạ!. Nếu mình "kinh qua" thì mình có làm phiền các Bác làm gì. Thật lòng khi các Bác giúp mình phấn khởi lắm nhưng khi down lisp về chạy không đúng ý, mình không biết làm sao, đành phải làm phiền các bạn nhiều lần. Thành thật xin lỗi bạn vì đã làm phiền và chân thành cám ơn bạn nhiều vì sự giú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

Lâu rồi kg có dịp làm phiền các bác, em có việc này nhờ các bác giúp.

Em có 1 file số liệu gồm tọa độ X, Y, và tên điểm, giá trị cao độ, các bác giúp em viết lisp làm sao để khi bắn điểm lên mình có thể cho hiện cột tên điểm đó hoặc hiển thị giá trị cao độ theo ý mình.

Em cám ơn ạ.

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âu rồi kg có dịp làm phiền các bác, em có việc này nhờ các bác giúp.

Em có 1 file số liệu gồm tọa độ X, Y, và tên điểm, giá trị cao độ, các bác giúp em viết lisp làm sao để khi bắn điểm lên mình có thể cho hiện cột tên điểm đó hoặc hiển thị giá trị cao độ theo ý mình.

Em cám ơn ạ.

Những yêu cầu như này cứ là kèm theo file số liệu và file dwg minh họa + giải thích ý muốn của bạn thì dể cho mọi người hơn bạn ạ!

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
Trong Express có lệnh XLIST có thể truy cập các thuộc tính của 1 đối tượng trong block nên việc này chắc là được. Nhưng block trong block thì lệnh XLIST chưa đáp ứng đc.

Chào bác Duy782006,

Bác cho mình hỏi thêm về cách sử dụng lệnh Xlist này với. Khi mình sử dụng thì thấy có một số vấn đề như sau:

1/- Lệnh này chỉ xài được với các block tổ hợp từ nhiều đối tượng và phải chọn một trong các đối tượng này , Khi đó nó trả về một bảng liệt kê các thông số của đối tượng như loại đối tượng, lớp của đối tượng, màu của đối tượng, ltype của đối tượng....

2/- Từ bảng này làm sao để lấy được các thông số này đưa vào sử dụng trong lisp???

3/- Trong trường hợp block được tạo từ các block thì việc truy xuất mới thực hiện được, còn nếu block được tạo từ các đối tượng khác sẽ không truy xuất được bác ạ.

Bác chỉ dẫn thêm cho mình nhé. Cám ơn bác trướ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
Chào bác Duy782006,

Bác cho mình hỏi thêm về cách sử dụng lệnh Xlist này với. Khi mình sử dụng thì thấy có một số vấn đề như sau:

1/- Lệnh này chỉ xài được với các block tổ hợp từ nhiều đối tượng và phải chọn một trong các đối tượng này , Khi đó nó trả về một bảng liệt kê các thông số của đối tượng như loại đối tượng, lớp của đối tượng, màu của đối tượng, ltype của đối tượng....

2/- Từ bảng này làm sao để lấy được các thông số này đưa vào sử dụng trong lisp???

3/- Trong trường hợp block được tạo từ các block thì việc truy xuất mới thực hiện được, còn nếu block được tạo từ các đối tượng khác sẽ không truy xuất được bác ạ.

Bác chỉ dẫn thêm cho mình nhé. Cám ơn bác trước.

Èo cái nhà bác Bình này. Em đã nói là thấy có Lệnh Xlist ko cần phá block mà vẩn lấy đc thuộc tính đối tượng bên trong nên đoán yêu cầu của bạn í chắc làm đc bằng lisp chứ em có viết đc đâu mừ. :D

  • 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
Những yêu cầu như này cứ là kèm theo file số liệu và file dwg minh họa + giải thích ý muốn của bạn thì dể cho mọi người hơn bạn ạ!

Hơ hơ, xin lỗi, em upload file từ nãy đến giờ mà nó kg cho, nó báo lỗi 102. Em thua.

Đại loại thế này:

Trong Excel có 3 cột: X, Y, giá trị.

em có thể bắn điểm lên với tọa độ X, Y đó, nhưng em kg biết cách dán cái nhãn giá trị kia vào kiểu gì, hic hic.........toàn phải nhập bằng tay.............kinh khủng.

Các bác giúp em với. Em cám ơn ạ.

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
Hơ hơ, xin lỗi, em upload file từ nãy đến giờ mà nó kg cho, nó báo lỗi 102. Em thua.

Đại loại thế này:

Trong Excel có 3 cột: X, Y, giá trị.

em có thể bắn điểm lên với tọa độ X, Y đó, nhưng em kg biết cách dán cái nhãn giá trị kia vào kiểu gì, hic hic.........toàn phải nhập bằng tay.............kinh khủng.

Các bác giúp em với. Em cám ơn ạ.

Hề hề hề,...

Quả là kinh khủng thật. Nhất là chưa biết cái cấu tạo của file Excel của bạn nữa, ba cột nhưng nó nằm ở vị trí nào chớ, cột A,B,C hay cột X,Y,Z. Lại còn số liệu bắt đầu từ dòng nào nữa chứ ??? dòng 2 hay dòng 200??? Hề hề hề.

Thôi thì bạn chịu khó một chút, (cho dù có hơi khó chịu) tìm cách post cả file excel và file bản vẽ kết quả lên nhé. Post lên diễn đàn không được thì post lên các trang khác rồi gửi link vậy. Hề hề hề, chịu khó nha.

Chúc bạn cười to, hề hề hề,....

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
Hơ hơ, xin lỗi, em upload file từ nãy đến giờ mà nó kg cho, nó báo lỗi 102. Em thua.

Đại loại thế này:

Trong Excel có 3 cột: X, Y, giá trị.

em có thể bắn điểm lên với tọa độ X, Y đó, nhưng em kg biết cách dán cái nhãn giá trị kia vào kiểu gì, hic hic.........toàn phải nhập bằng tay.............kinh khủng.

Các bác giúp em với. Em cám ơn ạ.

Khuyên bạn nên dùng chương trình rapiddxf, đã giới thiệu trên diễn đàn, chương trình này rất nhẹ, chạy độc lập, chấp nhận tất cả các kiểu file kể cả excel và chấp nhận file có số cột dữ liệu tùy ý do người dùng chọn, cho phép hiển thị nhãn theo yêu cầu người dùng. Tìm trên diễn đàn với từ khóa rapiddxf 4.0

  • 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
Hề hề hề,...

Quả là kinh khủng thật. Nhất là chưa biết cái cấu tạo của file Excel của bạn nữa, ba cột nhưng nó nằm ở vị trí nào chớ, cột A,B,C hay cột X,Y,Z. Lại còn số liệu bắt đầu từ dòng nào nữa chứ ??? dòng 2 hay dòng 200??? Hề hề hề.

Thôi thì bạn chịu khó một chút, (cho dù có hơi khó chịu) tìm cách post cả file excel và file bản vẽ kết quả lên nhé. Post lên diễn đàn không được thì post lên các trang khác rồi gửi link vậy. Hề hề hề, chịu khó nha.

Chúc bạn cười to, hề hề hề,....

Èo, em chịu thôi, kiến thức In tờ net của em chỉ đến độ a bờ cờ, bác bảo em post lên trang khác thì em chịu, bác cho em xin cái mail em gửi rồi bác up hộ em vậy. Thôi, có giúp thì giúp cho chót, rồi bữa nào bác rảnh em mời bác 1 chầu được kg? :D

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
Èo, em chịu thôi, kiến thức In tờ net của em chỉ đến độ a bờ cờ, bác bảo em post lên trang khác thì em chịu, bác cho em xin cái mail em gửi rồi bác up hộ em vậy. Thôi, có giúp thì giúp cho chót, rồi bữa nào bác rảnh em mời bác 1 chầu được kg? :D

Em tìm được cách làm kg cần thông qua lisp của bác tuenv rồi. Em cảm ơn ạ

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
Chào bạn Ksor Phong,

Thật tình chưa hiểu bạn muốn gì???? Bạn cần hiểu kỹ hơn vể đối tượng Block. Nếu bạn không cho explore block thì làm sao để chỉnh sửa nó được nhỉ??? Vì sao bạn lại cần làm như vậy??? Nếu phá nó ra chỉnh sửa xong rồi block lại có được không (tất nhiên là lúc này bạn phải tạo thêm block mới trên bản vẽ của bạn nếu như bạn không muốn mất đi block nguyên thủy của nó) ???

Cái ý lấy màu Bylayer của bạn là theo layer nào??? Layer mà block được đưa vào hay layer của các đối tượng có trong block??? Bạn nên nhớ rằng một block có thể được đưa vào nhiều layer khác nhau nhưng màu của các đối tượng có trong block không hề thay đổi gì cho dù mỗi layer có một màu khác nhau. Vậy nên bạn cần xác định rõ mới có thể xử lý được bạn ạ......

Chúc bạn vui,...

 

Trước hết xin cám ơn các bác đã quan tâm giúp đỡ.

Sở dĩ em cần làm vậy vì trong các bản vẽ hiện trạng dung lượng rất lớn (có khi đến cả 500MB CAD) edit từng block là điều rất khó vì nó có vài trăm block; vài chục layer, mỗi thằng định dạng một kiểu, nên em muốn tất cả các đối tượng về một layer, màu: bylayer của đối tượng gốc chứ không phải của layer chứa block, được vậy thì cám ơn các bác lắm.

Gửi các bác một file mẫ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
Trước hết xin cám ơn các bác đã quan tâm giúp đỡ.

Sở dĩ em cần làm vậy vì trong các bản vẽ hiện trạng dung lượng rất lớn (có khi đến cả 500MB CAD) edit từng block là điều rất khó vì nó có vài trăm block; vài chục layer, mỗi thằng định dạng một kiểu, nên em muốn tất cả các đối tượng về một layer, màu: bylayer của đối tượng gốc chứ không phải của layer chứa block, được vậy thì cám ơn các bác lắm.

Gửi các bác một file mẫu:

Chào bạn ksor phong,

1/- Việc chuyển các đối tượng về cùng một layer nào đó không khó, tuy nhiên với các đối tượng đang có màu là bylayer thì việc chuyển này sẽ làm cho màu của chúng chuyển thành màu của layer này. Bạn có chấp nhận như vậy không???

2/- Việc bạn muốn đổi màu của các đối tượng nằm trong block thì với các đối tượng thuộc tính có thể đổi được nhưng với các đối tượng không phải thuộc tính thì mình chưa có giải pháp nào hữu hiệu cả. Tuy nhiên do các thuộc tính thường có màu là bylayer rồi nên việc bạn yêu cầu là hơi khó hiểu.

3/- Nếu như bạn muốn thay đổi cả lớp của các thuộc tính này về cùng một lớp nào đó thì khi thay đổi lớp màu cũng sẽ thay đổi theo do các thuộc tính thường có màu là bylayer.

4/- Nếu như bạn muốn thay đổi lớp của thuộc tính nhưng không thay đổi màu thì cũng có thể giải quyết được bằng cách bổ sung mã màu cho thuộc tính.

 

Vậy nên tốt nhất bạn hãy cung cấp một bản vẽ thể hiện rõ tình trạng trước khi bạn sử dụng lisp và cái kết quả bạn muốn có bạn nhé.

Chúc bạn vui,....

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 cần 1 lisp xuất các text theo thứ tự được chọn ra file txt có sự lựa chọn theo hàng hoặc cột. Các bạn giúp mình với.

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 cần 1 lisp xuất các text theo thứ tự được chọn ra file txt có sự lựa chọn theo hàng hoặc cột. Các bạn giúp mình với.

Chào bạn ToTo08,

Hề hề hề,

Chả biết bạn cần xuất ra file text dạng nào nên tớ cứ gửi tạm bạn cái lisp này, nó xuất các text bạn lựa chọn ra thành một cột trong file dữ liệu dạng excel.

Nếu bạn muốn chuyển thành dạng hàng cũng không khó lắm, chỉ phải sửa lại một tí ở trong code.

Hy vọng bạn có cái xài tạm. Nếu cần gì thêm thì pót lên nhé.

(defun WriteToExcel (lst_data / col row x xlApp xlCells)
(setq xlApp (vlax-get-or-create-object "Excel.Application")
xlCells (vlax-get-property
(vlax-get-property
(vlax-get-property
(vlax-invoke-method
(vlax-get-property xlApp "Workbooks")
"Add")
"Sheets")
"Item" 1)
"Cells"))
(setq row 1)
(foreach pt lst_data
(setq col 1)
(foreach coor pt
(vlax-put-property xlCells 'Item row col coor)
(setq col (1+ col)))
(setq row (1+ row)) )
(vla-put-visible xlApp :vlax-true)
(mapcar
(function (lambda (x)
(vl-catch-all-apply
(function (lambda ()(if x (vlax-release-object x)))))))
(list xlCells xlApp))
(gc) (gc) ) 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun c:t2e (/ ss n i en els txt ltxt)
(setq ss (ssget '((0 . "text")))
       n (sslength ss)
       i 0
       ltxt (list))
(while ((setq en (ssname ss i)
       els (entget en)
       txt (cdr (assoc 1 els))
       ltxt (append ltxt (list (list txt)))
       i (1+ i))
)
(writetoexcel ltxt)
(princ)
)

 

Lisp này mình dựa trên lisp pt2exl.lsp sưu tầm trên diễn đàn, chỉ sửa lại phần tạo danh sách text thay vì danh sách các point mà thôi.

Chúc bạn vui.

  • 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

Lisp chạy rất ổn xuất thẳng text ra file excel ở dạng cột. Nếu lisp hoàn thiện thêm phần xuất text ra hàng thì thật tốt. Cám ơn bạn phamthanhbinh nha.

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
Lisp chạy rất ổn xuất thẳng text ra file excel ở dạng cột. Nếu lisp hoàn thiện thêm phần xuất text ra hàng thì thật tốt. Cám ơn bạn phamthanhbinh nha.

Bạn tìm dòng :

(vlax-put-property xlCells 'Item row col coor)

 

Thay thành dòng :

(vlax-put-property xlCells 'Item col row coor)

-> xuất text ra hàng

  • 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
Khách
Chủ đề này bây giờ đã bị đóng lại để trả lời thêm.

×