Đến nội dung


Hình ảnh
- - - - -

Nhờ sữa lisp tính tổng text


  • Please log in to reply
28 replies to this topic

#21 Tr.CongSon

Tr.CongSon

    biết lệnh array

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

Đã gửi 22 May 2015 - 01:20 PM

Ah! mình hiểu rồi! chắc là do dấu "x" nên nó không hiểu được là dấu nhân. vì bên cty mình khi vẽ trong cad dùng dấu "x", nếu bạn sửa được thi sửa dùm mình cái còn không được thì thôi, dù sao củng cảm ơn bạn rất rất nhiều vì đã nhiệt tình giúp mình như vậy.cảm ơn nhé!

Bạn mở Code lên và Copy dấu "x" trong Text @230x5 (trên bản vẽ) rồi paste vào dấu "x" trong code tại dòng này là được:

(vl-string-translate "×"  "*"
            (vl-string-translate "@" "0" txt)))

Load file--> dùng lại bình thường^^


  • 0

#22 shikou

shikou

    biết zoom

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

Đã gửi 23 May 2015 - 10:28 PM

Bạn mở Code lên và Copy dấu "x" trong Text @230x5 (trên bản vẽ) rồi paste vào dấu "x" trong code tại dòng này là được:

(vl-string-translate "×"  "*"
            (vl-string-translate "@" "0" txt)))

Load file--> dùng lại bình thường^^

