Đến nội dung


Hình ảnh
- - - - -

lisp đẩy các đối tượng cách nhau 1 khoảng cách đều nhau?


  • Please log in to reply
8 replies to this topic

#1 namhai

namhai

    biết vẽ rectang

  • Members
  • PipPip
  • 81 Bài viết
Điểm đánh giá: 18 (tàm tạm)

Đã gửi 06 October 2009 - 08:51 AM

Chào các huynh!e đang gặp vấn đề khi phải sắp xếp các đối tượng (1 nhóm đối tượng) cách đều nhau, nếu phải căn chỉnh khoảng cách rồi move các nhóm đối tượng thì rất mất thời gian và lại không chính xác, vậy có cách nào giải quyết được vấn đề này không mong các huynh giúp đỡ?thanks các bác nhiều nhiều!!
P/S : Khi sắp xếp các đối tượng sẽ có 1 đối tượng làm gốc ( nghĩa là đối tượng đấy sẽ giữ nguyên vị trí, các đối tượng còn lại sẽ sắp xếp theo đối tượng gốc đấy) và có thể lựa chọn sắp xếp theo phương X, phương Y hoặc cả 2 phương
  • 0
Hãy làm việc hết mình rồi mọi điều tốt đẹp sẽ đến với bạn.....

#2 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3805 (đỉnh cao)

Đã gửi 06 October 2009 - 09:12 AM

Chào các huynh!e đang gặp vấn đề khi phải sắp xếp các đối tượng (1 nhóm đối tượng) cách đều nhau, nếu phải căn chỉnh khoảng cách rồi move các nhóm đối tượng thì rất mất thời gian và lại không chính xác, vậy có cách nào giải quyết được vấn đề này không mong các huynh giúp đỡ?thanks các bác nhiều nhiều!!
P/S : Khi sắp xếp các đối tượng sẽ có 1 đối tượng làm gốc ( nghĩa là đối tượng đấy sẽ giữ nguyên vị trí, các đối tượng còn lại sẽ sắp xếp theo đối tượng gốc đấy) và có thể lựa chọn sắp xếp theo phương X, phương Y hoặc cả 2 phương

Tue_NV không hiểu tại sao chủ đề này của bạn đã post lâu rồi. Nay sao lại post ở đây nữa???
http://www.cadviet.c...o...c=11716&hl=
  • 0

#3 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 06 October 2009 - 09:50 AM

Chào các huynh!e đang gặp vấn đề khi phải sắp xếp các đối tượng (1 nhóm đối tượng) cách đều nhau, nếu phải căn chỉnh khoảng cách rồi move các nhóm đối tượng thì rất mất thời gian và lại không chính xác, vậy có cách nào giải quyết được vấn đề này không mong các huynh giúp đỡ?thanks các bác nhiều nhiều!!
P/S : Khi sắp xếp các đối tượng sẽ có 1 đối tượng làm gốc ( nghĩa là đối tượng đấy sẽ giữ nguyên vị trí, các đối tượng còn lại sẽ sắp xếp theo đối tượng gốc đấy) và có thể lựa chọn sắp xếp theo phương X, phương Y hoặc cả 2 phương


Chào bạn Namhai,
Mong bạn hãy trình bày rõ hơn cái ý bạn muốn.
1/- Các đối tượng được chọn là loại đối tượng gì??? Có giống nhau hoàn toàn hay không???
2/- Mỗi lần sắp xếp lại một nhóm đối tượng riêng hay là sắp xếp tất cả các loại đối tượng một lần???
3/- Cách sắp xếp tính từ vị trí đã chọn ra sao ??? từ trái qua phải, từ trên xuông dưới, hay ngược lại, hay lấy vị trí chọn là vị trí trung tâm.....????
4/- Việc sắp xếp này có quan tâm tới trật tự phát sinh của các đối tượng hay không??? và nếu có thì theo nguyên tắc nào?????

Bạn nên cung cấp file mẫu và file kết quả bạn muốn để mọi người dễ hình dung.
Chúc bạn vui.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#4 namhai

namhai

    biết vẽ rectang

  • Members
  • PipPip
  • 81 Bài viết
Điểm đánh giá: 18 (tàm tạm)

Đã gửi 07 October 2009 - 07:52 AM

