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.
bachngoctung

Lisp Ghép Text Cần Giúp Đỡ

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

Doan Van Ha    2.676

Trong bài toán tìm cặp, theo ketxu nên dùng while để loại bỏ những thằng đã xét rồi ^^

Hôm trước có đọc 1 bài nói rằng nếu dùng được cả repeat, while, foreach thì nên dùng foreach để tăng tốc độ (dựa vào kinh nghiệm người ta chứ không thấy sách vở nói).

Nghĩ rằng dùng while để loại bớt thì số objects xét càng ít dần đi, cũng tăng tốc độ và rất có lý.

Nhưng, hình như foreach nó cũng loại dần những object đã xét chứ nhỉ?

Tốc độ là 1 vấn đề cực quan trọng. Rất muốn bác nào có kinh nghiệm thảo luân về vấn đề này cái thì sướng lắm!

  • 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
Doan Van Ha    2.676

Thanks 2 bác. Bác Ha cho e hỏi là lisp này e thấy chỉ dùng đựoc trong bản vẽ e up lên, e thử sang bản khác lại không dùng đựoc. Em không rành về lisp nên mong bác giúp đỡ vì em có làm rất nhiều bản vẽ như thế này.

Post bản vẽ ấy lên. Nhớ là del bớt cho nó nhẹ nghe!

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
ketxu    2.652

Trong trường hợp dùng 2 vòng foreach lồng nhau thì lại khác ạ. Vòng lặp foreach thứ 2 của bác ứng với mỗi item trong lst1 sẽ luôn kiểm tra lại lần lượt từng item trong lst2, bất kể trong lst2 đó đã có 1 thằng ăn cặp với item cũ của lst1 rồi ^^

Về cá nhân thì ketxu thích viết foreach do nó dễ hình dung, nhưng dạo này qua 1 số kiểm nghiệm lại thích dùng mapcar hoặc while hơn ^^

  • 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

Bác Doan Van Ha coi dùm e. Em làm nhiều về vấn đề này. Thường text cao độ bị tách thành 2 text. Text phần nguyên lớn hơn text phần thập phân. Bác sửa e cái lisp trên để có thể làm cho tất cả bản vẽ giống như trên. Thanks bác nhiều.

http://www.cadviet.com/upfiles/3/76993_drawing2.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
Doan Van Ha    2.676

Bác Doan Van Ha coi dùm e. Em làm nhiều về vấn đề này. Thường text cao độ bị tách thành 2 text. Text phần nguyên lớn hơn text phần thập phân. Bác sửa e cái lisp trên để có thể làm cho tất cả bản vẽ giống như trên. Thanks bác nhiều.

http://www.cadviet.c...93_drawing2.dwg

Bạn gởi lên 2 bản vẽ, cuối cùng không thể tìm ra quy luật cho các cặp text của bạn để mần lisp chính xác được!!!

Tôi chỉ mần theo 1 nguyên tắc: chọn từng cặp (số lớn, số bé) gần nhau nhất và nối chúng lại.

Do đó, hãy kiểm tra bản vẽ để không có thằng text ngoại lai nào lọt vào đó.

Không biết bản vẽ thứ 3, 4, 5... thì nó thế nào nữa đây.

Đồng ý thì mần?

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

Đúng rùi đó bác, 2 text này thì text phần nguyên có height lớn hơn, phần thập phân thì height nhỏ hơn. Nhưng e dùng lisp "ha" sang bản vẽ khác cùng tính chất thì ko chọn đựoc text, hình như phải chuyển layer "SOLON-2011" & "SOBE-2011" thì đựoc, nhưng lại ko nối 2 text lại được. Bác xem hộ e nhé.Thanks 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
Doan Van Ha    2.676

Đúng rùi đó bác, 2 text này thì text phần nguyên có height lớn hơn, phần thập phân thì height nhỏ hơn. Nhưng e dùng lisp "ha" sang bản vẽ khác cùng tính chất thì ko chọn đựoc text, hình như phải chuyển layer "SOLON-2011" & "SOBE-2011" thì đựoc, nhưng lại ko nối 2 text lại được. Bác xem hộ e nhé.Thanks bác!

