Đến nội dung


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

Lisp Tự Động Đo Và Ghi Kích Thước Nhiều Đối Tượng


  • Please log in to reply
23 replies to this topic

#1 a12k39duchao

a12k39duchao

    biết vẽ arc

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

Đã gửi 25 February 2017 - 03:48 PM

Thưa mọi người

Hiện mình có 02 ý tưởng:

 

Ý tưởng 1: auto dim cho nhiều đối tượng khác nhau bằng 1 click.

Giống như http://lanloylisp.bl...mensioning.html

 

Ý tưởng 2: 1 dim có sẵn nhưng không có đối tượng, vẽ đối tượng di qua 2 chân dim.

http://www.cadviet.c.../24851_lisp.dwg

 

Cảm ơn mọi người!


  • 0

#2 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 25 February 2017 - 04:12 PM

Ý bạn là gì :) 2 ý tưởng này thực hiện nó không khó tí nào :)
Ý tưởng 1 mình có viết đo hàng loạt đoạn thẳng rồi, bạn lấy chỉnh sửa khoảng cách thôi.
http://www.cadviet.c...e-ko-tinh-tong/
Ý tưởng 2 thì lấy 2 đầu defpoint rồi entmake Line :)
  • 1

#3 a12k39duchao

a12k39duchao

    biết vẽ arc

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

Đã gửi 26 February 2017 - 02:44 PM

Ý bạn là gì :) 2 ý tưởng này thực hiện nó không khó tí nào :)
Ý tưởng 1 mình có viết đo hàng loạt đoạn thẳng rồi, bạn lấy chỉnh sửa khoảng cách thôi.
http://www.cadviet.c...e-ko-tinh-tong/
Ý tưởng 2 thì lấy 2 đầu defpoint rồi entmake Line :)

Cảm ơn Anh ketxu.
1. Em cũng có xài lisp của Anh nhưng thấy rằng. Đối tượng vẫn là dimension nhưng không thể export tới excel bằng lisp này được

;; 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:HA( / lst fn fw index x y z txt)	;Doan Van Ha Cadviet.com

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

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

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

       	fw (open fn "w")

       	index 0 x 1 y 1 z 1)

 (repeat (length lst)

  (cond

   ((= (cdr (assoc 0 (entget (nth index lst)))) "TEXT") (setq txt (strcat (cdr (assoc 1 (entget (nth index lst)))) "," "text" (itoa x)) x (1+ x)))

   ((= (cdr (assoc 0 (entget (nth index lst)))) "MTEXT") (setq txt (strcat (cdr (assoc 1 (entget (nth index lst)))) "," "mtext" (itoa y)) y (1+ y)))

   ((= (cdr (assoc 0 (entget (nth index lst)))) "DIMENSION")

	(if (= (cdr (assoc 1 (entget (nth index lst)))) "")

 	(setq txt (strcat (rtos (cdr (assoc 42 (entget (nth index lst))))) "," "dim" (itoa z)) z (1+ z))

 	(setq txt (strcat (cdr (assoc 1 (entget (nth index lst)))) "," "dim" (itoa z)) z (1+ z)))))

  (princ (strcat txt "\n") fw)

  (setq index (1+ index)))

 (close fw))



và em muốn vẫn hiện các đường gióng có được không (anh cứ để 2 phương án nha  :) )

2. Lệnh entmake Line này có từ cad bao nhiêu trở lên vậy. Vì em đang xài cad 2007.

Cảm ơn Anh ketxu


  • 0

#4 Bee

Bee

    biết dimbaseline

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

Đã gửi 26 February 2017 - 04:24 PM

2. Lệnh entmake Line này có từ cad bao nhiêu trở lên vậy. Vì em đang xài cad 2007.

 

--------->>>>>>Lệnh entmake có từ cad 14 tới cad 2017 ^_^


  • 0

#5 a12k39duchao

a12k39duchao

    biết vẽ arc

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

Đã gửi 27 February 2017 - 08:04 AM

2. Lệnh entmake Line này có từ cad bao nhiêu trở lên vậy. Vì em đang xài cad 2007.

 

--------->>>>>>Lệnh entmake có từ cad 14 tới cad 2017 ^_^

Xin lỗi Bee không biết gọi là Anh hay là Bạn nhưng mình gõ thì không thấy có lệnh này trong cad nhỉ? Bạn có thể chỉ rõ cho mình hơn theo suy nghĩ mình nêu ra ở trên không?

Trân trọng!


  • 0

#6 Danh Cong

Danh Cong

    biết lệnh Xplode

  • Moderator
  • PipPipPipPipPipPip
  • 481 Bài viết
Điểm đánh giá: 108 (tàm tạm)

