Đến nội dung


Hình ảnh
- - - - -

[Yêu câu] Lisp chèn giá trị vào S : m2


  • Please log in to reply
17 replies to this topic

#1 hoanghaivn36

hoanghaivn36

    biết pan

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

Đã gửi 08 June 2012 - 06:56 PM

Em nhờ các bác làm cho em 1 lisp như sau :
Chả là em đang làm hoàn công, em phải mở file excell lên để xem giá trị S =... (m2) là bao nhiêu, sau đó điền vào dòng S :.... m2 trong CAD
- Trong file CAD của em có các dòng sau :
S đắp cát K95 : .... m2
S đắp K98 : .... m2
S đào khuôn : .... m2
S.......v...v... : ...... m2 ( diện tích thứ n )
? ./ Bây giờ em mốn nhờ các bác như sau :
1-Xuất file *.text vào CAD ( file này là giá trị S (m2) ; file *.txt này em copy giá trị từ Excell vào)
2- Sau khi xuất xong file *.text vào CAD, lisp sẽ hỏi :
+ Điểm đặt thứ 1, 2,....,n ( bao nhiêu hàng thì bấy nhiêu lần hỏi)
+ Kết quả sẽ được như sau :
S đắp cát K95 : 0.65 m2
S đắp K98 : 2.06 m2
S đào khuôn : 2.86 m2
S.......v...v... : ...... m2
( các giá trị : 0.65, 2.06, 2.86,.... là hàng thứ nhất cua file *.text)
File ví dụ của em
http://www.cadviet.c...3/109847_vd.txt
http://www.cadviet.c...7_vi_du_sm2.dwg
Thanks nhiều !

0.65 2.06 2.86
0.45 2.03 2.87
0.63 1.90 2.84
0.66 1.90 2.84
0.08 1.93 2.83
0.07 1.93 2.83
0.35 1.96 2.82
0.37 2.11 2.76
0.24 1.93 2.83
0.11 2.05 2.78
0.16 1.98 2.81
0.14 1.90 2.84
0.24 1.56 2.64
0.20 1.61 2.52
0.15 1.47 2.58
0.37 1.44 2.59
0.65 1.47 2.58

  • 0

#2 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

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

Đã gửi 09 June 2012 - 10:52 AM

Phải chăng có thể là như thế này ?

  • 0

#3 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 09 June 2012 - 11:10 AM

Bạn muốn chèn cái số vào hàng chữ có sẵn sao ? Trong bản vẽ số liệu diện tích đi kèm với "m", sao lại nói "m" là có trước. Sao bản vẽ bạn không phân ra làm cái trước và sau khi dùng lisp?
Sao không chọn chữ có sẵn để nối vào mà lại phải pick điểm? Pick điểm sao chính xác được?
Sao......
  • 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


#4 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

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

Đã gửi 09 June 2012 - 11:26 AM

Như này chắc chuẩn ý hơn ?
http://www.youtube.c...eature=youtu.be
Cho mình hỏi? Cho video hiển thị luôn làm như nào nhỉ? Mình ko chèn được Youtobe trực tiếp trong bài.
Thân !
  • 0

#5 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 09 June 2012 - 11:44 AM

Em nhờ các bác làm cho em 1 lisp như sau :
Chả là em đang làm hoàn công, em phải mở file excell lên để xem giá trị S =... (m2) là bao nhiêu, sau đó điền vào dòng S :.... m2 trong CAD
- Trong file CAD của em có các dòng sau :
S đắp cát K95 : .... m2
S đắp K98 : .... m2
S đào khuôn : .... m2
S.......v...v... : ...... m2 ( diện tích thứ n )
? ./ Bây giờ em mốn nhờ các bác như sau :
1-Xuất file *.text vào CAD ( file này là giá trị S (m2) ; file *.txt này em copy giá trị từ Excell vào)
2- Sau khi xuất xong file *.text vào CAD, lisp sẽ hỏi :
+ Điểm đặt thứ 1, 2,....,n ( bao nhiêu hàng thì bấy nhiêu lần hỏi)
+ Kết quả sẽ được như sau :
S đắp cát K95 : 0.65 m2
S đắp K98 : 2.06 m2
S đào khuôn : 2.86 m2
S.......v...v... : ...... m2
( các giá trị : 0.65, 2.06, 2.86,.... là hàng thứ nhất cua file *.text)
File ví dụ của em
http://www.cadviet.c...3/109847_vd.txt
http://www.cadviet.c...7_vi_du_sm2.dwg
Thanks nhiều !