Lisp này xử lý theo height của 2 nhóm text. Yêu cầu text số lớn phải có height lớn hơn text số nhỏ. Các text phải đi liền từng cặp, không có text "ngoại lai" trong đó.

Vì các text trên các bản vẽ bạn gởi là rất "vô kỹ luật" nên hết sức thận trọng khi chọn chúng!!!

;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

Cảm ơn bạn nhiều quá. Mình cũng thấy đống text này vô kỷ luật, nhưng hình như bạn hiểu lầm ý mình

+ Minh nói Text có height cao hơn sẽ là phần nguyên, height nhỏ hơn là phần thập phân, ví dụ cao độ: 1.3 thi gồm 2 text : text 1 có height cao hơn, còn text 3 có height nhỏ hơn.Đống text mình up nó có quy luật này đó. Bạn xem lại giúp mình nha.

+ Nối 2 text gần nhau như bên trên bạn đã làm rù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
ketxu    2.652

@xuandung87hp : file bản vẽ của bạn mỗi cặp To-Nhỏ có khi đi kèm point, nhưng lại có khi k đi kèm Point nào. Cặp này lúc trước thì khác layer, n lúc sau lại giống layer. CÓ Text (theo mình nghĩ là số chẵn) nên nằm thui lui 1 mình, chẳng có thằng thập phân nào đi kèm. Có text lại chỉ có mỗi thập phân (chắc 0.3)

=> Kết luận là : khó lường, vì vậy đừng trách bác ĐVH

 

@bác ĐVH : đoạn (and (alert "Yeu cau so luong 2 nhom Text phai bang nhau!") (exit)) sẽ không thực hiện theo như ý bác muốn đâu, vì alert luôn trả về Nil :)

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
Doan Van Ha    2.676

Cảm ơn bạn nhiều quá. Mình cũng thấy đống text này vô kỷ luật, nhưng hình như bạn hiểu lầm ý mình

+ Minh nói Text có height cao hơn sẽ là phần nguyên, height nhỏ hơn là phần thập phân, ví dụ cao độ: 1.3 thi gồm 2 text : text 1 có height cao hơn, còn text 3 có height nhỏ hơn.Đống text mình up nó có quy luật này đó. Bạn xem lại giúp mình nha.

+ Nối 2 text gần nhau như bên trên bạn đã làm rùi

Bạn xem lại cách dùng lệnh HA2 này nhé:

1). Chọn text lớn làm mẫu: bấm chọn vào text trước dấu chấm.

2). Chọn text bé làm mẫu: bấm chọn text sau dấu chấm.

3). Chọn tất cả text.

  • 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
Doan Van Ha    2.676

@bác ĐVH : đoạn (and (alert "Yeu cau so luong 2 nhom Text phai bang nhau!") (exit)) sẽ không thực hiện theo như ý bác muốn đâu, vì alert luôn trả về Nil :)

Ý muốn là nếu nhóm text chọn không chẵn thì thoát mà!

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
ketxu    2.652

Hàm and thoát ngay sau khi thực hiện xong alert bác ạ ^^ Bác thay bằng Or thì ok.

 

Hàm And (Điều kiện 1 Điều Kiện 2......Điều kiện n) sẽ :

- Duyệt qua lần lượt các điều kiện 1,2...n và :

+ Trả về T nếu tất cả các điều kiện 1, 2 ...n đều trả về khác nil(chú ý là khác Nil chứ không phải T nhé)

+ Trả về nil nếu phát hiện 1 thằng Nil. Tức nếu thằng điều kiện thứ n-x trả về nil, toàn bộ hàm And sẽ trả về Nil luôn mà không kiểm tra tiếp các điều kiện thứ n-x +1 đến n

  • 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
Doan Van Ha    2.676

Hàm and thoát ngay sau khi thực hiện xong alert bác ạ ^^ Bác thay bằng Or thì ok.

Trong trường hợp này chắc chỉ cần alert thôi, chứ chẳng cần and hoặc or, và bỏ exit luôn nhỉ! Đằng nào nó cũng thoát!

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

Bạn xem lại cách dùng lệnh HA2 này nhé:

1). Chọn text lớn làm mẫu: bấm chọn vào text trước dấu chấm.

2). Chọn text bé làm mẫu: bấm chọn text sau dấu chấm.