Đã gửi 27 February 2017 - 08:39 AM

 Khổ thân bạn quá ^^ 2 anh ấy "hại não" bạn rồi ... Entmake nó nằm ở trong Lisp, tức là câu lệnh lập trình Autolisp... Chứ gõ hoài, gõ miết trên màn hình nó cũng ko ra đâu.  B) B)

Anh #Bee, anh #Két xù có kinh nghiệm 15-16 năm ... cầm đuôi chuột ---> Cao thủ rồi. Vậy bạn gọi anh ấy là anh hay bạn thì tùy  :P  hê hê..

Viết cho bạn code trong trường hợp này...

 
 

 

 

(defun c:test ( / oldos object n i dxf pt1 pt2)
(command "undo" "begin")
(command "cmdecho" 0)
(setq oldos (getvar "osmode"))
(setvar "osmode" 0)
 
(prompt "Chon cac dimension: \n")
(setq object (ssget '(( 0 . "*dimension")))
      n      (SSLENGTH object)
      i 0)
(repeat n
  (progn
    (setq dxf (entget (ssname object i))
 pt1 (cdr (assoc 13 dxf))
 pt2 (cdr (assoc 14 dxf)))
    (command ".line" pt1 pt2 "")
    (setq i (1+ i))
    )
  )
 
  (setvar "osmode" oldos)
 (command "undo" "end")
  (princ))

 


  • 2

              *** Vô lo - Vô nghĩ - Vô sầu hận ***
*** Chẳng thương - Chẳng giận - Chẳng đau lòng ***


#7 a12k39duchao

a12k39duchao

    biết vẽ arc

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

Đã gửi 27 February 2017 - 10:29 AM

 

 Khổ thân bạn quá ^^ 2 anh ấy "hại não" bạn rồi ... Entmake nó nằm ở trong Lisp, tức là câu lệnh lập trình Autolisp... Chứ gõ hoài, gõ miết trên màn hình nó cũng ko ra đâu.  B) B)

Anh #Bee, anh #Két xù có kinh nghiệm 15-16 năm ... cầm đuôi chuột. Vậy bạn gọi anh ấy là anh hay bạn thì tùy  :P  hê hê..

Viết cho bạn code trong trường hợp này...

 

Cảm ơn A Công. Đó là lisp em mong muốn.

Em muốn hỏi them chút nữa: lisp ở bài #3. Em muốn thay vì tổng hợp các chiều dài giống nhau theo từng layer thì bây giờ em không muốn như thế nữa. Em muốn nó xuất chiều dài (có bảng theo layer) nhưng không tổng hợp số lượng nữa.

https://drive.google...iew?usp=sharing

Tương tự như câu hỏi ở bài #14 http://www.cadviet.c...-ke-doan-thang/

Trân trọng!


  • -1

#8 Danh Cong

Danh Cong

    biết lệnh Xplode

  • Moderator
  • PipPipPipPipPipPip
  • 481 Bài viết
Điểm đánh giá: 108 (tàm tạm)

Đã gửi 27 February 2017 - 11:19 AM

Mình  sửa luôn trong lisp bác #Ha < bên dưới này > cho bạn. Bạn copy về xem thế nào. Bạn nên cám ơn những người cống hiến vì diễn đàn nhiều như bác Kết vs bác Bee kia kìa. :) Mình đi học mót thôi, trình còn gà lắm.

;; 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:HA( / lst fn fw index x y z txt)	;Doan Van Ha Cadviet.com

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

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

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

       	fw (open fn "w")

       	index 0 x 1 y 1 z 1)

 (repeat (length lst)

  (cond

   ((= (cdr (assoc 0 (entget (nth index lst)))) "TEXT") (setq txt (strcat (cdr (assoc 1 (entget (nth index lst)))) "," "text" (itoa x)) x (1+ x)))

   ((= (cdr (assoc 0 (entget (nth index lst)))) "MTEXT") (setq txt (strcat (cdr (assoc 1 (entget (nth index lst)))) "," "mtext" (itoa y)) y (1+ y)))

   ((= (cdr (assoc 0 (entget (nth index lst)))) "DIMENSION")

	(if (= (cdr (assoc 1 (entget (nth index lst)))) "")

 	(setq txt (strcat (rtos (cdr (assoc 42 (entget (nth index lst))))) "," "dim" (itoa z) "," (cdr (assoc 8 (entget (nth index lst))))) z (1+ z))

 	(setq txt (strcat (cdr (assoc 1 (entget (nth index lst)))) "," "dim" (itoa z)  "," (cdr (assoc 8 (entget (nth index lst))))) z (1+ z)))))

  (princ (strcat txt "\n") fw)

  (setq index (1+ index)))

 (close fw))




  • 1

              *** Vô lo - Vô nghĩ - Vô sầu hận ***
