Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Đăng nhập để thực hiện theo  
space68

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

Các bài được khuyến nghị

space68    0

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

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
tdvn    53
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))

)

))

)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
duy782006    1.374
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.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
space68    0
(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!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
tnmtpc    206
(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

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
duy782006    1.374
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)

)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Phiphi-    175

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.com/upfiles/Add_points_new_numbers_1.zip

 

addpointsnewnumbersmp2.jpg

w596.png

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

Đăng nhập để thực hiện theo  

×