3). Chọn tất cả text.

Thanks bạn nhiều.Chúc bạn lun thành công

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
ketxu    2.652

Vừa nãy quên k nói thêm là nếu dùng Forech cũng được nếu thay vì dùng lst2 cố định, bác dùng lst2 thay đổi, trong trường hợp này là :

(Foreach item_to lst1

 

 

( Foreach item_be (vl-remove ent_gần_nhất lst2)

.....

)

  • 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

Lisp chạy rất tốt, ko bít Ha có thể sửa cho e, đối tượng nào ghép thành công chuyển sang màu khác để đỡ bị lẫn. Vì nếu có 2 text bị chồng lên thì 2 nhóm sẽ ko bằng nhau. Thanks 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
Doan Van Ha    2.676

Lisp chạy rất tốt, ko bít Ha có thể sửa cho e, đối tượng nào ghép thành công chuyển sang màu khác để đỡ bị lẫn. Vì nếu có 2 text bị chồng lên thì 2 nhóm sẽ ko bằng nhau. Thanks bác!

Tôi đã sửa cho bạn, vẫn link cũ, màu đỏ (là số 1). Bạn thích màu nào thì tự sửa dòng đó trong lisp nhé!

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
Doan Van Ha    2.676

Bác Doan Van Ha có thể giúp e chỉnh sửa đoạn code như sau được không ạ:

- Chọn Text lớn :

- Chọn Text nhỏ :

- Chọn dấu thập phân : yêu cầu đặt ra

+ vị trí của dấu thập phân là vị trí đặt text mới sau khi đã ghép 2 text lại với nhau (có thể chọn 1 lần,các điểm sau tự động tính toán tương tự)

+ loại bỏ chúng sau khi 2 text được ghép

Em cảm ơn ạ

Đây bạn!

;Doan Van Ha - CADViet.com - Ngay 19-4-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. Vi tri tai dau cham "."
;Can than khi chon Text: cac Text phai hop thanh tung bo 3.
(defun C:HA3(/ ent1 ent2 ent3 hgt1 hgt2 hgt3 ss3 lst3 pt ss1 ss2)
(setq ent1 (car (entsel "\nChon text so lon lam mau: ")) ent2 (car (entsel "\nChon text so be lam mau: ")) ent3 (car (entsel "\nChon text dau cham lam mau: ")))
(setq hgt1 (cdr (assoc 40 (entget ent1))) hgt2 (cdr (assoc 40 (entget ent2))) hgt3 (cdr (assoc 40 (entget ent3))))
(princ "\nChon tap hop cac Text dau cham...")
(setq ss3 (ssget (list (cons 0 "TEXT") (cons 40 hgt3) (cons 1 "."))))
(setq lst3 (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss3))))
(foreach ent3 lst3
 (setq pt (cdr (assoc 10 (entget ent3))))
 (setq ss1 (ssget "c" (polar pt (* 1.25 pi) hgt3) (polar pt (* 0.25 pi) hgt3) (list (cons 0 "TEXT") (cons 40 hgt1) (cons 1 "~*[~0-9]*"))))
 (setq ss2 (ssget "c" (polar pt (* 1.25 pi) hgt3) (polar pt (* 0.25 pi) hgt3) (list (cons 0 "TEXT") (cons 40 hgt2) (cons 1 "~*[~0-9]*"))))
 (if (/= (sslength ss1) (sslength ss2)) (alert "Text so lon va Text so nho khong di lien tung cap.")
  (progn
(entmod (subst (cons 1 (strcat (cdr (assoc 1 (entget (ssname ss1 0)))) "." (cdr (assoc 1 (entget (ssname ss2 0)))))) (assoc 1 (entget (ssname ss1 0))) (entget (ssname ss1 0))))
(entmod (subst (cons 10 pt) (assoc 10 (entget (ssname ss1 0))) (entget (ssname ss1 0))))
(entdel (ssname ss2 0)) (entdel ent3))))
(princ))

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

Đây bạn!

 

Dạ em cảm ơn ạ.Lisp đạt 90% yêu cầu rồi ạ

 

Cho em hỏi là tại sao lại có sự chênh lệch tọa độ theo phương X là 1.5m ạ