*** Chẳng thương - Chẳng giận - Chẳng đau lòng ***


#9 a12k39duchao

a12k39duchao

    biết vẽ arc

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

Đã gửi 28 February 2017 - 07:25 AM

 

Mình  sửa luôn trong lisp bác #Ha < bên dưới này > cho bạn. Bạn copy về xem thế nào. Bạn nên cám ơn những người cống hiến vì diễn đàn nhiều như bác Kết vs bác Bee kia kìa. :) Mình đi học mót thôi, trình còn gà lắm.

;; 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:HA( / lst fn fw index x y z txt)	;Doan Van Ha Cadviet.com

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

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

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

       	fw (open fn "w")

       	index 0 x 1 y 1 z 1)

 (repeat (length lst)

  (cond

   ((= (cdr (assoc 0 (entget (nth index lst)))) "TEXT") (setq txt (strcat (cdr (assoc 1 (entget (nth index lst)))) "," "text" (itoa x)) x (1+ x)))

   ((= (cdr (assoc 0 (entget (nth index lst)))) "MTEXT") (setq txt (strcat (cdr (assoc 1 (entget (nth index lst)))) "," "mtext" (itoa y)) y (1+ y)))

   ((= (cdr (assoc 0 (entget (nth index lst)))) "DIMENSION")

	(if (= (cdr (assoc 1 (entget (nth index lst)))) "")

 	(setq txt (strcat (rtos (cdr (assoc 42 (entget (nth index lst))))) "," "dim" (itoa z) "," (cdr (assoc 8 (entget (nth index lst))))) z (1+ z))

 	(setq txt (strcat (cdr (assoc 1 (entget (nth index lst)))) "," "dim" (itoa z)  "," (cdr (assoc 8 (entget (nth index lst))))) z (1+ z)))))

  (princ (strcat txt "\n") fw)

  (setq index (1+ index)))

 (close fw))



Vâng! Không chỉ có Anh #ket; Anh #Bee; Anh #Ha mà còn có cả Anh nữa. Nếu không có tất cả mọi người thì bọn em vẫn đang hì hục làm thủ công. Vừa chậm, vừa không chuyên nghiệp.

Anh #DANH CONG xem lại hộ em nhé. Lisp không chạy được.

Và em cũng có nhờ mọi người xem lại mấy lisp, anh cũng ngó qua coi dzum em.

1. Lisp lấy giá trị của dimension từ giá trị của anh #ket: Anh đang xem nhưng em test thì thấy nó chưa hoạt động.

2. Lisp của A #KET em muốn giữ nguyên các đường gióng.

3. Lisp đếm chiều dài đối tượng và xuất ra excel. Em không muốn nó tổng hợp nữa. Mà để nguyên các giá trị đó. Tương tự như câu hỏi ở bài #14 http://www.cadviet.c...-ke-doan-thang/

 

Cảm ơn Anh!


  • -1

#10 quocmanh04tt

quocmanh04tt

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 803 Bài viết
Điểm đánh giá: 381 (khá)

Đã gửi 28 February 2017 - 08:58 AM

Bạn nói rõ hơn được ko. Không chạy được là không chạy ở phần nào. ?

Mình tải y đoạn code bác Hà. Chạy lệnh "Ha", chọn các dimension... vẫn ra số liệu ầm ầm :)

DXF 1 của Dimension còn trường hợp này nữa: <> displays the (automatic) Measurement Value.