Hề hề hề,
Đúng như bác Ketxu đã góp ý. Việc pick điểm sẽ khó chính xác và tốt hơn là nên dùng phương án thay thế text có sẵn. Tuy nhiên vì là yêu cầu của bạn mà mình cũng không hiểu rõ lắm về chuyên môn của bạn nên mình cứ theo ý bạn mà mần ra cái ni. Lisp này sử dụng các thuộc tính của text y chang cái bản vẽ mà bạn post. Do vậy nếu với các bản vẽ mà text có các thuộc tính như layer, chiều cao chữ, font chữ, độ rộng ký tự ... của text khác với bản vẽ này sẽ có thể có trục trặc. bạn lưu ý điều này để có thể chỉnh lisp theo yêu cầu của bạn.
Hãy dùng thử và cho biết ý kiến nếu cần chỉnh sửa thêm cái chi.


(defun Separate (S sym / i L ch)
(setq i 0 L nil)
(while (< i (strlen S))
(setq i (1+ i) ch (substr S i 1))
(if (= ch sym) (progn
(setq
L (append L (list (substr S 1 (- i 1))))
S (substr S (1+ i) (- (strlen S) i))
i 0
)
))
)
(append L (list S))
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun c:nht (/ oldos fn f txl p0 ans)
(setq oldos (getvar "osmode" ))
(setvar "osmode" 0)
(command "undo" "be")

(setq fn (getfiled "Select Data File" "" "txt" 0)
f (open fn "r")
ans "Y"
)
(while (and (/= (setq str (read-line f)) nil) (= (strcase ans) "Y"))
(setq txl (separate str "\t") )
(foreach st txl
(setq p0 (getpoint (strcat " Dien tich hien tai la " st " m2. Hay chon diem dat ")))
(entmake (list '(0 . "TEXT") (cons 8 "dt_dao_dap") (cons 62 3) (cons 10 p0) (cons 40 0.36) (cons 1 (strcat st " m"))
(cons 50 0.0) (cons 7 "VN-tecco2") (cons 41 0.75) (cons 11 p0) (cons 71 0 ) (cons 72 0) (cons 73 0)))
;;;;;;;;;;;(entmake (list '(0 . "TEXT") (cons 8 "stt") (cons 10 p0) (cons 40 2) (cons 1 (strcat " " stt " ")) (cons 50 0.785398)
;;;;;;;;;; (cons 7 "standard") (cons 11 p0) (cons 71 0 ) (cons 72 4) (cons 73 0)))
)
(setq ans (getstring "\n Ban muon tiep tuc <y or n>: "))
)
(close f)
(command "undo" "e")
(setvar "osmode" oldos)
(princ)
)
Chúc bạn vui.
  • 2
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#6 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 09 June 2012 - 11:51 AM

Như này chắc chuẩn ý hơn ?
http://www.youtube.c...eature=youtu.be
Cho mình hỏi? Cho video hiển thị luôn làm như nào nhỉ? Mình ko chèn được Youtobe trực tiếp trong bài.
Thân !

Bạn dùng bbcode Media xem được không
  • 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


#7 vantuan18nd

vantuan18nd

    biết vẽ rectang

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

Đã gửi 09 June 2012 - 02:49 PM

Em cần cái như video 2 . a gửi cho em lisp đi .
thanks nhiều
  • 0

#8 hoanghaivn36

hoanghaivn36

    biết pan

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

Đã gửi 09 June 2012 - 03:18 PM

Như này chắc chuẩn ý hơn ?
http://www.youtube.c...eature=youtu.be
Cho mình hỏi? Cho video hiển thị luôn làm như nào nhỉ? Mình ko chèn được Youtobe trực tiếp trong bài.
Thân !

