Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
trungphuong145

VIẾT DÙM AUTOLISP

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

kính chào các anh chi

e có 1 trường hợp như sau nhưng tìm kiếm nhiều nhưng chưa ra lisp nào, để giải quyết khó khăn này cả (chắc các anh chị có đăng ở đâu đó rồi n e chưa tim thấy thôi)

qua đây e kính nhờ các anh chị hảo tâm dúp đỡ

trường hợp như sau:

file cad mặt bằng cao độ

 - bị tách rời phần nguyên, điểm pont và phần thập phân

 - nằm ở dạng 2d, 

(cao độ thủy phục vụ cho thủy công thường hay gặp) như file đính kèm

phương án giải quyết như sau:

1) viết 1 autolisp di chuyển các text gồm phần nguyên và phần thập phân của cao độ về trùng với điểm pont (như trường hợp 1)

2) nối phần nguyên và phần thập phân lại với nhau (như trường hợp 2)

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

Cảm ơn anh đoàn văn hà, đã cho e xem bài viết trên, n hình như chưa đc như ý muốn

(vì nối tất cả các text lại với nhau thì ko đúng) vì e cần các điểm cao độ nối lại với nhau thôi vì cả triệu điểm cao độ ko thể làm chọn thủ công từng điểm 1, mà cách làm thủ công này trong express tools cũng có anh

anh xem lại file dưới nhé

đa tạ anh, dưới đây là file đính kèm.

http://www.mediafire.com/download/daoykbf0omc6ok9/dat+lifs.zip

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

e thấy cái lisp này đc anh hà nek, nhưng cần chỉnh 1 chút là thực tế bản vẽ có khoảng cách 2 điểm chèn ko phải là 1 hằng số cố định mà có thể khác nhau.

 

Lisp ghép từng cặp 2 text rời (dạng số) có khoảng cách 2 điểm chèn 1 hằng số, thành 1 text, thêm dấu chấm thập phân.

 

 

;Doan Van Ha - CADViet.com - Ngay 11-6-2012 ;Muc dich: Noi tung cap text kieu num gan nhau nhat, bang dau ".". VD: noi "5" va "32" thanh "5.32". ;Doi tuong chon va phan nhom theo tung cap co khoang cach giua 2 diem chen text la hang so. (defun C:HA(/ ent1 ent2 lay1 lay2 kc ss lst x1 x2) (while (not (setq ent1 (car (entsel "\nChon text so lon lam mau: "))))) (while (not (setq ent2 (car (entsel "\nChon text so nho lam mau: "))))) (princ "\nChon tap hop cac Text can noi...") (setq lay1 (cdr (assoc 8 (entget ent1))) lay2 (cdr (assoc 8 (entget ent2)))) (setq kc (- (car (cdr (assoc 10 (entget ent1)))) (car (cdr (assoc 10 (entget ent2)))))) (setq ss (ssget (list (cons -4 "<AND") (cons 0 "TEXT") (cons -4 "<OR") (cons 8 lay1) (cons 8 lay2) (cons -4 "OR>") (cons -4 "AND>")))) (setq lst (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))) (if (/= (rem (length lst) 2) 0) (alert "Yeu cau so luong 2 nhom Text phai bang nhau!") (foreach ent1 lst (setq x1 (car (cdr (assoc 10 (entget ent1))))) (foreach ent2 lst (setq x2 (car (cdr (assoc 10 (entget ent2))))) (if (equal (- x1 x2) kc 1E-8) (progn (entmod (subst (cons 1 (strcat (cdr (assoc 1 (entget ent1))) "." (cdr (assoc 1 (entget ent2))))) (assoc 1 (entget ent1)) (entget ent1))) (entdel ent2) (setq lst (vl-remove ent1 (vl-remove ent2 lst)))))))) (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

Xin lỗi chủ thớt, do đây là lần đầu tiên mình tham gia diễn đàn, nên ko biết post bài mới ở chỗ nào cả, cho mình post nhờ ở đây nhé :-))

Mình muốn mọi người giúp mình viết 1 cái lisp có nội dung như thế này ạ:

Mình cần tạo 1 khoảng cách cố định giữa các dim với nhau và giữa dim với đối tượng cần dim, ví dụ như hình là 100-100-150, mong các bác giúp đỡ ạ, sau đó sẽ áp dụng cho nhiều đối tượng khác nữa!!!

Thank mọi người!!!

 

131429_capture.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  

×