(​Sau khi chạy lisp của Ket thì dxf 1 của dim được chuyển về: "<>\\P   "


  • 1

#11 a12k39duchao

a12k39duchao

    biết vẽ arc

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

Đã gửi 28 February 2017 - 10:22 AM

DXF 1 của Dimension còn trường hợp này nữa: <> displays the (automatic) Measurement Value.

(​Sau khi chạy lisp của Ket thì dxf 1 của dim được chuyển về: "<>\\P   "

Anh #DANHCONG : Lỗi y như #quocmanh04tt nói đấy ạ!


  • 0

#12 Danh Cong

Danh Cong

    biết lệnh Xplode

  • Moderator
  • PipPipPipPipPipPip
  • 481 Bài viết
Điểm đánh giá: 108 (tàm tạm)

Đã gửi 28 February 2017 - 10:30 AM

Anh #DANHCONG : Lỗi y như #quocmanh04tt nói đấy ạ!

Bạn có thể đăng 1 bản vẽ lên để mình sửa được không?

#Anh Quốc Mạnh. : Đúng là lisp bỏ qua trường hợp này


  • 1

              *** Vô lo - Vô nghĩ - Vô sầu hận ***
*** Chẳng thương - Chẳng giận - Chẳng đau lòng ***


#13 a12k39duchao

a12k39duchao

    biết vẽ arc

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

Đã gửi 28 February 2017 - 11:00 AM

Bạn có thể đăng 1 bản vẽ lên để mình sửa được không?

#Anh Quốc Mạnh. : Đúng là lisp bỏ qua trường hợp này

Đây là các đề nghị của em. Cái nào giải quyết đúng, chưa đúng em đều ghi rõ rồi Anh nhé:

https://drive.google...TFdldlJzTVJIdnM

Trân trọng!


  • 0

#14 Danh Cong

Danh Cong

    biết lệnh Xplode

  • Moderator
  • PipPipPipPipPipPip
  • 481 Bài viết
Điểm đánh giá: 108 (tàm tạm)

Đã gửi 28 February 2017 - 12:22 PM

Đây là các đề nghị của em. Cái nào giải quyết đúng, chưa đúng em đều ghi rõ rồi Anh nhé:

https://drive.google...ejVpTThNcGlwQ2c

Trân trọng!

Mình xài Cad Version 2012 bạn ơi !..... Bản vẽ đời cao hơn ko xài được.


  • 0

              *** Vô lo - Vô nghĩ - Vô sầu hận ***
*** Chẳng thương - Chẳng giận - Chẳng đau lòng ***


#15 a12k39duchao

a12k39duchao

    biết vẽ arc

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

Đã gửi 28 February 2017 - 12:31 PM

Mình xài Cad Version 2012 bạn ơi !..... Bản vẽ đời cao hơn ko xài được.

Em đã sửa lại đường link rồi nhé 

https://drive.google...TFdldlJzTVJIdnM


  • 0

#16 a12k39duchao

a12k39duchao

    biết vẽ arc

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

Đã gửi 01 March 2017 - 02:46 PM

Em đã sửa lại đường link rồi nhé 

https://drive.google...TFdldlJzTVJIdnM

Mình có ghé qua chỗ Anh #quocmanh04tt và được giải đáp giùm.

Xin chia sẻ với tất cả mọi người nếu thấy cần thiết 

https://drive.google...GJfV3FuWVU/view

Các Anh nếu ghé thăm, có thể xem qua và chia sẻ thêm.


  • 0

#17 Danh Cong

Danh Cong

    biết lệnh Xplode

  • Moderator
  • PipPipPipPipPipPip
  • 481 Bài viết
Điểm đánh giá: 108 (tàm tạm)

Đã gửi 01 March 2017 - 03:27 PM

Mình có ghé qua chỗ Anh #quocmanh04tt và được giải đáp giùm.

Xin chia sẻ với tất cả mọi người nếu thấy cần thiết 

https://drive.google...GJfV3FuWVU/view

Các Anh nếu ghé thăm, có thể xem qua và chia sẻ thêm.

 

+ Xem file bạn gửi, hình như đang sử dụng món QuickDim của anh Kết. ^^.

+ Anh QuocManh xài file .Fas thì mọi người ko hiểu kết cấu bên trong lisp. Nên bạn chia sẻ file mà ko có "Hướng dẫn sử dụng " thì ko ai xài được đâu . Hề hề. Dù sao thì nó cũng là vấn đề bản quyền tác giả.


  • 1

              *** Vô lo - Vô nghĩ - Vô sầu hận ***
*** Chẳng thương - Chẳng giận - Chẳng đau lòng ***


#18 dophi272

dophi272

    biết pan

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

Đã gửi 02 August 2017 - 08:44 AM

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

MÌNH GỬI FILE NHỜ MẤY BẠN VIẾT GIÚP MÌNH LISP DÌM NHIỀU ĐỐI TƯỢNG CÙNG LÚC NHA


  • -1

#19 dophi272

dophi272

    biết pan

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

Đã gửi 02 August 2017 - 09:24 AM

+ Xem file bạn gửi, hình như đang sử dụng món QuickDim của anh Kết. ^^.

+ Anh QuocManh xài file .Fas thì mọi người ko hiểu kết cấu bên trong lisp. Nên bạn chia sẻ file mà ko có "Hướng dẫn sử dụng " thì ko ai xài được đâu . Hề hề. Dù sao thì nó cũng là vấn đề bản quyền tác giả.

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

nhờ anh viết giúp lisp dìm nhiều đối tượng cùng lúc nha


  • 0

#20 Mèo Mun

Mèo Mun

    biết zoom

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

Đã gửi 02 August 2017 - 09:32 AM

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

nhờ anh viết giúp lisp dìm nhiều đối tượng cùng lúc nha

Lisp QDD chỉ áp dụng với đường Line thôi, còn cái bạn cần dim là Pline. Nên bạn "X" các đường Pline rồi sử dụng lại lệnh QDD


  • 1