vuducanh119 0 Báo cáo bài đăng Đã đăng Tháng 8 20, 2013 Các bác cho em hỏi. Em có 1 file cao độ nền nhưng các cao độ chỉ là các block có chứa giá trị cao độ z. Chắc là do đưa thông số từ máy đo trắc đạc vào cad nên cao độ hiện là các dấu chấm tròn dạng block.Nhưng hiện giờ yêu cầu của đồ án là cần phải hiện các cao độ đấy lên. Em mong có bác nào viết được lisp giúp em covert các block (có chứa giá trị cao độ trên) thành các text ghi cao độ nền.Gần 1 tuần nay em đã lục lọi các cách convert chuyển block đó thành text trong các phần mềm HS, TOPO, CIVIL 3d rồi nhưng k được. Em cũng tìm các topic xuất cao độ thử vài lisp nhưng vẫn chưa được. File của em đây : http://www.mediafire.com/download/c3m7uln8lcq552f/Cot_Block_cham_tron_Hue.dwg 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
hochoaivandot 111 Báo cáo bài đăng Đã đăng Tháng 8 20, 2013 Thây yêu cầu cũng đơn giản nên mình viết nhanh cho bạn. Tên lệnh vdc nhé. (defun dxf (code e) (cdr (assoc code (entget e))))(defun MakeText (string point height)(entmake (list (cons 0 "TEXT") (cons 1 string) (cons 10 point) (cons 40 height))))(defun C:vdc(/ h ss i e pt pt_Insert cd_String)(setvar "cmdecho" 0)(if (not h0) (setq h0 2.0))(setq h (getreal (strcat "\nNhap chieu cao <" (rtos h0 2 2) ">:")))(if (not h) (setq h h0) (setq h0 h))(princ "\nChon block can ghi cao do")(setq ss (ssget (list (cons 0 "INSERT"))))(repeat (setq i (sslength ss))(setqe (ssname ss (setq i (1- i)))pt (dxf 10 e)pt_Insert (list (car pt) (cadr pt))cd_String (rtos (last pt)))(MakeText cd_String pt_Insert h))(setvar "cmdecho" 1)(princ "\nViet boi Hoc hoai van dot")(princ)) Nếu muốn ghi bao nhiêu số lẻ thì dùng lệnh UNITS để chọn nhé 1 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
phamthanhbinh 3147 Báo cáo bài đăng Đã đăng Tháng 8 20, 2013 Thây yêu cầu cũng đơn giản nên mình viết nhanh cho bạn. Tên lệnh vdc nhé. (defun dxf (code e) (cdr (assoc code (entget e))))(defun MakeText (string point height)(entmake (list (cons 0 "TEXT") (cons 1 string) (cons 10 point) (cons 40 height))))(defun C:vdc(/ h ss i e pt pt_Insert cd_String)(setvar "cmdecho" 0)(if (not h0) (setq h0 2.0))(setq h (getreal (strcat "\nNhap chieu cao <" (rtos h0 2 2) ">:")))(if (not h) (setq h h0) (setq h0 h))(princ "\nChon block can ghi cao do")(setq ss (ssget (list (cons 0 "INSERT"))))(repeat (setq i (sslength ss))(setqe (ssname ss (setq i (1- i)))pt (dxf 10 e)pt_Insert (list (car pt) (cadr pt))cd_String (rtos (last pt)))(MakeText cd_String pt_Insert h))(setvar "cmdecho" 1)(princ "\nViet boi Hoc hoai van dot")(princ)) Nếu muốn ghi bao nhiêu số lẻ thì dùng lệnh UNITS để chọn nhé Hề hề hề, Giá như bác cho thêm vào bộ lọc cái tên block thì sẽ đỡ bị xuất nhầm đối tượng hơn bác hè...... 1 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
hiepttr 540 Báo cáo bài đăng Đã đăng Tháng 8 20, 2013 Đang luyện nên mần đại cái này Đưa lên đây để chờ đá :D :D :D ;dien cao do (defun c:DCD( / i ss n ch o) (setq ss (ssget (list (cons 2 "DCAOTH"))) n (sslength ss) i 0) (while (< i n) (progn (setq ch (entget (ssname ss i)) o (list (cadr (assoc 10 ch)) (caddr (assoc 10 ch)))) (if (= 0 (cdr (assoc 40 (tblsearch "Style" (getvar 'TEXTSTYLE))))) (command ".text" "j" "c" o 2.5 0 (rtos (last (assoc 10 ch)) 2 2)) (command ".text" "j" "c" o 0 (rtos (last (assoc 10 ch)) 2 2))) (setq i (+ 1 i)) )) (princ) ) 1 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
vuducanh119 0 Báo cáo bài đăng Đã đăng Tháng 8 20, 2013 em cám ơn bá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
vuducanh119 0 Báo cáo bài đăng Đã đăng Tháng 8 20, 2013 thật sự là em rất cám ơn bác. bác đã cứu vãn cho em 1 mối tình. em yêu 1 người con gái Huế. Và đồ án Tốt Nghiệp em chọn Huế để quy hoạch. mà k có cốt cao độ chuẩn ntn thì chắc em phải chuyển đề tài. em cám ơn bác rất nhiều. 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
hiepttr 540 Báo cáo bài đăng Đã đăng Tháng 8 22, 2013 Đó chỉ là làm theo yêu cầu Còn xữ lý BV của bạn thì chắc ko cần đến Lisp phải viết thêm mà dùng express của cad là mần đc :D :D :D 1. Tạo block chỉ bằng 1 điểm, điểm chuẩn chọn ngay chính điểm đó 2. Replace ... để thay thế block vừa tạo vào vị trí block có tên DCAOTH trên BV 3. EX >>>> chon tất cả >>> đã có điểm >>> topo (hoặc nova) ... chơi đc tuốt !!! 1 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
melalin 3 Báo cáo bài đăng Đã đăng Tháng 4 14, 2023 Có cao nhân viết lisp nào rảnh không viết hộ E cái lisp chỉ cần xuất tọa độ Z tại điểm đối tượng đó ví dụ như text hoặc block hay ATT. Bôi 1 cái xuất hàng loạt tọa độ Z tại đối tượng đc ko ạ?? 1 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