Tọa độ Text "." trước khi ghép : (X=371129.890 Y=311087.465 Z= 0.000)

Tọa độ Text "." sau khi ghép : (X=371128.390 Y=311087.465 Z= 0.000)

Mốc bàn giao cho bên thi công mà lệch thế này cũng căng đấy ạ.

 

+ Em trình bày ý tưởng như sau, bác Doan Van Ha giúp em sửa code giúp em nhé :

- Chọn text lớn

- Chọn text nhỏ

- Chọn text "." (xóa text "." --> text ghép có tọa độ = tọa độ text "." )

- Đổi dấu text vừa ghép Y or N (Y thì mặc định = -1 và N thì giữ nguyên)

- Chọn độ chính xác cho text sau khi ghép ( Giả sử với text =10.1 chọn pre =1 thì kết quả ra 10.1, chọn pre = 2 thì kết quả ra 10.10,và tối đa chọn pre =3 thì kết quả ra 10.100 )

- Tạo 1 point tại tọa độ text ghép có cao độ z = text ghép

-Kết quả hiển thị là Point có thuộc tính z = text ghép

 

Mong anh giúp đỡ ạ. Em cảm ơn.

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
Doan Van Ha    2.676

 

Dạ em cảm ơn ạ.Lisp đạt 90% yêu cầu rồi ạ

 

Cho em hỏi là tại sao lại có sự chênh lệch tọa độ theo phương X là 1.5m ạ

Tọa độ Text "." trước khi ghép : (X=371129.890 Y=311087.465 Z= 0.000)

Tọa độ Text "." sau khi ghép : (X=371128.390 Y=311087.465 Z= 0.000)

Mốc bàn giao cho bên thi công mà lệch thế này cũng căng đấy ạ.

 

+ Em trình bày ý tưởng như sau, bác Doan Van Ha giúp em sửa code giúp em nhé :

- Chọn text lớn

- Chọn text nhỏ

- Chọn text "." (xóa text "." --> text ghép có tọa độ = tọa độ text "." )

- Đổi dấu text vừa ghép Y or N (Y thì mặc định = -1 và N thì giữ nguyên)

- Chọn độ chính xác cho text sau khi ghép ( Giả sử với text =10.1 chọn pre =1 thì kết quả ra 10.1, chọn pre = 2 thì kết quả ra 10.10,và tối đa chọn pre =3 thì kết quả ra 10.100 )

- Tạo 1 point tại tọa độ text ghép có cao độ z = text ghép

-Kết quả hiển thị là Point có thuộc tính z = text ghép

Mong anh giúp đỡ ạ. Em cảm ơn.

Tôi nghĩ bạn nên đi theo hướng này là hay nhất:

Sau khi nối text xong thì kết quả xuất ra tại mỗi cụm (gồm 2 text số và 1 text dấu chấm) là 1 block_att gồm 1 đối tượng point và 1 đối tượng att, trong đó:

- Att là giá tri của text nối.

- Point là điểm ngay tại dấu chấm.

Bạn đồng ý không?

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ôi nghĩ bạn nên đi theo hướng này là hay nhất:

Sau khi nối text xong thì kết quả xuất ra tại mỗi cụm (gồm 2 text số và 1 text dấu chấm) là 1 block_att gồm 1 đối tượng point và 1 đối tượng att, trong đó:

- Att là giá tri của text nối.

- Point là điểm ngay tại dấu chấm.

Bạn đồng ý không?

Tức là kết quả sẽ ra 1 block thuộc tính có point nằm tại dấu "." ạ? Có thể chỉ tạo ra text mới nằm trên 1 layer khác + có màu khác, text cũ giữ nguyên ( có thể xóa bằng lệnh sau cũng đc) . Text mới có z = chính giá trị text mới ?

Anh có thể giúp e như thế đc 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
Doan Van Ha    2.676

Tức là kết quả sẽ ra 1 block thuộc tính có point nằm tại dấu "." ạ? Có thể chỉ tạo ra text mới nằm trên 1 layer khác + có màu khác, text cũ giữ nguyên ( có thể xóa bằng lệnh sau cũng đc) . Text mới có z = chính giá trị text mới ?

Anh có thể giúp e như thế đc k ạ?

