Đến nội dung


Hình ảnh

VIẾT DÙM AUTOLISP


  • Please log in to reply
5 replies to this topic

#1 trungphuong145

trungphuong145

    biết zoom

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

Đã gửi 13 May 2014 - 02:13 PM

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)


  • 0

#2 trungphuong145

trungphuong145

    biết zoom

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

Đã gửi 13 May 2014 - 02:15 PM

e có chụp hình như file đính kèm

tks các anh chị


  • 0

#3 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 13 May 2014 - 02:22 PM

Tôi chưa dòm được hình của bạn, nhưng qua mô tả thì chắc giống trường hợp này tôi đã viết:

http://www.cadviet.c...60


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#4 trungphuong145

trungphuong145

    biết zoom

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

Đã gửi 20 May 2014 - 08:29 PM

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...k9/dat lifs.zip


  • 0

#5 trungphuong145

trungphuong145

    biết zoom

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

Đã gửi 21 May 2014 - 11:29 AM

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))


  • 0

#6 quochieu_91

quochieu_91

    Chưa sử dụng CAD

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

Đã gửi 21 May 2014 - 11:48 AM

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


  • 0