Cảm ơn nhiều nhé :D
Xem cái video 2 của bác em nóng lòng quá. Đúng như những gì em cần.
Trong video em mới thấy Bác làm VD là 1 hàng S m2 , chắc là nhiều hàng cũng được phải không ạ.
Bác gửi cho em xin với .
  • 0

#9 hoanghaivn36

hoanghaivn36

    biết pan

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

Đã gửi 09 June 2012 - 03:54 PM

Bác xem video thứ 2 của đồng chí NguyenNgocSon hộ em với .
Cái em cần là như thế. Lisp của bác ứng với mỗi diện tích thì mình phải pick từng ấy lần, vả lại kết quả chỉ hiển thị (giá trị) m2 - vd : 0.5 m2
  • 0

#10 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 09 June 2012 - 05:52 PM

@Hoanghaivn36 + vantuannd : cảnh cáo lần 2
  • 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


#11 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

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

Đã gửi 10 June 2012 - 09:59 AM

Sorry. Mình bận không có thời gian Upfile
Giờ up cho các bạn đây!
Bạn có thể điền cho n trắc ngang :)
HD: Load 2 file DTN-VBA.vlx và DTN-VBA.dvb
Sau đó đánh lệnh: DTN
File: Data.xls - Là file dữ liệu đầu vào
Chúc bạn làm tốt!
http://www.cadviet.c...67_dtnvba_1.rar
Linhk video:

  • 1

#12 hoanghaivn36

hoanghaivn36

    biết pan

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

Đã gửi 15 June 2012 - 10:27 PM

Sorry. Mình bận không có thời gian Upfile
Giờ up cho các bạn đây!
Bạn có thể điền cho n trắc ngang :)
HD: Load 2 file DTN-VBA.vlx và DTN-VBA.dvb
Sau đó đánh lệnh: DTN
File: Data.xls - Là file dữ liệu đầu vào
Chúc bạn làm tốt!
http://www.cadviet.c...67_dtnvba_1.rar
Linhk video:
http://www.youtube.c...eature=youtu.be

Xin lỗi Bác vì hôm nay mới có mạng để vào xem bài.
Em đã tải về dùng, load 2 file thành công, nhưng sau khi gõ lệnh DTN nó báo lỗi như hình sau : http://s1241.photobu...5/hoanghaivn36/
Không biết có phải bản CAD của em bị lỗi không. Nhờ bác NguyenNgocSon xem giúp và Bác nào dùng được cho ý kiến em với nhé
Thanks !
  • 0

#13 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

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

Đã gửi 15 June 2012 - 11:14 PM

Bạn dùng Excel 2003 hay Excel 2007 ?
Có lẽ lỗi do không tương thích phiên bản Excel
  • 0

#14 hoanghaivn36

hoanghaivn36

    biết pan

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

Đã gửi 15 June 2012 - 11:19 PM

Bạn dùng Excel 2003 hay Excel 2007 ?
Có lẽ lỗi do không tương thích phiên bản Excel

Em dùng Excell 2003 và CAD 2007 .không hiểu tại sao nữa
  • 0

#15 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

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

Đã gửi 15 June 2012 - 11:21 PM

Sorry bạn. Cái này do đối tượng khai báo Object. nên bạn phải cài Excel 2007 mới dùng được.
  • 0

#16 hoanghaivn36

hoanghaivn36

    biết pan

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

Đã gửi 15 June 2012 - 11:24 PM

Sorry bạn. Cái này do đối tượng khai báo Object. nên bạn phải cài Excel 2007 mới dùng được.

Hic. thế có cách nào khác không ạ. em dùng excell 2003 quen rồi.
  • 0

#17 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

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

Đã gửi 15 June 2012 - 11:26 PM

Thế bạn đợi mình nhé. Giờ mình bận đi công tác không sửa giúp bạn được. Khi nào sửa xong mình up lên ngay.
  • 1

#18 hoanghaivn36

hoanghaivn36

    biết pan

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

Đã gửi 15 June 2012 - 11:28 PM

Thế bạn đợi mình nhé. Giờ mình bận đi công tác không sửa giúp bạn được. Khi nào sửa xong mình up lên ngay.

Ok. Em cảm ơn nhé.
  • 0