Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
hoanghaivn36

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

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

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

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

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

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.

  • 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

Như này chắc chuẩn ý hơn ?

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

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ư này chắc chuẩn ý hơn ?

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 .

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

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:

  • 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

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:

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.photobucket.com/albums/gg505/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 !

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

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

Đăng nhập để thực hiện theo  

×