Đến nội dung


Hình ảnh
5 stars - based on 24598 reviews
- - - - -

Chỉnh Sửa Lisp Để Lisp Lấy Thêm Được Giá Trị Chiều Dài Của *line


  • Please log in to reply
8 replies to this topic

#1 a12k39duchao

a12k39duchao

    biết vẽ arc

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

Đã gửi 14 April 2017 - 10:03 PM

Nhờ các Anh Chị bổ sung thêm câu lệnh vào lisp của A ketxu để lisp này có thể xuất ra giá trị của chiều dài *line nữa ạ!

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

;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/topic/55599-yeu-cau-lisp-lay-gia-tri-cua-dimenson-text-va-xuat-ra-file-text/


(defun C:tt(/ lst fn fw i j) ;Doan Van Ha Cadviet.com

(princ "\nChon cac Text/Mtext/Dimension can xuat ra file...")

(setq lst (mapcar 'entget (acet-ss-to-list (ssget '((0 . "*TEXT,DIMENSION")))))

    	fn (getfiled "Chon file de save" "" "csv" 1)

    	fw (open fn "w") i 0 j 0)

(foreach n lst

(princ

  (cond

   ((wcmatch (cdadr n) "*TEXT")(strcat (acet-dxf 1 n) ";Text" (itoa (setq i (1+ i))) "\n"))  

   ((= (cdadr n) "DIMENSION")(strcat (if (= (acet-dxf 1 n) "")(rtos (acet-dxf 42 n))(acet-dxf 1 n))  ";Dim" (itoa (setq j (1+ j))) "\n"))

  )

   fw

  )

  )

(close fw))




  • -1

#2 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 15 April 2017 - 02:40 AM

Của em đây:

(defun C:tt(/ lst fn fw i j d)
 
(princ "\nChon cac Text/Mtext/Dimension can xuat ra file...")
 
(setq lst (mapcar 'entget (acet-ss-to-list (ssget '((0 . "*TEXT,DIMENSION,*LINE")))))
 
     fn (getfiled "Chon file de save" "" "csv" 1)
 
     fw (open fn "w") i 0 j 0 d 0)
 
(foreach n lst
 
(princ
 
  (cond
 
   ((wcmatch (cdadr n) "*TEXT")(strcat (acet-dxf 1 n) ";Text" (itoa (setq i (1+ i))) "\n"))  
 
   ((= (cdadr n) "DIMENSION")(strcat (if (= (acet-dxf 1 n) "")(rtos (acet-dxf 42 n))(acet-dxf 1 n))  ";Dim" (itoa (setq j (1+ j))) "\n"))
   ((wcmatch (cdadr n) "*LINE") (strcat (rtos (vlax-curve-getdistatparam (cdar n) (vlax-curve-getendparam  (cdar n))) ) ";*Line" (itoa (setq d (1+ d))) "\n"))
 
  )
 
   fw
 
  )
 
  )
 
 
(close fw)
    (command "._ai_editcustfile" fn))

  • 1

#3 a12k39duchao

a12k39duchao

    biết vẽ arc

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

Đã gửi 15 April 2017 - 08:02 AM

 

Của em đây:

(defun C:tt(/ lst fn fw i j d)
 
(princ "\nChon cac Text/Mtext/Dimension can xuat ra file...")
 
(setq lst (mapcar 'entget (acet-ss-to-list (ssget '((0 . "*TEXT,DIMENSION,*LINE")))))
 
     fn (getfiled "Chon file de save" "" "csv" 1)
 
     fw (open fn "w") i 0 j 0 d 0)
 
(foreach n lst
 
(princ
 
  (cond
 
   ((wcmatch (cdadr n) "*TEXT")(strcat (acet-dxf 1 n) ";Text" (itoa (setq i (1+ i))) "\n"))  
 
   ((= (cdadr n) "DIMENSION")(strcat (if (= (acet-dxf 1 n) "")(rtos (acet-dxf 42 n))(acet-dxf 1 n))  ";Dim" (itoa (setq j (1+ j))) "\n"))
   ((wcmatch (cdadr n) "*LINE") (strcat (rtos (vlax-curve-getdistatparam (cdar n) (vlax-curve-getendparam  (cdar n))) ) ";*Line" (itoa (setq d (1+ d))) "\n"))
 
  )
 
   fw
 
  )
 
  )
 
 
(close fw)
    (command "._ai_editcustfile" fn))

Cảm ơn A Tuệ đã phản hồi.

Em vừa kiểm tra nhưng lisp không chạy? Em cũng chưa hiểu tại sao.

Và em hơi tham vọng tí. Em muốn lấy thêm của giá trị của Attribute nữa ạ, Anh xem giùm Em.


  • 0

#4 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 15 April 2017 - 08:37 AM

Cảm ơn A Tuệ đã phản hồi.

