Đến nội dung


Hình ảnh
- - - - -

Ai giúp em lisp điền cao độ Z(tex) của điểm poin


  • Please log in to reply
6 replies to this topic

#1 space68

space68

    biết pan

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

Đã gửi 18 February 2009 - 03:19 PM

Em gặp 1 bản nền đại hình các text đã bị phá vỡ. Chỉ còn điểm poin vẫn còn cao độ z. Các anh có thể giúp em xem có lisp nào điền text vào điểm poin đó, chỉ điền cao độ Z thui nhé. Em xem trong mục Auto lisp cũng có nói qua nhưng lisp k chạy đc.
Tha thiết mong các Bro giúp em! thanks
  • 0

#2 tdvn

tdvn

    biết lệnh rotate

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

Đã gửi 19 February 2009 - 12:10 AM

Em gặp 1 bản nền đại hình các text đã bị phá vỡ. Chỉ còn điểm poin vẫn còn cao độ z. Các anh có thể giúp em xem có lisp nào điền text vào điểm poin đó, chỉ điền cao độ Z thui nhé. Em xem trong mục Auto lisp cũng có nói qua nhưng lisp k chạy đc.
Tha thiết mong các Bro giúp em! thanks


;Bạn có thể tham khảo đoạn CT này
(defun C:VECD( / ss i p name cd)
(defun dxf( name n)
(cdr (assoc n (entget name)))
)

(setq ss (ssget '((0 . "point"))))
(if ss (progn
(setq i 0)
(while (< i (sslength ss))
(setq name (ssname ss i))
(setq p (dxf name 10))
(setq cd (rtos (nth 2 p) 2 3))
(command "_.text" p 1.0 0.0 cd)
(setq i (1+ i))
)
))
)
  • 0

#3 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1359 (rất tốt)

Đã gửi 19 February 2009 - 07:22 AM

Em gặp 1 bản nền đại hình các text đã bị phá vỡ. Chỉ còn điểm poin vẫn còn cao độ z. Các anh có thể giúp em xem có lisp nào điền text vào điểm poin đó, chỉ điền cao độ Z thui nhé. Em xem trong mục Auto lisp cũng có nói qua nhưng lisp k chạy đc.
Tha thiết mong các Bro giúp em! thanks

(defun c:DCD ()
(command "-style" "tlkt" "VNI-HELVE" "0" "1" "0" "n" "n")
(command "undo" "be")
(setq luubatdiem (getvar "osmode"))
(setvar "osmode" 0)

(Princ "\nChon cac POINT :")
(setq tapdoituong (ssget '((0 . "POINT"))))
(setq thutu 0)
(setq sodoituong (sslength tapdoituong))

(while (< thutu sodoituong)
(setq doituong (ssname tapdoituong thutu))
(setq laynoidung (entget doituong))
(setq diemve (cdr (assoc 10 laynoidung)))
(setq noidungviet (caddr diemve))
(setq noidungviet (rtos noidungviet 2 3))
(command ".TEXT" "m" diemve 250 0 noidungviet)
(setq thutu (+ thutu 1))
)
(command "undo" "end")
(setvar "osmode" luubatdiem)
(Princ)
)


Lệnh là DCD. Text xuất ra có độ lớn là 250 nhu cầu của bạn bao nhiêu thì sửa lại số 250 mình bôi xanh phía trên là được.
  • 0

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#4 space68

space68

    biết pan

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

Đã gửi 19 February 2009 - 09:59 AM

(defun c:DCD ()
(command "-style" "tlkt" "VNI-HELVE" "0" "1" "0" "n" "n")
(command "undo" "be")
(setq luubatdiem (getvar "osmode"))
(setvar "osmode" 0)

(Princ "\nChon cac POINT :")
(setq tapdoituong (ssget '((0 . "POINT"))))
(setq thutu 0)
(setq sodoituong (sslength tapdoituong))

(while (< thutu sodoituong)
(setq doituong (ssname tapdoituong thutu))
(setq laynoidung (entget doituong))
(setq diemve (cdr (assoc 10 laynoidung)))
(setq noidungviet (caddr diemve))
(setq noidungviet (rtos noidungviet 2 3))
(command ".TEXT" "m" diemve 250 0 noidungviet)
(setq thutu (+ thutu 1))
)
(command "undo" "end")
(setvar "osmode" luubatdiem)
(Princ)
)


Lệnh là DCD. Text xuất ra có độ lớn là 250 nhu cầu của bạn bao nhiêu thì sửa lại số 250 mình bôi xanh phía trên là được.

Rất cảm ơn các bác hỗ trợ kịp thời! Em chạy ngon rui`. Thanks!
  • 0

#5 tnmtpc

tnmtpc

    biết dimcontinue

  • Members
  • PipPipPipPipPip
  • 370 Bài viết
Điểm đánh giá: 206 (khá)

Đã gửi 19 February 2009 - 04:25 PM

(defun c:DCD ()
(command "-style" "tlkt" "VNI-HELVE" "0" "1" "0" "n" "n")
(command "undo" "be")
(setq luubatdiem (getvar "osmode"))
(setvar "osmode" 0)

(Princ "\nChon cac POINT :")
(setq tapdoituong (ssget '((0 . "POINT"))))
(setq thutu 0)
(setq sodoituong (sslength tapdoituong))

(while (< thutu sodoituong)
(setq doituong (ssname tapdoituong thutu))
(setq laynoidung (entget doituong))
(setq diemve (cdr (assoc 10 laynoidung)))
(setq noidungviet (caddr diemve))
(setq noidungviet (rtos noidungviet 2 3))
(command ".TEXT" "m" diemve 250 0 noidungviet)
(setq thutu (+ thutu 1))
)
(command "undo" "end")
(setvar "osmode" luubatdiem)
(Princ)
)


Lệnh là DCD. Text xuất ra có độ lớn là 250 nhu cầu của bạn bao nhiêu thì sửa lại số 250 mình bôi xanh phía trên là được.


Bác Duy sửa lại chút: Chiều cao text lấy theo mặc định textHeigh đã thiết lập . Bỏ giá trị Z của đối tượng text ( Z luôn=0) vì text ghi có Z theo z của points
  • 0

#6 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1359 (rất tốt)

Đã gửi 19 February 2009 - 04:35 PM

Bác Duy sửa lại chút: Chiều cao text lấy theo mặc định textHeigh đã thiết lập . Bỏ giá trị Z của đối tượng text ( Z luôn=0) vì text ghi có Z theo z của points

Bạn phải đảm bảo text style hiện hành của bạn có chiều cao khác 0 thì mới được nhé.

(defun c:DCD ()
(command "undo" "be")
(setq luubatdiem (getvar "osmode"))
(setvar "osmode" 0)

(Princ "\nChon cac POINT :")
(setq tapdoituong (ssget '((0 . "POINT"))))
(setq thutu 0)
(setq sodoituong (sslength tapdoituong))

(while (< thutu sodoituong)
(setq doituong (ssname tapdoituong thutu))
(setq laynoidung (entget doituong))
(setq diemve (cdr (assoc 10 laynoidung)))
(setq diemvek (list (car diemve) (cadr diemve)))
(setq noidungviet (caddr diemve))
(setq noidungviet (rtos noidungviet 2 3))
(command ".TEXT" "m" diemvek 0 noidungviet)
(setq thutu (+ thutu 1))
)
(command "undo" "end")
(setvar "osmode" luubatdiem)
(Princ)
)

  • 0

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#7 Phiphi-

Phiphi-

    biết lệnh minsert

  • Members
  • PipPipPipPipPipPip
  • 434 Bài viết
Điểm đánh giá: 175 (tàm tạm)

Đã gửi 20 February 2009 - 07:37 PM

PP đang tìm 1 Lisp dùng để nội suy từ 2 số tượng trưng cho 2 cao độ, khi dùng chuột pick 1 điểm hay nhiều điểm nào đó dù bên trong hay/và 2 bên ngoài của 2 chử số trên (chỉ pick tương đối thẳng hàng với 2 số đã cho). Lisp sẽ dủng phương pháp tam giác đồng dạng để nội suy ra rồi vẽ thêm Points và đặt giá trị mới bên cạnh point.
Nhờ các Bác post lại hoặc viết giúp cho PP lisp mới. Xin cảm ơn.
Xin lưu ý, các chử số này chính là cao độ Z nằm bất kỳ vị trí nào trên bản vẽ, vị trí các số hoặc các Points chính là toạ độ X, Y.
Đây là hình và bản vẽ minh hoạ:
http://www.cadviet.c...w_numbers_1.zip

Hình đã gửi
Hình đã gửi
  • 0