Đến nội dung


Hình ảnh

[Yêu cầu] Đặt chiều cao text, mtext và chỉnh Linetype scale ?


  • Please log in to reply
35 replies to this topic

#1 840244

840244

    biết zoom

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

Đã gửi 27 November 2011 - 08:39 AM

Em cần 2 lisp như ở tiêu đề. Sở dĩ phải dùng lisp vì mình hay phải chọn đối tượng, Mo rồi chỉnh xong thì tắt cái bảng properties đó đi. Mất công bật tắt khi chỉ phải chỉnh 1 thông số. CAD 2007 không có tính năng auto hide cái bảng đó. Xin các anh viết giúp em ạ !

Bài viết đã được chỉnh sửa nội dung bởi ketxu: 27 November 2011 - 12:18 PM
Sai quy định

  • 0

#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 27 November 2011 - 09:33 AM

Em cần 2 lisp như ở tiêu đề. Sở dĩ phải dùng lisp vì mình hay phải chọn đối tượng, Mo rồi chỉnh xong thì tắt cái bảng properties đó đi. Mất công bật tắt khi chỉ phải chỉnh 1 thông số. CAD 2007 không có tính năng auto hide cái bảng đó. Xin các anh viết giúp em ạ !

Bạn dùng lệnh ScaleText và lệnh Chprop
  • 0

#3 840244

840244

    biết zoom

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

Đã gửi 27 November 2011 - 10:17 AM

Cảm ơn anh. Nhưng cái em cần là dạng:
Command: HT
select object: 3object selected
New hight: 10 => text, mtext cao 10

Command: LT
select object: 3object selected
new scale: 100 => Line type scale của 3 đối tượng đó là 100
  • 0

#4 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 27 November 2011 - 12:01 PM

Cảm ơn anh. Nhưng cái em cần là dạng:
Command: HT
select object: 3object selected
New hight: 10 => text, mtext cao 10

Command: LT
select object: 3object selected
new scale: 100 => Line type scale của 3 đối tượng đó là 100


Thay đổi chiều cao Text/Mtext