Em vừa kiểm tra nhưng lisp không chạy? Em cũng chưa hiểu tại sao.

Và em hơi tham vọng tí. Em muốn lấy thêm của giá trị của Attribute nữa ạ, Anh xem giùm Em.

 

Khi chạy thì command báo gì? 

Copy dòng command báo khi chạy Lisp lên đây nhé

ATTribute có nhiều Tagstring trong đó, muốn xuất ATTring nào?

Việc xuất ATT có lẽ ko cần thiết bởi có lệnh ATTout làm việc này rồi


  • 0

#5 a12k39duchao

a12k39duchao

    biết vẽ arc

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

Đã gửi 15 April 2017 - 08:45 AM

Khi chạy thì command báo gì? 

Copy dòng command báo khi chạy Lisp lên đây nhé

ATTribute có nhiều Tagstring trong đó, muốn xuất ATTring nào?

Việc xuất ATT có lẽ ko cần thiết bởi có lệnh ATTout làm việc này rồi

Dòng command báo như sau:

 

Command: AP

APPLOAD tt.lsp successfully loaded.
Command: ; error: syntax error

Khi em bóc thép sàn, thì em cần lấy cả chiều dài (length *line); chiều dài khoảng rải (text dimension).

Còn đường kính và khoảng cách giữa các thanh tùy đơn vị thiết kế mà nằm trong Attribute (value attribute) hoặc bằng text.


  • 0

#6 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 15 April 2017 - 09:12 AM

Dòng command báo như sau:

Khi em bóc thép sàn, thì em cần lấy cả chiều dài (length *line); chiều dài khoảng rải (text dimension).

Còn đường kính và khoảng cách giữa các thanh tùy đơn vị thiết kế mà nằm trong Attribute (value attribute) hoặc bằng text.

 

File mình chạy không có lỗi. Có lẽ down về lỗi gì chăng?

Em down load file này về dùng thử nhé!

http://www.cadviet.c...s/7/4652_tt.lsp


  • 1

#7 a12k39duchao

a12k39duchao

    biết vẽ arc

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

Đã gửi 15 April 2017 - 11:25 AM

File mình chạy không có lỗi. Có lẽ down về lỗi gì chăng?

Em down load file này về dùng thử nhé!

http://www.cadviet.c...s/7/4652_tt.lsp

Em rất cảm ơn Anh. Chạy rồi Anh ạ. Nhưng vẫn như nguyện vọng, nếu A có thời gian giúp em lấy thêm giá trị Attribute nữa thì tốt ạ.  :)

 

https://goo.gl/photo...qfAVkYGgiBVe6Z6


  • 0

#8 a12k39duchao

a12k39duchao

    biết vẽ arc

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

Đã gửi 15 April 2017 - 11:58 PM

Em xử lý xong rồi ạ. Em dùng lệnh Burst convert sang text và sau đó áp dụng lisp a đã gửi cho Em, Cũng rất ok ạ!

Thank Anh rất nhiều.


  • 0

#9 Hung_EL

Hung_EL

    Chưa sử dụng CAD

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

Đã gửi 27 April 2017 - 10:30 AM

 

 

Nhờ a12k39duchao  sửa giúp lisp này do Tue_VN viết nhưng chắc do bận quá ko thấy trả lời.

Lỗi như sau: chuỗi mới bị mất 1 ký tự cuối. Vd: text "Hung:" sử dụng lisp sẽ thành "Hung"

;;; Mô tả: Lisp dưới dùng để chỉnh định dạng text đã viết về style gốc.

;;;Vd: dùng dùng lisp dưới để đưa text có định dang style X font vtime về font gốc của  style X là vtimeh. Tính năng trên thì ổn rồi

;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/topic/19152-sua-dinh-dang-font-trong-mtext/

(defun c:ctg(/ doc sset chuoi vitri)
;copyright by Tue_NV
(setq ss (ssget '((0 . "*TEXT"))))
(vl-load-com)
(setq doc (vla-get-activedocument(vlax-get-acad-object)))
(defun pos (sub st / l1 l2 index)
;Thank Mr Hoanh for this function
(setq index 1
l1 (strlen sub)
l2 (strlen st)
)
(while
(and (<= (+ index l1 -1) l2) (/= sub (substr st index l1)))
(setq index (1+ index))
)
(if (= sub (substr st index l1))
index
nil
)
);;;end defun POS
;;;Main function
(vlax-for x (setq sset (vla-get-activeselectionset doc))
(setq chuoi (vla-get-textstring x))
(setq vitri (1+ (pos ";" chuoi)))
(vla-put-textstring x (substr chuoi vitri (- (strlen chuoi) vitri)))
)
(vla-delete sset)
(princ)
)


http://www.cadviet.c.../160243_ctg.lsp


  • 0