Tất nhiên là được! Đợi tối hoặc mai nhé!

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
Tue_NV    3.841

 

Dạ em cảm ơn ạ.Lisp đạt 90% yêu cầu rồi ạ

 

Cho em hỏi là tại sao lại có sự chênh lệch tọa độ theo phương X là 1.5m ạ

Tọa độ Text "." trước khi ghép : (X=371129.890 Y=311087.465 Z= 0.000)

Tọa độ Text "." sau khi ghép : (X=371128.390 Y=311087.465 Z= 0.000)

Mốc bàn giao cho bên thi công mà lệch thế này cũng căng đấy ạ.

 

+ Em trình bày ý tưởng như sau, bác Doan Van Ha giúp em sửa code giúp em nhé :

- Chọn text lớn

- Chọn text nhỏ

- Chọn text "." (xóa text "." --> text ghép có tọa độ = tọa độ text "." )

- Đổi dấu text vừa ghép Y or N (Y thì mặc định = -1 và N thì giữ nguyên)

- Chọn độ chính xác cho text sau khi ghép ( Giả sử với text =10.1 chọn pre =1 thì kết quả ra 10.1, chọn pre = 2 thì kết quả ra 10.10,và tối đa chọn pre =3 thì kết quả ra 10.100 )

- Tạo 1 point tại tọa độ text ghép có cao độ z = text ghép

-Kết quả hiển thị là Point có thuộc tính z = text ghép

 

Mong anh giúp đỡ ạ. Em cảm ơn.

Không biết code này đúng ý bạn không?

(defun C:HA3(/ ent1 ent2 ent3 hgt1 hgt2 hgt3 ss3 lst3 pt ss1 ss2 hei strmoi dau)
(setq ent1 (car (entsel "\nChon text so lon lam mau: ")) ent2 (car (entsel "\nChon text so be lam mau: ")) ent3 (car (entsel "\nChon text dau cham lam mau: ")))
 (setq sole (getint "\nSo le thap phan :"))
 (initget "Y N")
 (setq ans (getkword "\n Doi dau Text <Y/N> :"))
 (if (= (strcase ans) "Y") (setq dau "-"))
(setq hgt1 (cdr (assoc 40 (entget ent1))) hgt2 (cdr (assoc 40 (entget ent2))) hgt3 (cdr (assoc 40 (entget ent3))))
(princ "\nChon tap hop cac Text dau cham...")
(setq ss3 (ssget (list (cons 0 "TEXT") (cons 40 hgt3) (cons 1 "."))))
(setq lst3 (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss3))))
(foreach ent3 lst3
 (setq pt (cdr (assoc 10 (entget ent3)))) (setq hei (/ (cdr (assoc 40 (entget ent3))) 4.0))
 (setq ss1 (ssget "c" (polar pt (* 1.25 pi) hgt3) (polar pt (* 0.25 pi) hgt3) (list (cons 0 "TEXT") (cons 40 hgt1) (cons 1 "~*[~0-9]*"))))
 (setq ss2 (ssget "c" (polar pt (* 1.25 pi) hgt3) (polar pt (* 0.25 pi) hgt3) (list (cons 0 "TEXT") (cons 40 hgt2) (cons 1 "~*[~0-9]*"))))
 (if (/= (sslength ss1) (sslength ss2)) (alert "Text so lon va Text so nho khong di lien tung cap.")
  (progn
   (setq strmoi (strcat dau (rtos (atof (strcat (cdr (assoc 1 (entget (ssname ss1 0)))) "." (cdr (assoc 1 (entget (ssname ss2 0)))))) 2 sole)) )

   (entmod (subst (cons 1  strmoi) (assoc 1 (entget (ssname ss1 0))) (entget (ssname ss1 0))))
   (entmod (subst (cons 10 pt) (assoc 10 (entget (ssname ss1 0))) (entget (ssname ss1 0))))
   (entdel (ssname ss2 0)) (entdel ent3)))
   	(entmake (list (cons 0 "TEXT") (cons 1 strmoi) (cons 10 pt) (cons 11 pt) (cons 40 hei) (cons 72 1) (cons 73 2)))
     (entmake (list (cons 0 "POINT") (cons 10 pt) ))
  )
(princ))

  • 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


×