Chào bạn Namhai,
Mong bạn hãy trình bày rõ hơn cái ý bạn muốn.
1/- Các đối tượng được chọn là loại đối tượng gì??? Có giống nhau hoàn toàn hay không???
2/- Mỗi lần sắp xếp lại một nhóm đối tượng riêng hay là sắp xếp tất cả các loại đối tượng một lần???
3/- Cách sắp xếp tính từ vị trí đã chọn ra sao ??? từ trái qua phải, từ trên xuông dưới, hay ngược lại, hay lấy vị trí chọn là vị trí trung tâm.....????
4/- Việc sắp xếp này có quan tâm tới trật tự phát sinh của các đối tượng hay không??? và nếu có thì theo nguyên tắc nào?????

Bạn nên cung cấp file mẫu và file kết quả bạn muốn để mọi người dễ hình dung.
Chúc bạn vui.

e xin lỗi vì đã diễn đạt không rõ ràng, cảm ơn các bác đã quan tâm, đây là file mẫu, các bác xem qua có gì giúp đỡ e với
http://www.cadviet.c.../2/file_mau.rar
  • 0
Hãy làm việc hết mình rồi mọi điều tốt đẹp sẽ đến với bạn.....

#5 namhai

namhai

    biết vẽ rectang

  • Members
  • PipPip
  • 81 Bài viết
Điểm đánh giá: 18 (tàm tạm)

Đã gửi 07 October 2009 - 07:55 AM

Tue_NV không hiểu tại sao chủ đề này của bạn đã post lâu rồi. Nay sao lại post ở đây nữa???
http://www.cadviet.c...o...c=11716&hl=

vâng, đúng rồi bác Tue_NV à, chủ đề này e đã hỏi trên Cadviet rùi nhưng vẫn chưa tìm được đáp án và e nghĩ vấn đề của e chác là phải dùng đến lisp thì mới giải quyết được nên e mạo muội mở lại Topic này 1 lần nữa trong mục Autolisp, mong bác giúp đỡ!!
  • 0
Hãy làm việc hết mình rồi mọi điều tốt đẹp sẽ đến với bạn.....

#6 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 07 October 2009 - 02:56 PM

Với text thì bạn có thể sử dụng lisp này của mình.
Thực ra là gồm 3 lisp.
- Lệnh FT: căn lề text, lisp này mình đã post tại đây
- Lệnh DF: dãn dòng các text cho đều nhau.
- Lệnh DFX: dàn đều các text theo hàng ngang với khoảng cách đều nhau (khoảng cách từ điểm đầu text này đến điểm cuối của text kia)
Kết hợp 3 lệnh này trong quá trình sử dụng sẽ được cái bạn cần.