;Doan Van Ha - CADViet.com. 27-11-2011. Thay doi chieu cao Text/Mtext.
(defun C:HT (/ ss i heig size)
(vl-load-com)
(setq i 0)
(princ "\nChon cac Text/Mtext can thay doi chieu cao...")
(setq ss (ssget '((-4 . "<OR") (0 . "MTEXT") (0 . "TEXT") (-4 . "OR>"))))
(if ss
(progn
(setq size (getvar "textsize"))
(setq hei (getdist (strcat "\nSpecify text height <" (rtos size 2) ">: ")))
(if (= hei nil) (setq hei size))
(repeat (sslength ss)
(vla-put-height (vlax-ename->vla-object (ssname ss i)) hei)
(setq i (1+ i)))))
(princ))

  • 2

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


#5 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 27 November 2011 - 12:18 PM

840244 chú ý quy định về đặt yêu cầu ở box nhé!

Đặt Linetype:

(defun C:test ( / ss d);
(grtext -1 "Free Lisp from Cadviet @Ketxu")
(cond ( (and (setq ss (ssget (list (cons 0 "*LINE,ARC,CIRCLE"))))
(setq d (getreal "\nLineType Scale :"))
(vl-load-com)
(setq ss (vla-get-ActiveSelectionSet (vla-get-ActiveDocument (vlax-get-acad-object))))
)
(vlax-for obj ss (vla-put-LinetypeScale obj d))
)
((princ "\nError!"))
)
(princ)
)

  • 2

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#6 840244

840244

    biết zoom

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

Đã gửi 27 November 2011 - 02:08 PM


Thay đổi chiều cao Text/Mtext


;Doan Van Ha - CADViet.com. 27-11-2011. Thay doi chieu cao Text/Mtext.
(defun C:HT (/ ss i heig size)
(vl-load-com)
(setq i 0)
(princ "\nChon cac Text/Mtext can thay doi chieu cao...")
(setq ss (ssget '((-4 . "<OR") (0 . "MTEXT") (0 . "TEXT") (-4 . "OR>"))))
(if ss
(progn
(setq size (getvar "textsize"))
(setq hei (getdist (strcat "\nSpecify text height <" (rtos size 2) ">: ")))
(if (= hei nil) (setq hei size))
(repeat (sslength ss)
(vla-put-height (vlax-ename->vla-object (ssname ss i)) hei)
(setq i (1+ i)))))
(princ))



Cảm ơn anh DVH, nhưng anh xem lại cái Rtos giúp em với. Nó luôn luôn lưu giá trị là 2, mà cái cần lưu là giá trị nhập của lần trước ạ !
  • 0

#7 840244

840244

    biết zoom

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

Đã gửi 27 November 2011 - 02:09 PM

840244 chú ý quy định về đặt yêu cầu ở box nhé!

Đặt Linetype:


(defun C:test ( / ss d);
(grtext -1 "Free Lisp from Cadviet @Ketxu")
(cond ( (and (setq ss (ssget (list (cons 0 "*LINE,ARC,CIRCLE"))))
(setq d (getreal "\nLineType Scale :"))
(vl-load-com)
(setq ss (vla-get-ActiveSelectionSet (vla-get-ActiveDocument (vlax-get-acad-object))))
)
(vlax-for obj ss (vla-put-LinetypeScale obj d))
)
((princ "\nError!"))
)
(princ)
)

Thanks anh KETXU nhìu nhé !
  • 0

#8 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 27 November 2011 - 03:34 PM

Cảm ơn anh DVH, nhưng anh xem lại cái Rtos giúp em với. Nó luôn luôn lưu giá trị là 2, mà cái cần lưu là giá trị nhập của lần trước ạ !

Sửa lại theo y/c của bạn đây.

;Doan Van Ha - CADViet.com. 27-11-2011. Thay doi chieu cao Text/Mtext.
(defun C:HT (/ ss i hei)
(vl-load-com)
(setq i 0)
(princ "\nChon cac Text/Mtext can thay doi chieu cao...")
(setq ss (ssget '((-4 . "<OR") (0 . "MTEXT") (0 . "TEXT") (-4 . "OR>"))))
(if ss
(progn
(or size (setq size (getvar "textsize")))
(setq hei (getdist (strcat "\nSo chu so thap phan <" (rtos size 2) ">: ")))
(if (= hei nil) (setq hei size) (setq size hei))
(repeat (sslength ss)
(vla-put-height (vlax-ename->vla-object (ssname ss i)) hei)
(setq i (1+ i)))))
(princ))

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


#9 840244

840244

    biết zoom

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

Đã gửi 27 November 2011 - 06:23 PM

hì.Ngon rồi. Lúc em post yêu cầu lên em có post thêm cái dòng nhờ anh cho thêm cái dòng lệnh hiển thị chiều cao text hiện tại để mình tiện so sánh ( nếu nó có nhiều text được chọn có chiều cao khác nhau thì hiển thị cái đầu tiên được chọn ) nhưng chắc do mạng lỗi sao ý nên nó không cập nhật được. hic hic ! Lúc nào rảnh anh thêm giúp em nhé ! Thanks anh nhiều ạ !
Em thêm cái dòng đó vào mà ko đc. hì

;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=60254&pid=183606&st=0&#entry183606
;Doan Van Ha - CADViet.com. 27-11-2011. Thay doi chieu cao Text/Mtext.
(defun C:HTT (/ ss i hei)
(vl-load-com)
(setq i 0)
(princ "\nChon cac Text/Mtext can thay doi chieu cao...")
(setq ss (ssget '((-4 . "<OR") (0 . "MTEXT") (0 . "TEXT") (-4 . "OR>"))))
(if ss
(progn
(or size (setq size (getvar "textsize")))
(prompt (strcat "\nChieu cao chu hien tai = " (rtos size 2 2)))
(setq hei (getdist (strcat "\nChieu cao moi <" (rtos size 2) ">: ")))
(if (= hei nil) (setq hei size) (setq size hei))
(repeat (sslength ss)
(vla-put-height (vlax-ename->vla-object (ssname ss i)) hei)
(setq i (1+ i)))))
(princ))


  • 0

#10 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 27 November 2011 - 08:54 PM

hì.Ngon rồi. Lúc em post yêu cầu lên em có post thêm cái dòng nhờ anh cho thêm cái dòng lệnh hiển thị chiều cao text hiện tại để mình tiện so sánh ( nếu nó có nhiều text được chọn có chiều cao khác nhau thì hiển thị cái đầu tiên được chọn ) nhưng chắc do mạng lỗi sao ý nên nó không cập nhật được. hic hic ! Lúc nào rảnh anh thêm giúp em nhé ! Thanks anh nhiều ạ !
Em thêm cái dòng đó vào mà ko đc. hì

Chuyện này nhỏ thôi. Bạn cứ post y/c lên, CADViet luôn có người giúp đỡ bạn, đừng nề hà là tôi hay người khác. Tôi đang bận đi công tác mấy ngày. Nếu sau 4-5 ngày nữa không có ai rảnh để giúp thì tôi sẽ giúp. OK?
  • 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.


#11 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 27 November 2011 - 10:00 PM

hì.Ngon rồi. Lúc em post yêu cầu lên em có post thêm cái dòng nhờ anh cho thêm cái dòng lệnh hiển thị chiều cao text hiện tại để mình tiện so sánh ( nếu nó có nhiều text được chọn có chiều cao khác nhau thì hiển thị cái đầu tiên được chọn ) nhưng chắc do mạng lỗi sao ý nên nó không cập nhật được. hic hic ! Lúc nào rảnh anh thêm giúp em nhé ! Thanks anh nhiều ạ !
Em thêm cái dòng đó vào mà ko đc. hì


(defun C:HTT (/ ss i)
(princ "\nChon cac Text/Mtext can thay doi chieu cao...")
(if (setq ss (ssget (list (cons 0 "TEXT,MTEXT"))))
(progn
(vl-load-com)
(prompt (strcat "\nChieu cao chu hien tai = " (vl-princ-to-string (vla-get-height (vlax-ename->vla-object (ssname ss 0))))))
(or #h (setq #h (getvar "textsize")))
(setq #h (cond ((getdist (strcat "\nChieu cao moi <" (vl-princ-to-string #h) ">: ")))(#h)) i -1)
(repeat (sslength ss)
(vla-put-height (vlax-ename->vla-object (ssname ss (setq i (1+ i)))) #h)
)))
(princ))

  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#12 840244

840244

    biết zoom

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

Đã gửi 27 November 2011 - 11:47 PM

Được rồi ạ, cảm ơn các anh nhiều, cảm ơn diễn đàn !
  • 0

#13 bkhn_2011

bkhn_2011

    biết vẽ pline

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

Đã gửi 27 December 2011 - 11:49 AM

Mọi người cho em hỏi một tý nhé. Chắc là anh Ketxu anh cho em hỏi cad2007 có sử dụng được lisp không hả anh. Mà sao em down các lisp của các anh về xong load rồi. Báo là load thành công rồi mà em gõ lệnh chăng được gì. Anh giúp em với, ví dụ như cái lisp định chiều cao text ở trên, em gõ lệnh htt mà nó cứ bao unknowwn ý anh ạ. Cảm ơn anh.
  • 0

#14 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 27 December 2011 - 02:39 PM

Mọi người cho em hỏi một tý nhé. Chắc là anh Ketxu anh cho em hỏi cad2007 có sử dụng được lisp không hả anh. Mà sao em down các lisp của các anh về xong load rồi. Báo là load thành công rồi mà em gõ lệnh chăng được gì. Anh giúp em với, ví dụ như cái lisp định chiều cao text ở trên, em gõ lệnh htt mà nó cứ bao unknowwn ý anh ạ. Cảm ơn anh.

Bạn copy đầy đủ dòng đó lên mọi người xem :)
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#15 840244

840244

    biết zoom

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

Đã gửi 27 December 2011 - 06:19 PM

Thanks anh KETXU nhìu nhé !

Phiền anh KETXU bổ xung thêm dòng lệnh ghi giá trị của Line type scale của đối tượng hiện tại để tiện so sánh đc ko ạ ? Nếu có nhiều đối tượng được chọn 1 lúc mà chúng có line type scale khác nhau thì mình xuất giá trị của cái đầu tiên được chọn ạ !
  • 0

#16 bkhn_2011

bkhn_2011

    biết vẽ pline

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

Đã gửi 28 December 2011 - 08:18 AM

Bạn copy đầy đủ dòng đó lên mọi người xem :)

Dòng đó là dòng nào hả anh. Em thao tác thế này anh xem đúng không nhé. Em down cái lisp của anh về mở card vào phần tool => load application. Trong phần load application ở phần look in em tìm đến vị trí đã Down về sau đó load nó báo successfully loaded. Nhưng khi em vào card gõ lệnh. (ví dụ như lệnh thay đổi chiều cao text là htt enter. Nhưng card nó báo unknown. Anh bắt bệnh dùm em với. Còn anh bảo copy dòng nào thì để em copy lên.
  • 0

#17 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 28 December 2011 - 08:49 AM

Thao tác lệnh -> Ấn F2 -> copy toàn bộ dòng thông báo vừa rồi
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#18 bkhn_2011

bkhn_2011

    biết vẽ pline

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

Đã gửi 28 December 2011 - 04:37 PM

Thao tác lệnh -> Ấn F2 -> copy toàn bộ dòng thông báo vừa rồi

Anh ketxu xuốt ngày online hay sao ý nhỉ mà trả lời nhanh thế. Em làm theo ý anh rồi! ấn F2 nó hiện lên nhiều lắm ! em copy một ít ở mấy dòng cuối anh bắt bệnh giúp em với. Mà các lệnh em làm nó đều Unknown thế này hết anh ạ. Không hiểu gì. Nhưng hôm trước em có Down cái lisp đếm block về chạy thì ngon lành. Nhưng mấy cái lisp về sau này không chạy được. Cảm ơn anh trước nhé.

Select objects:
Specify base point or [Displacement] <Displacement>:
Specify second point or <use first point as displacement>:
Command: *Cancel*

Command: *Cancel*

Command:
Command:
Command: _appload htt-chiều cao mtext.lsp successfully loaded.


Command: ; error: LOAD failed: "D:/Pham Thanh Hai/Điện-Điện/LISP/htt-chiều cao
mtext.lsp"

Command:
Command: Specify opposite corner:
Command: htt
Unknown command "HTT". Press F1 for help.

Command: htt
Unknown command "HTT". Press F1 for help.
  • 0

#19 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 28 December 2011 - 04:51 PM

Anh ketxu xuốt ngày online hay sao ý nhỉ mà trả lời nhanh thế. Em làm theo ý anh rồi! ấn F2 nó hiện lên nhiều lắm ! em copy một ít ở mấy dòng cuối anh bắt bệnh giúp em với. Mà các lệnh em làm nó đều Unknown thế này hết anh ạ. Không hiểu gì. Nhưng hôm trước em có Down cái lisp đếm block về chạy thì ngon lành. Nhưng mấy cái lisp về sau này không chạy được. Cảm ơn anh trước nhé.

Select objects:
Specify base point or [Displacement] <Displacement>:
Specify second point or <use first point as displacement>:
Command: *Cancel*

Command: *Cancel*

Command:
Command:
Command: _appload htt-chiều cao mtext.lsp successfully loaded.


Command: ; error: LOAD failed: "D:/Pham Thanh Hai/Điện-Điện/LISP/htt-chiều cao
mtext.lsp"

Command:
Command: Specify opposite corner:
Command: htt
Unknown command "HTT". Press F1 for help.

Command: htt
Unknown command "HTT". Press F1 for help.

Mình dịch nôm na giúp bạn dòng in đậm :
- Lỗi : Load không thành công file "D:/Pham Thanh Hai/Điện-Điện/LISP/htt-chiều cao mtext.lsp"
=> thực chất CAD không hề Load được lisp bạn ạ
- Nguyên nhân : Lisp không chơi với Unicode, bất kỳ hành động Rename tên nào có gắn với Unicode đều (có thể) bị tuýt còi
- Giải quyết : bạn vứt file lisp vào thư mục KHÔNG DẤU , hoặc có dấu n k dùng UNICODE. Rename file lisp với tiêu chí tương tự
  • 1

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#20 tymap

tymap

    biết pan

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

Đã gửi 29 December 2011 - 09:59 AM

Các anh cho em hỏi, sẵn cái lisp Linetype scale ở trên. Em mong muốn là có thể chỉnh Linetype scale của toàn bản vẽ theo hệ số nhân (tức là toàn bộ linetype scale của các đối tượng sẽ tăng lên 2 lần hoặc n lần) cái này khác với chỉnh globle scale (lệnh "lts"). Cái này em hay bị trong trường hợp xref bản vẽ kiến trúc vào bản vẽ kỹ thuật tạo sẵn của em (các chi tiết block, nét....). mỗi lần như vậy là em lại phải ngồi chỉnh lại tỉ lệ nét của mình (thường là nét của em chỉnh theo globle scale = 1) hoặc là của kiến trúc rất mất thời gian và nhức đầu. Mong các anh giúp em.
  • 0