Đến nội dung


Hình ảnh
- - - - -

Nhờ viết lisp xuất tọa độ x,y,giá trị cao độ text (theo ví dụ đính kèm)


  • Please log in to reply
5 replies to this topic

#1 hardwell

hardwell

    biết pan

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

Đã gửi 14 November 2013 - 08:39 AM

Nhờ mọi người giúp mình với. Mình có bản vẽ có khoảng hơn ngàn text cao độ (nằm trong khu đất cần tính san nền). Nhưng các text này không có độ cao z nên mình không thể chạy san nền bằng HS được. Nếu nhập thủ công (bằng cách bấm phải chọn property từng text, sau đó nhập giá trị z vào property thì cũng được, nhưng cách làm này chắc mất cả tháng !).

 

Nên mình nhờ mọi người giúp mình xem có lisp nào có thể chọn (bấm từng cái hoặc chọn hết) các text thì tự động xuất 3 thông số ra file txt gồm: tọa độ x,y và giá trị của chính text đó (ví dụ bấm vào text 2.92 thì xuất ra tọa độ x,y,value tương ứng 100,200,2.92 ...)

 

Nếu làm được thì mình sẽ dùng lệnh tái nhập thông số vừa thu được để tạo ra file mới giống file đầu nhưng tất cả các text đều có độ cao z (dùng lệnh point x,y,x đối với lệnh multipoint)

 

Mình có đính kèm file cad kèm theo

 

Cảm ơn các bạn rất nhiều.http://www.cadviet.c...nhoicadviet.dwg


  • 0

#2 DanKhaosat

DanKhaosat

    biết lệnh scale

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

Đã gửi 14 November 2013 - 08:53 AM

Bạn tải DPsurvey nó làm hết cho bạn


  • 0

#3 hardwell

hardwell

    biết pan

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

Đã gửi 14 November 2013 - 09:14 AM

Bạn tải DPsurvey nó làm hết cho bạn

Thanks bạn trước. Để mình thử xem nhé. 


  • 0

#4 hardwell

hardwell

    biết pan

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

Đã gửi 14 November 2013 - 09:34 AM

Bạn tải DPsurvey nó làm hết cho bạn

 

Mình đã làm được. Thanks bạn rất nhiều. Mình đã phải làm thủ công khá nhiều lần nên mất nhiều thời gian quá. Biết vậy hỏi sớm hơn đỡ mất bao nhiêu thời gian công sức. 

 

THANKS BẠN NHIỀU !!!!!!!!!


  • 0

#5 cd2k44

cd2k44

    Edu level: li5

  • Members
  • PipPipPipPipPipPipPip
  • 648 Bài viết
Điểm đánh giá: 121 (tàm tạm)

Đã gửi 14 November 2013 - 11:21 AM

(Defun c:sht ( / picset Idx Entt PLis)
(If (Setq picset (Ssget (List (Cons 0 "*TEXT"))))
(Progn
(Setq Idx 0)
(Repeat (SSlength picset)
(Setq Entt (Entget (SSname picset Idx)))
(If (And (Or (Equal (Cdr (Assoc 0 Entt)) "TEXT") ;;Doi tuong la TEXT
(Equal (Cdr (Assoc 0 Entt)) "MTEXT") ;;Hoac doi tuong la MTEXT
)
(Numberp (Read (Cdr (Assoc 1 Entt)))) ;;La TEXT dang chu so
)
(Progn
(Setq Pnt (List (Cadr (Assoc 10 Entt)) (Caddr (Assoc 10 Entt)) (AtoF (Cdr (Assoc 1 Entt)))))
(Setq Entt (Subst (Cons 10 Pnt) (Assoc 10 Entt) Entt))
(Entmod Entt)
)
)
(Setq Idx (+ Idx 1))
)
)
)
(Princ)
)

Bạn dùng lisp sau.Nó sẽ tự gán giá trị Z bằng giá trị text cho bạn


  • 0

#6 hardwell

hardwell

    biết pan

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

Đã gửi 14 November 2013 - 04:39 PM

(Defun c:sht ( / picset Idx Entt PLis)
(If (Setq picset (Ssget (List (Cons 0 "*TEXT"))))
(Progn
(Setq Idx 0)
(Repeat (SSlength picset)
(Setq Entt (Entget (SSname picset Idx)))
(If (And (Or (Equal (Cdr (Assoc 0 Entt)) "TEXT") ;;Doi tuong la TEXT
(Equal (Cdr (Assoc 0 Entt)) "MTEXT") ;;Hoac doi tuong la MTEXT
)
(Numberp (Read (Cdr (Assoc 1 Entt)))) ;;La TEXT dang chu so
)
(Progn
(Setq Pnt (List (Cadr (Assoc 10 Entt)) (Caddr (Assoc 10 Entt)) (AtoF (Cdr (Assoc 1 Entt)))))
(Setq Entt (Subst (Cons 10 Pnt) (Assoc 10 Entt) Entt))
(Entmod Entt)
)
)
(Setq Idx (+ Idx 1))
)
)
)
(Princ)
)

Bạn dùng lisp sau.Nó sẽ tự gán giá trị Z bằng giá trị text cho bạn

 

Thanks bạn rất nhiều ! Mình đã dùng được rồi.

 

Ưu điểm lớn nhất của lisp bạn viết là sử dụng được ngay không cần phải mò mẫm phần mềm như việc sử dụng DPSurvey, ai cũng sử dụng được ngay.

 

Nhưng chỉ có một bất tiện hơi nhỏ so với việc sử dụng cái DPSurvey là nếu chỉ dùng bản vẽ có vài chục text thì thao tác rất nhanh, nhưng nếu mình chọn khoảng vài ngàn đến hơn chục ngàn text trên bản vẽ lớn thì mình phải bấm enter vài ngàn lần (hoặc giữ nguyên nút enter để màn hình command nó chạy hết các text, mất khoảng hơn chục phút).

 

Tùy vào độ lớn của bản vẽ mình sẽ sử dụng cả 2 cách trên.

 

Thực sự mình cảm ơn 2 bạn DanKhaosat và cd2k44 rất nhiều.


  • 0