(defun c:ft()
(setq txt (ssget '((0 . "*TEXT"))))
(setq mau (entget (car (entsel "\nChon text chuan"))))
(command "undo" "begin")
(setq oldos (getvar "osmode"))
(setq olcol (getvar "CEColor"))
(setq ollay (getvar "Clayer"))
(setq olstyle (getvar "textstyle"))
(setq TB (textbox mau) LC (car TB) RC (cadr TB) di (distance LC RC) i 0)
(setq h (cdr(assoc 40 mau)))
(setq x1 (cdr(assoc 10 mau)))
(setq x2 (list (+ (car x1) (* di 0.5) (* -0.03 h)) (cadr x1)))
(setq x3 (list (+ (car x1) di (* -0.06 h)) (cadr x1)))
(setq canle (cond (canle) ("Left")))
(initget "Left Center Right Fit")
(setq canle (cond ((getkword (strcat "\Vi tri can le [Left/Center/Right/Fit/]<" canle ">"))) (canle)))
(repeat (sslength txt)
(setq txt_ent (entget (ssname txt i)))
(setq txt_val (cdr(assoc 1 txt_ent)))
(setq txt_st (cdr(assoc 7 txt_ent)))
(setq txt_lay (cdr(assoc 8 txt_ent)))
(setq txt_h (cdr(assoc 40 txt_ent)))
(setq txt_fctr (cdr(assoc 41 txt_ent)))
(setq txt_clr (cdr(assoc 62 txt_ent)))
(setq y1 (cdr(assoc 10 txt_ent)))
(if (cdr(assoc 43 txt_ent)) (setq txt_fctr 1 y1 (list (car y1) (- (cadr y1) txt_h))))
(setq pt1 (list (car x1) (cadr y1)))
(setq pt2 (list (car x2) (cadr y1)))
(setq pt3 (list (car x3) (cadr y1)))
(command "-style" txt_st "" "" txt_fctr "" "" "" "" "clayer" txt_lay "color" txt_clr "osmode" 0)
(if (eq canle "Left") (command "text" pt1 txt_h 0 txt_val))
(if (eq canle "Center") (command "text" "C" pt2 txt_h 0 txt_val))
(if (eq canle "Right") (command "text" "R" pt3 txt_h 0 txt_val))
(if (eq canle "Fit") (command "text" "F" pt1 pt3 txt_h txt_val))
(setq i (+ i 1))
(command "color" "bylayer")
);repeat
(setvar "textstyle" olstyle)
(setvar "Clayer" ollay)
(setvar "CECOLOR" olcol)
(setvar "osmode" oldos)
(command "erase" txt "")
(prompt"\n[CAN LE TEXT] by Thaistreetz - huuthais@yahoo.com\n")
(command "undo" "end")
);end
;=====================================================================
;dan deu khoang cach cac hang text theo phuong Y
;=====================================================================
(defun ss2ent (ss / sodt index lstent)
(setq sodt (if ss (sslength ss) 0)
index 0)
(repeat sodt
(setq ent (ssname ss index)
index (1+ index)
lstent (cons ent lstent)
);setq
);repeat
(reverse lstent)
)
(defun c:df()
(setq oldos (getvar "osmode"))
(setq ss (ssget '((0 . "*TEXT")))
lst (ss2ent ss)
lst (vl-sort lst '(lambda (e1 e2) (< (cadr (assoc 10 (entget e1))) (cadr (assoc 10 (entget e2))))))
lst (vl-sort lst '(lambda (e1 e2) (> (caddr (assoc 10 (entget e1))) (caddr (assoc 10 (entget e2))))))
);setq
(command "undo" "begin")
(setvar "osmode" 15359)
(setq kc (getdist "\n Nhap khoang cach giua cac text"))
(setq ddau (cdr(assoc 10 (entget(car lst)))) i 0 a2 (ssadd))
(setq mau (entget (car (entsel "\nChon text chuan"))))
(setq ptmau (cdr(assoc 10 mau)))
(setq ym (cadr ptmau))
(foreach e lst
(setq ent (entget e))
(setq dcuoi (cdr(assoc 10 ent)))
(setq yi (cadr dcuoi))
(setq ddauu (list (car dcuoi) (- (cadr ddau) (* i kc))))
(if (= yi ym) (setq ptgoc (list (car dcuoi) (- (cadr ddau) (* i kc)))))
(setvar "osmode" 0)
(command "move" e "" dcuoi ddauu)
(setq a2 (ssadd e a2))
(setq i (1+ i))
);foreach
(command "move" a2 "" ptgoc ptmau)
(setvar "osmode" oldos)
(prompt"\n[Paragraph TEXT] by Thaistreetz - huuthais@yahoo.com\n")
(command "undo" "end")
(Princ)
);end
;=====================================================================
;dan deu khoang cach cac text theo phuong X
;=====================================================================
(defun c:dfx()
(setq oldos (getvar "osmode"))
(setq ss (ssget '((0 . "*TEXT")))
lst (ss2ent ss)
lst (vl-sort lst '(lambda (e1 e2) (< (cadr (assoc 10 (entget e1))) (cadr (assoc 10 (entget e2))))))
lst (vl-sort lst '(lambda (e1 e2) (> (caddr (assoc 10 (entget e1))) (caddr (assoc 10 (entget e2))))))
);setq
(command "undo" "begin")
(setvar "osmode" 15359)
(setq kc (getdist "\n Nhap khoang cach giua cac text"))

(setq ddau (cdr(assoc 10 (entget(car lst)))) i 0 di 0 a2 (ssadd))
(setq mau (entget (car (entsel "\nChon text chuan"))))
(setq ptmau (cdr(assoc 10 mau)))
(setq xm (car ptmau))
(foreach e lst
(setq ent (entget e))
(setq pti (cdr(assoc 10 ent)))
(setq xi (car pti))
(setq ddauu (list (+ (car ddau) di (* i kc)) (cadr ddau)))
(if (= xi xm) (setq ptgoc (list (+ (car ddau) di (* i kc)) (cadr ddau))))
(setq TBi (textbox ent) LCi (car TBi) RCi (cadr TBi) dii (distance LCi RCi) di (+ di dii))
(setvar "osmode" 0)
(command "move" e "" pti ddauu)
(setq a2 (ssadd e a2))
(setq i (1+ i))
);foreach
(command "move" a2 "" ptgoc ptmau)
(setvar "osmode" oldos)
(prompt"\n[Dan deu khoang cach TEXT theo phuong ngang] by Thaistreetz - huuthais@yahoo.com\n")
(command "undo" "end")
(Princ)
);end

với yêu cầu như trong hình của bạn thì chỉ cần dùng 2 lệnh FT và DF là đủ.
  • 1

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#7 trieubb

trieubb

    biết vẽ ellipse

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

Đã gửi 07 October 2009 - 03:43 PM

Với text thì bạn có thể sử dụng lisp này của mình.
Thực ra là gồm 3 lisp.
- Lệnh FT: căn lề text, lisp này mình đã post tại đây
- Lệnh DF: dãn dòng các text cho đều nhau.
- Lệnh DFX: dàn đều các text theo hàng ngang với khoảng cách đều nhau (khoảng cách từ điểm đầu text này đến điểm cuối của text kia)
Kết hợp 3 lệnh này trong quá trình sử dụng sẽ được cái bạn cần.


(defun c:ft()
(setq txt (ssget '((0 . "*TEXT"))))
(setq mau (entget (car (entsel "\nChon text chuan"))))
(command "undo" "begin")
(setq oldos (getvar "osmode"))
(setq olcol (getvar "CEColor"))
(setq ollay (getvar "Clayer"))
(setq olstyle (getvar "textstyle"))
(setq TB (textbox mau) LC (car TB) RC (cadr TB) di (distance LC RC) i 0)
(setq h (cdr(assoc 40 mau)))
(setq x1 (cdr(assoc 10 mau)))
(setq x2 (list (+ (car x1) (* di 0.5) (* -0.03 h)) (cadr x1)))
(setq x3 (list (+ (car x1) di (* -0.06 h)) (cadr x1)))
(setq canle (cond (canle) ("Left")))
(initget "Left Center Right Fit")
(setq canle (cond ((getkword (strcat "\Vi tri can le [Left/Center/Right/Fit/]<" canle ">"))) (canle)))
(repeat (sslength txt)
(setq txt_ent (entget (ssname txt i)))
(setq txt_val (cdr(assoc 1 txt_ent)))
(setq txt_st (cdr(assoc 7 txt_ent)))
(setq txt_lay (cdr(assoc 8 txt_ent)))
(setq txt_h (cdr(assoc 40 txt_ent)))
(setq txt_fctr (cdr(assoc 41 txt_ent)))
(setq txt_clr (cdr(assoc 62 txt_ent)))
(setq y1 (cdr(assoc 10 txt_ent)))
(if (cdr(assoc 43 txt_ent)) (setq txt_fctr 1 y1 (list (car y1) (- (cadr y1) txt_h))))
(setq pt1 (list (car x1) (cadr y1)))
(setq pt2 (list (car x2) (cadr y1)))
(setq pt3 (list (car x3) (cadr y1)))
(command "-style" txt_st "" "" txt_fctr "" "" "" "" "clayer" txt_lay "color" txt_clr "osmode" 0)
(if (eq canle "Left") (command "text" pt1 txt_h 0 txt_val))
(if (eq canle "Center") (command "text" "C" pt2 txt_h 0 txt_val))
(if (eq canle "Right") (command "text" "R" pt3 txt_h 0 txt_val))
(if (eq canle "Fit") (command "text" "F" pt1 pt3 txt_h txt_val))
(setq i (+ i 1))
(command "color" "bylayer")
);repeat
(setvar "textstyle" olstyle)
(setvar "Clayer" ollay)
(setvar "CECOLOR" olcol)
(setvar "osmode" oldos)
(command "erase" txt "")
(prompt"\n[CAN LE TEXT] by Thaistreetz - huuthais@yahoo.com\n")
(command "undo" "end")
);end
;=====================================================================
;dan deu khoang cach cac hang text theo phuong Y
;=====================================================================
(defun ss2ent (ss / sodt index lstent)
(setq sodt (if ss (sslength ss) 0)
index 0)
(repeat sodt
(setq ent (ssname ss index)
index (1+ index)
lstent (cons ent lstent)
);setq
);repeat
(reverse lstent)
)
(defun c:df()
(setq oldos (getvar "osmode"))
(setq ss (ssget '((0 . "*TEXT")))
lst (ss2ent ss)
lst (vl-sort lst '(lambda (e1 e2) (< (cadr (assoc 10 (entget e1))) (cadr (assoc 10 (entget e2))))))
lst (vl-sort lst '(lambda (e1 e2) (> (caddr (assoc 10 (entget e1))) (caddr (assoc 10 (entget e2))))))
);setq
(command "undo" "begin")
(setvar "osmode" 15359)
(setq kc (getdist "\n Nhap khoang cach giua cac text"))
(setq ddau (cdr(assoc 10 (entget(car lst)))) i 0 a2 (ssadd))
(setq mau (entget (car (entsel "\nChon text chuan"))))
(setq ptmau (cdr(assoc 10 mau)))
(setq ym (cadr ptmau))
(foreach e lst
(setq ent (entget e))
(setq dcuoi (cdr(assoc 10 ent)))
(setq yi (cadr dcuoi))
(setq ddauu (list (car dcuoi) (- (cadr ddau) (* i kc))))
(if (= yi ym) (setq ptgoc (list (car dcuoi) (- (cadr ddau) (* i kc)))))
(setvar "osmode" 0)
(command "move" e "" dcuoi ddauu)
(setq a2 (ssadd e a2))
(setq i (1+ i))
);foreach
(command "move" a2 "" ptgoc ptmau)
(setvar "osmode" oldos)
(prompt"\n[Paragraph TEXT] by Thaistreetz - huuthais@yahoo.com\n")
(command "undo" "end")
(Princ)
);end
;=====================================================================
;dan deu khoang cach cac text theo phuong X
;=====================================================================
(defun c:dfx()
(setq oldos (getvar "osmode"))
(setq ss (ssget '((0 . "*TEXT")))
lst (ss2ent ss)
lst (vl-sort lst '(lambda (e1 e2) (< (cadr (assoc 10 (entget e1))) (cadr (assoc 10 (entget e2))))))
lst (vl-sort lst '(lambda (e1 e2) (> (caddr (assoc 10 (entget e1))) (caddr (assoc 10 (entget e2))))))
);setq
(command "undo" "begin")
(setvar "osmode" 15359)
(setq kc (getdist "\n Nhap khoang cach giua cac text"))

(setq ddau (cdr(assoc 10 (entget(car lst)))) i 0 di 0 a2 (ssadd))
(setq mau (entget (car (entsel "\nChon text chuan"))))
(setq ptmau (cdr(assoc 10 mau)))
(setq xm (car ptmau))
(foreach e lst
(setq ent (entget e))
(setq pti (cdr(assoc 10 ent)))
(setq xi (car pti))
(setq ddauu (list (+ (car ddau) di (* i kc)) (cadr ddau)))
(if (= xi xm) (setq ptgoc (list (+ (car ddau) di (* i kc)) (cadr ddau))))
(setq TBi (textbox ent) LCi (car TBi) RCi (cadr TBi) dii (distance LCi RCi) di (+ di dii))
(setvar "osmode" 0)
(command "move" e "" pti ddauu)
(setq a2 (ssadd e a2))
(setq i (1+ i))
);foreach
(command "move" a2 "" ptgoc ptmau)
(setvar "osmode" oldos)
(prompt"\n[Dan deu khoang cach TEXT theo phuong ngang] by Thaistreetz - huuthais@yahoo.com\n")
(command "undo" "end")
(Princ)
);end

với yêu cầu như trong hình của bạn thì chỉ cần dùng 2 lệnh FT và DF là đủ.


Bác bảo là các đối tượng cơ mà
thế mà làm được với mỗi TEXT
còn các đối tượng khác như LINE, PLINE, POLYLINE.... thì sao bác????

  • 0

#8 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 07 October 2009 - 03:57 PM

Bác bảo là các đối tượng cơ mà
thế mà làm được với mỗi TEXT
còn các đối tượng khác như LINE, PLINE, POLYLINE.... thì sao bác????

Bạn thử quote lại cái chỗ tôi bảo là "Các đối tuợng" hộ tôi cái
Mắt để đâu vậy? Có đọc không?

Với text thì bạn có thể sử dụng lisp này của mình.

Với mỗi đối tuợng khác nhau thì thuộc tính khác nhau nên có cách làm việc khác nhau. khi nêu yêu cầu fải nêu rõ đối tuợng mà lisp tác động đến là gì? không thể đánh đồng text và các curve là một được. hãy nhớ cho điều này. OK?
  • 1

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#9 w1nDream

w1nDream

    biết lệnh ddedit

  • Members
  • PipPipPipPip
  • 293 Bài viết
Điểm đánh giá: 73 (tàm tạm)

Đã gửi 24 December 2012 - 04:11 PM

Mình cũng đang có 1 lisp giãn text tuy nhiên lúc giãn xong thì các text lại bị thay đổi thứ tự và bị "nhẩy" sang trái.Mong các bác có thể sửa hộ em với


(defun c:gc ()
(BLIP)
(command "redraw")
(prompt "\nSelect text objects to evenly space: ")
(setq ssText (ssget '((0 . "TEXT")))) ; select text
(setq ssNumber (sslength ssText) ; lines of text
ssIndex ssNumber ; pointer
ssY_Handles '() ; list of Y values and Handles
dYfactor 1.05 ; default Y displacement factor
)
(repeat ssNumber
(setq ssIndex (- ssIndex 1))
(setq eName (ssname ssText ssIndex)); entity name
(setq eData (entget eName))
(setq eY (car (assoc '10 eData))) ; entity Y location value
(setq eYe (/ eY 100000)) ; assure correct ordering
(setq eYe (+ eYe 5))
(setq eYe (rtos eYe 2 8)) ; change to a string
(setq eHnd (cdr (assoc '5 eData))) ; entity handle
(setq ssY_Handles
(cons (strcat eYe "*" eHnd) ; add string to
ssY_Handles ; list
)
)
);repeat
(setq ssY_Handles
(acad_strlsort ssY_Handles) ; sort in order of Y value
)
(setq ssIndex ssNumber ; pointer
ssY '() ; sorted list of Y values
ssHandles '() ; sorted list of handles
)
(repeat ssNumber
(setq ssIndex (- ssIndex 1))
(setq eY_H ; entity Y value and handle
(nth ssIndex ssY_Handles)
)
(setq eSL (strlen eY_H)) ; entity string length
(setq eSLIndex 1) ; pointer
(repeat eSL
(if (/=
(substr eY_H eSLIndex 1) ; if substring is not "-"
"*"
)
(setq eSLIndex (+ eSLIndex 1)); go to next substring
)
); repeat
(setq eHnd
(substr eY_H (+ eSLIndex 1) eSL) ; entity handle
)
(setq
eName (handent eHnd) ; get name of entity
eData (entget eName) ; get entity data
eText (assoc 1 eData) ; get text
lName (assoc '-1 eData)
)
(if (= (- ssNumber 1) ssIndex) ; if this is first line of text
(progn
(setq
eX (cadr (assoc '10 eData)) ; X location value
eY (caddr (assoc '10 eData)) ; Y location
eZ (cadddr(assoc '10 eData)) ; Z location
eX1 (cadr (assoc '11 eData)) ; X location value
eY1 (caddr (assoc '11 eData)) ; Y location
eZ1 (cadddr(assoc '11 eData)) ; Z location
eH (cdr (assoc '40 eData)) ; text height
eColor (assoc 62 eData) ; color
); setq
(if (not eColor) (setq
eData (subst '(62 . 256) (assoc 62 eData) eData))
)
(setq
feData eData
)
);progn
(progn
(setq eX (- eX (* eH dYfactor))) ; otherwise decrease y value
(setq eX1 (- eX1 (* eH dYfactor))) ; otherwise decrease y1 value
)
);if
(setq eXYZ (list 10 eX eY eZ ))
(setq eXYZ1 (list 11 eX1 eY1 eZ1))
(setq eData feData)
(setq eData (subst eText (assoc 1 eData) eData))
(setq eData (subst eXYZ (assoc '10 eData) eData))
(setq eData (subst eXYZ1 (assoc '11 eData) eData))
(setq eData (subst (cons 5 eHnd) (assoc 5 eData) eData))
(setq eData (subst lName (assoc -1 eData) eData))
(entmod eData) ; modify text entity
); repeat
(unblip)
)
(defun BLIP ()
(setq sblip (getvar "blipmode")
scmde (getvar "cmdecho")
)
(setvar "blipmode" 0)
(setvar "cmdecho" 0)
(princ)
)
(defun UNBLIP ()
(setvar "blipmode" sblip)
(setvar "cmdecho" scmde)
(princ)
)
(princ)
:blush:
  • 0
__Tâm tựa lưu thủY__
Vi nhân nan