Mình cũng đã thử làm rồi nhưng vẫn không được! :(


  • 0

#23 Tr.CongSon

Tr.CongSon

    biết lệnh array

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

Đã gửi 24 May 2015 - 06:14 AM

Bạn copy cả đoạn nay về và lưu lại với đuôi .slp rồi thử lại xem sao

mình test trên máy mình oki mà

 

(defun c:tinh (/ ent i ss sum sum1 txt)
 
(command "undo" "be")
 
(setvar "cmdecho" 0)
 
(or cal (arxload "geomcal"))
 
(prompt "\n Chon cac Text de cong:")
 
(setq ss (ssget '((0 . "TEXT"))))
 
(setq i 0
 
sum 0.0
 
sum1 nil
 
)
 
(while (< i (sslength ss))
 
(setq ent (entget (ssname ss i))
 
txt (cdr (assoc 1 ent))
 
sum1 (cal (vl-string-translate
"×"
"*"
 
(vl-string-translate "@" "0" txt)
)
)
)
 
(setq sum (+ sum sum1))
 
(setq i (1+ i))
 
)
;;;
;;; (alert (strcat "T\U+1ED5ng = " (rtos sum 2 1)))
 
(command "text"
 
(getpoint "\nChon Diem dat Text:")
 
50
 
0
 
(rtos sum 2 1)
 
)
 
;;;Muon chieu cao chu bao nhieu thi thay doi 120 thanh so khac
 
 
(setvar "cmdecho" 1)
 
 
(command "undo" "end")
 
 
(princ)
 
 
)

  • 0

#24 shikou

shikou

    biết zoom

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

Đã gửi 25 May 2015 - 07:54 AM

 

Bạn copy cả đoạn nay về và lưu lại với đuôi .slp rồi thử lại xem sao

mình test trên máy mình oki mà

 

(defun c:tinh (/ ent i ss sum sum1 txt)
 
(command "undo" "be")
 
(setvar "cmdecho" 0)
 
(or cal (arxload "geomcal"))
 
(prompt "\n Chon cac Text de cong:")
 
(setq ss (ssget '((0 . "TEXT"))))
 
(setq i 0
 
sum 0.0
 
sum1 nil
 
)
 
(while (< i (sslength ss))
 
(setq ent (entget (ssname ss i))
 
txt (cdr (assoc 1 ent))
 
sum1 (cal (vl-string-translate
"×"
"*"
 
(vl-string-translate "@" "0" txt)
)
)
)
 
(setq sum (+ sum sum1))
 
(setq i (1+ i))
 
)
;;;
;;; (alert (strcat "T\U+1ED5ng = " (rtos sum 2 1)))
 
(command "text"
 
(getpoint "\nChon Diem dat Text:")
 
50
 
0
 
(rtos sum 2 1)
 
)
 
;;;Muon chieu cao chu bao nhieu thi thay doi 120 thanh so khac
 
 
(setvar "cmdecho" 1)
 
 
(command "undo" "end")
 
 
(princ)
 
 
)

 

vẫn không được bạn ơi! hay là do lỗi không đúng font chữ, vì cái dấu "x" bên mình là ghi theo font tiếng nhật! mình gủi  file cad bạn test dùm xem sao!http://www.cadviet.c...142524_vd_1.dwg


  • 0

#25 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 25 May 2015 - 08:03 AM

Bạn sửa chữ x lại nhé


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#26 shikou

shikou

    biết zoom

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

Đã gửi 25 May 2015 - 08:39 AM

Bạn sửa chữ x lại nhé

Để mình thử lại xem sao. cảm ơn bạn!


  • 0

#27 Tr.CongSon

Tr.CongSon

    biết lệnh array

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

Đã gửi 26 May 2015 - 02:43 PM

vẫn không được bạn ơi! hay là do lỗi không đúng font chữ, vì cái dấu "x" bên mình là ghi theo font tiếng nhật! mình gủi  file cad bạn test dùm xem sao!http://www.cadviet.c...142524_vd_1.dwg

Mình đã check thấy oki hết,không có bất cứ lỗi gì

Bạn bị lỗi nếu: Quét không đúng đối tượng,có 1 loại text khác,Lisp tính ko được

Do đó để hạn chế lỗi bạn nên chon từng đối tượng  hoặc quét cho cẩn than

Nếu tất cả bản vẽ của bạn đều format going như bản vẽ bạn gởi thì thay dòng

 (setq ss (ssget '((0 . "TEXT")))) 

 bằng dòng này

(setq ss (ssget '((0 . "TEXT") (8 . "0,1") (62 . 7))))

 

Chúc thành công!


  • 0

#28 shikou

shikou

    biết zoom

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

Đã gửi 27 May 2015 - 03:02 PM

Mình đã check thấy oki hết,không có bất cứ lỗi gì

Bạn bị lỗi nếu: Quét không đúng đối tượng,có 1 loại text khác,Lisp tính ko được

Do đó để hạn chế lỗi bạn nên chon từng đối tượng  hoặc quét cho cẩn than

Nếu tất cả bản vẽ của bạn đều format going như bản vẽ bạn gởi thì thay dòng

 (setq ss (ssget '((0 . "TEXT")))) 

 bằng dòng này

(setq ss (ssget '((0 . "TEXT") (8 . "0,1") (62 . 7))))

 

Chúc thành công!

không hiểu tại sao mình làm vẫn bị báo lỗi :(

Error:
Wrong syntax of expression
; error: bad argument type: numberp: nil

  • 0

#29 vsy

vsy

    Chưa sử dụng CAD

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

Đã gửi 09 July 2016 - 11:03 PM

E mới tham gia diễn đàn và cũng chưa rành về cad lắm. Nhờ mấy Anh Chị giúp đỡ E viết một lisp để gỡ những khó khăn mà hằng ngày e phải làm một cách thủ công rất mệt nhọc và dễ sai sót. Nội dung như sau:

-Trong bản vẽ có nhiều text, Mtext, như: 1P56(5m), 1P56(3m), 2P110+2P56(3m), 2P110+2P56(2m)… sau khi dùng Polyline bao quang các text trên nó tính ra bảng thống kê khối lượng có 4 cột như sau:

1) Stt.(1,2,3...)

2) Tên text: (1P56; 2P110+2P56...)

3) Đơn vị: (m)

4) Khối lượng: (Ví dụ khối lượng tương ứng là: 1P56:8m; 2P110+2P56: 5m)

 

-Tương tự như trên nhưng không phải là text, mtext mà là text thuộc tính.

Do tính chất công việc cũng gấp, mong các Anh Chị giúp đỡ nhiệt tình.

Lần đầu tiên mới vào diễn đàn có gì sai sót mong các Anh Chị thông cảm!

Xin chân thành cảm ơn!

http://www.cadviet.c...new_block_1.dwg


  • 0