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

( Giúp đở).Phần nguyên và phần thập phân chia làm 2 text.

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

Vấn đề làm e ngủ ko yên, ăn ko ngon mấy ngày qua.

Em chạy Nova từ file bình đồ có sẵn. Trước đây, chạy thủ công tạo tệp .ntd rất mất thời gian và đòi hỏi tỉ mỉ (đo khoảng cách và nội suy cao độ).

Sau đó mình cũng len mạng tìm hiểu, các lisp mình sdung lisp exptxt để xuất ra file txt, nhưng text của mình có phần nguyên và phần thập phân ko chung 1text, ví dụ 9.6 thì chia ra 9 ứng một text, 6 ứng một text, dấu '.' ứng với vòng tròn. Mình muốn 9.6 chung một text để có thể xuất re file txt Mong các anh chị và các bạn giúp đỡ mình về vấn đề này để mình ăn ngủ có thể ngon hơn được ko ạk.

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

Vấn đề làm e ngủ ko yên, ăn ko ngon mấy ngày qua.

Em chạy Nova từ file bình đồ có sẵn. Trước đây, chạy thủ công tạo tệp .ntd rất mất thời gian và đòi hỏi tỉ mỉ (đo khoảng cách và nội suy cao độ).

Sau đó mình cũng len mạng tìm hiểu, các lisp mình sdung lisp exptxt để xuất ra file txt, nhưng text của mình có phần nguyên và phần thập phân ko chung 1text, ví dụ 9.6 thì chia ra 9 ứng một text, 6 ứng một text, dấu '.' ứng với vòng tròn. Mình muốn 9.6 chung một text để có thể xuất re file txt Mong các anh chị và các bạn giúp đỡ mình về vấn đề này để mình ăn ngủ có thể ngon hơn được ko ạk.

Sắp ăn ngon ngủ yên được rồi. Lisp tương tự đã có, sửa chút xíu có thể OK, mời bạn post bản vẽ lên ngó cái đã mới tiếp tục đượ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

Cái này tôi đã post lên CADViet, sao bây giờ vào link cũ không được. Đành post lại vậy.

Bạn hết sức chú ý khi chọn text: chọn sao cho chúng đi đôi từng cặp nhé!

;Doan Van Ha - CADViet.com - Ngay 16-3-2012
;Muc dich: Noi tung cap text kieu num gan nhau nhat, bang dau ".". VD: noi "5" va "3" thanh "5.3".
;Doi tuong chon va phan nhom theo height cua text.
(defun C:HA2(/ ss lst1 lst2 pt1 pt2 dis ent3)
(setq ent1 (car (entsel "\nChon text so lon lam mau: ")) ent2 (car (entsel "\nChon text so be lam mau: ")))
(setq lay1 (cdr (assoc 8 (entget ent1))) lay2 (cdr (assoc 8 (entget ent2))))
(princ "\nChon tap hop cac Text can noi...")
(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>"))))	;OK
 (setq lst (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
(setq lst (vl-sort lst '(lambda (e1 e2) (> (cdr (assoc 40 (entget e1))) (cdr (assoc 40 (entget e2)))))))
(if (/= (rem (length lst) 2) 0)
 (alert "Yeu cau so luong 2 nhom Text phai bang nhau!")
 (progn
  (setq lst1 (LM:SubList lst 0 (/ (length lst) 2)) lst2 (LM:SubList lst (/ (length lst) 2) (/ (length lst) 2)))
  (foreach ent1 lst1
(setq pt1 (cdr (assoc 10 (entget ent1))))
(setq dis (* 2 (distance pt1 (cdr (assoc 10 (entget (nth 0 lst2)))))))
(foreach ent2 lst2
	(setq pt2 (cdr (assoc 10 (entget ent2))))
	(if (< (distance pt1 pt2) dis)
 	(setq dis (distance pt1 pt2) ent3 ent2)))
(entmod (subst (cons 1 (strcat (cdr (assoc 1 (entget ent1))) "." (cdr (assoc 1 (entget ent3))))) (assoc 1 (entget ent1)) (entget ent1)))
               	(entmod (subst (cons 62 1) (assoc 62 (entget ent1)) (entget ent1))))	;thich mau nao thi thay con so 1 (mau do) la duoc.
  (foreach ent2 lst2
(entdel ent2))))
(princ))
(defun LM:SubList ( lst start len ) (cond ((null lst) nil) ((< 0 start) (LM:SubList (cdr lst) (1- start) len)) ((null len) lst) ((< 0 len) (cons (car lst) (LM:SubList (cdr lst) start (1- len))))))

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

thanks a rất nhiều.

a có thể viết lisp này chọn nhiều đối tượng ko ak?

Giả sử file bình đồ e như vậy thì phải làm như lisp a lâu quá.

Hay có cách nào khác ko ak?

sdung Nova chẳng hạn để vạch ra sơ đồ tuyến ngay trên nó luôn. e tay ngang qua nên hạn chế rất nhiều, mong a thương giúp đở e cho chót luôn ak. Hi .

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

thanks a rất nhiều.

a có thể viết lisp này chọn nhiều đối tượng ko ak?

Giả sử file bình đồ e như vậy thì phải làm như lisp a lâu quá.

Hay có cách nào khác ko ak?

sdung Nova chẳng hạn để vạch ra sơ đồ tuyến ngay trên nó luôn. e tay ngang qua nên hạn chế rất nhiều, mong a thương giúp đở e cho chót luôn ak. Hi .

Lisp này chọn bao nhiêu đối tượng cũng được, miễn là các đối tượng được chọn thoả mãn:

1). Không có các đối tượng text ngoại lai, tức là text không phải là cao độ (trước và sau dấu chấm).

2). Khi 1 text trước dấu chấm được chọn thì phải có 1 text sau dấu chấm được chọn, và ngược lại.

Dựa vào đó mà bạn chọn cho khéo thôi.

  • Vote tăng 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

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  

×