Đến nội dung


Hình ảnh

Xin mẹo Scale chữ số


  • Please log in to reply
15 replies to this topic

#1 nguoi_tho_mo

nguoi_tho_mo

    biết vẽ arc

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

Đã gửi 28 November 2010 - 03:03 PM

Nhờ các anh trên diễn đàn giúp em cách scale chữ số:
- Số được đặt trong block ví dụ số 1 hay số 5 chiều cao chữ là 2.5
- Scale block đó lên n lần thì chiều cao của số 1 hay số 5 to ra n lần =2.5*n
- Số 1 hay số 5 sẽ thay đổi thành giá trị n hay 5n (nếu n=2 số 1 sẽ thành 2 hay ssó 5 sẽ thành 10)
EM nghĩ trong lênh "field" làm được nhưng tìm không ra
Nếu ghi số 1 hay 5 bằng Dli thì khi scale chỉ thay đổi được giá trị còn chiều cao không thay đổi, dùng lệnh sc số 1hay số 5 thì chiều cao thay đổi nhưng giá trị lại giữ nguyên.
cám ơn mọi người
Hình đã gửi
  • 0

#2 meohoang

meohoang

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 811 Bài viết
Điểm đánh giá: 342 (khá)

Đã gửi 28 November 2010 - 05:39 PM

Nhờ các anh trên diễn đàn giúp em cách scale chữ số:
- Số được đặt trong block ví dụ số 1 hay số 5 chiều cao chữ là 2.5
- Scale block đó lên n lần thì chiều cao của số 1 hay số 5 to ra n lần =2.5*n
- Số 1 hay số 5 sẽ thay đổi thành giá trị n hay 5n (nếu n=2 số 1 sẽ thành 2 hay ssó 5 sẽ thành 10)
EM nghĩ trong lênh "fild" làm được nhưng tìm không ra
Nếu ghi số 1 hay 5 bằng Dli thì khi scale chỉ thay đổi được giá trị còn chiều cao không thay đổi, dùng lệnh sc số 1hay số 5 thì chiều cao thay đổi nhưng giá trị lại giữ nguyên.
cám ơn mọi người
Hình đã gửi

Bạn dùng lệnh "field" trong tag Field category bạn tìm mục Object sau đó bấm vào nút chọn phía tag Object type (nút có mũi tên) Cad sẽ cho bạn chọn đối tượng; khi chọn xong Cad sẽ liệt kê 1 loạt các loại dữ liệu cho bạn chọn (bạn cứ làm thử sẽ hiểu) -> bấm Ok Cad sẽ hỏi tại dòng lệnh chiều cao chữ -> gõ H enter -> gõ 2.5. Khi bạn phóng to lên bạn regen lại sẽ có kết quả như ý.
  • 0

#3 nguoi_tho_mo

nguoi_tho_mo

    biết vẽ arc

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

Đã gửi 28 November 2010 - 06:23 PM

Bạn dùng lệnh "field" trong tag Field category bạn tìm mục Object sau đó bấm vào nút chọn phía tag Object type (nút có mũi tên) Cad sẽ cho bạn chọn đối tượng; khi chọn xong Cad sẽ liệt kê 1 loạt các loại dữ liệu cho bạn chọn (bạn cứ làm thử sẽ hiểu) -> bấm Ok Cad sẽ hỏi tại dòng lệnh chiều cao chữ -> gõ H enter -> gõ 2.5. Khi bạn phóng to lên bạn regen lại sẽ có kết quả như ý.

Cám ơn meohang
Chưa phải bác ạ.
em muốn có chữ số mà khi dùng lệnh SCale thì cả kích thước và giá trị sẽ thay đổi bác nhé.
  • 0

#4 hoan2182

hoan2182

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 2646 Bài viết
Điểm đánh giá: 832 (rất tốt)

Đã gửi 28 November 2010 - 09:41 PM

Cám ơn meohang
Chưa phải bác ạ.
em muốn có chữ số mà khi dùng lệnh SCale thì cả kích thước và giá trị sẽ thay đổi bác nhé.

Chắc phải nhờ các bác thạo về lisp viết thôi
Cách làm thủ công của em là:
Tạo thêm một kiểu Dim mới bằng cách thay đổi giá trị trong:
1- Use overall scale op: (Trong thẻ Fit)
2 - Scale factor ( Trong thẻ Primary Units

Sau khi Scale hình vẽ xong ta dùng lệnh MA quét kích thước theo một kích thước của kiểu dim vừa tạo là được.
  • 0

Gió đưa cây cải về trời

Rau răm ở lại chịu lời đắng cay...


#5 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 28 November 2010 - 09:44 PM

Cám ơn meohang
Chưa phải bác ạ.
em muốn có chữ số mà khi dùng lệnh SCale thì cả kích thước và giá trị sẽ thay đổi bác nhé.

Chào nguoi_tho_mo,
Bạn hãy thử dùng lisp xem sao. Theo mình lisp có thể giải quyết tốt yêu cầu của bạn...
  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#6 nguoi_tho_mo

nguoi_tho_mo

    biết vẽ arc

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

Đã gửi 29 November 2010 - 08:23 PM

Chào nguoi_tho_mo,
Bạn hãy thử dùng lisp xem sao. Theo mình lisp có thể giải quyết tốt yêu cầu của bạn...

Vâng em đi kiếm không ra, còn tự viết thì phải đợi một thời gian nữa vì "Quá gà"
EM block dim (không có chân) mừng hụt bác ạ. được cái này thì mất cái kia
EM trình bày rõ mục đích các bác giúp em khác phục khó khăn này:
em đặt số 1 vào block khung tên khi scale khung tên bao nhiêu lần thì số 1 thay đổi giá trị và kích thước theo.
  • 0

#7 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 29 November 2010 - 08:32 PM

Vâng em đi kiếm không ra, còn tự viết thì phải đợi một thời gian nữa vì "Quá gà"
EM block dim (không có chân) mừng hụt bác ạ. được cái này thì mất cái kia
EM trình bày rõ mục đích các bác giúp em khác phục khó khăn này:
em đặt số 1 vào block khung tên khi scale khung tên bao nhiêu lần thì số 1 thay đổi giá trị và kích thước theo.

Vậy là số 1 này có thuộc block khung tên hay không hử nguoi_tho_mo????
Khi scale thì chọn cả khung tên và cái số 1 ấy à??? Các text khác trong khung tên thì sao????
Hề hề hề, nghĩ cho kỹ rồi đặt yêu cầu chứ đừng có Phát sinh kiểu nớ, khó đoán lắm.....
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#8 nguyentuyen6

nguyentuyen6

    biết lệnh chamfer

  • Advance Member
  • PipPipPipPip
  • 213 Bài viết
Điểm đánh giá: 124 (tàm tạm)

Đã gửi 29 November 2010 - 08:51 PM

Vâng em đi kiếm không ra, còn tự viết thì phải đợi một thời gian nữa vì "Quá gà"
EM block dim (không có chân) mừng hụt bác ạ. được cái này thì mất cái kia
EM trình bày rõ mục đích các bác giúp em khác phục khó khăn này:
em đặt số 1 vào block khung tên khi scale khung tên bao nhiêu lần thì số 1 thay đổi giá trị và kích thước theo.


Cái này dùng FIELD là đc mà bạn. Mình thử 1 cái này xem có đúng ý bạn ko nhé. Scale xong thi` REGEN nhe'
http://www.cadviet.c...iles/3/up_1.dwg
  • 1

Lisp In bản vẽ hàng loạt:
http://www.cadviet.c...ndpost&p=139860


#9 nguoi_tho_mo

nguoi_tho_mo

    biết vẽ arc

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

Đã gửi 30 November 2010 - 08:06 PM

Cái này dùng FIELD là đc mà bạn. Mình thử 1 cái này xem có đúng ý bạn ko nhé. Scale xong thi` REGEN nhe'
http://www.cadviet.c...iles/3/up_1.dwg

Chào bác nguyentuyen6
Rất cảm ơn bác
Chính xác bác ạ.

Vậy là số 1 này có thuộc block khung tên hay không hử nguoi_tho_mo????
Khi scale thì chọn cả khung tên và cái số 1 ấy à??? Các text khác trong khung tên thì sao????
Hề hề hề, nghĩ cho kỹ rồi đặt yêu cầu chứ đừng có Phát sinh kiểu nớ, khó đoán lắm.....

dùng các này ta có thể lựa chọn dim, text... phù hợp để khi in ra giấy chiều cao chữ là tieu chuẩn mà không phải thử nhiều lần các bác nhá.
"Hề Hề Hề" không cần nhìn nick bít ngay là bác rồi

nghĩ cho kỹ rồi đặt yêu cầu chứ

Bác nguyentuyen6 nghĩ giúp bác cháu ta rồi
Bác nào giải quyết giúp vụ khi scale luôn là số đặc biệt (1, 2, 4, 5, 10, 20,) được không ạ
  • 0

#10 nguoi_tho_mo

nguoi_tho_mo

    biết vẽ arc

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

Đã gửi 30 November 2010 - 08:16 PM

Chắc phải nhờ các bác thạo về lisp viết thôi
Cách làm thủ công của em là:
Tạo thêm một kiểu Dim mới bằng cách thay đổi giá trị trong:
1- Use overall scale op: (Trong thẻ Fit)
2 - Scale factor ( Trong thẻ Primary Units

Sau khi Scale hình vẽ xong ta dùng lệnh MA quét kích thước theo một kích thước của kiểu dim vừa tạo là được.

Dim của em để trong block thì ko dc nữa bác nhé
  • 0

#11 nguyentuyen6

nguyentuyen6

    biết lệnh chamfer

  • Advance Member
  • PipPipPipPip
  • 213 Bài viết
Điểm đánh giá: 124 (tàm tạm)

Đã gửi 30 November 2010 - 10:29 PM

Chào bạn nguoi_tho_mo. Không biết bạn đã làm đc cái Block chứa FIELD kia chưa. Nếu chưa thì để mình hướng dẫn luôn.
Còn vấn đề vẽ trong MODEL mà ta hay scale khung với tỉ lệ khung bất kỳ mà khi muốn in ra các DIM và TEXT luôn bằng nhau thì mình cũng đã từng mắc phải. Mình có viết 1 lisp để làm việc này. Nếu bạn cần thì mai mình úp lên cho bạn tham khảo. Khi dùng líp này thì dù khung có scale bao nhiêu đi nữa thì in ra TEXT và DIM vẫn cứ bằng nhau. hề hề.
  • 1

Lisp In bản vẽ hàng loạt:
http://www.cadviet.c...ndpost&p=139860


#12 nguoi_tho_mo

nguoi_tho_mo

    biết vẽ arc

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

Đã gửi 01 December 2010 - 02:52 PM

Chào bạn nguoi_tho_mo. Không biết bạn đã làm đc cái Block chứa FIELD kia chưa. Nếu chưa thì để mình hướng dẫn luôn.
Còn vấn đề vẽ trong MODEL mà ta hay scale khung với tỉ lệ khung bất kỳ mà khi muốn in ra các DIM và TEXT luôn bằng nhau thì mình cũng đã từng mắc phải. Mình có viết 1 lisp để làm việc này. Nếu bạn cần thì mai mình úp lên cho bạn tham khảo. Khi dùng líp này thì dù khung có scale bao nhiêu đi nữa thì in ra TEXT và DIM vẫn cứ bằng nhau. hề hề.

Cảm ơn bác Nguyentuyen6
Field em làm dc từ ngay lúc đó.
có lisp thì càng tuyệt vời hơn
Rất mong bác sớm up lên sớm cùng chia sẻ và hoàn thiện.
  • 0

#13 nguyentuyen6

nguyentuyen6

    biết lệnh chamfer

  • Advance Member
  • PipPipPipPip
  • 213 Bài viết
Điểm đánh giá: 124 (tàm tạm)

Đã gửi 01 December 2010 - 03:16 PM

Cảm ơn bác Nguyentuyen6
Field em làm dc từ ngay lúc đó.
có lisp thì càng tuyệt vời hơn
Rất mong bác sớm up lên sớm cùng chia sẻ và hoàn thiện.


Bạn thử cái này nhé. Mình để chiều cao Dim mặc định là bằng 1/150 chiều rộng (ngắn) của blok khung tên. Chiều cao Text cao hơn Dim là 1,2 lần

(defun BatDau() (setq OldOs (getvar "osmode")) (setvar "osmode" 0))
(defun KetThuc() (setvar "osmode" OldOs)(princ))
(defun moddxf (dxf chdxf ss) (entmod (subst (cons dxf chdxf) (assoc dxf (entget ss)) (entget ss))))
;=========== FIX DIM TEXT ===========;
;Chinh chieu cao cua dim & text theo ;
;chieu rong(ngan) cua block khung ten;
;Mac dinh la = 1/150 chieu rong k/ten;
;====================================;
(defun c:ft (/ Rec pt1 pt2 rpt1 rpt2 rpt3 rpt4 dis12 dis14 dis toadodinh
caodim tilechu textgap dimxtend i el1 el ssd en OldOs OldEcho )
(vl-load-com)
(setq OldEcho (getvar "cmdecho"))
(setvar "cmdecho" 0)
(command "undo" "be")
(princ "\n From nguyentuyen6 @CadViet ")
(princ "\n Cai Express-Tools truoc khi su dung!!!")
(setq Rec (acet-ent-geomextents (car (entsel "\nChon block khung ten:")))
pt1 (nth 0 Rec);lay dinh *-----pt2
pt2 (nth 1 Rec);lay dinh | khung |
i 0);setq pt1-----*
;-----acet-ent-geomextents:diem thap nhat trai va cao nhat phai, ve hcn
(BatDau)
(command "RECTANG" pt1 pt2)
(KetThuc)
(setq el1 (entlast));el1
;-----lay tile, mac dinh la :1
(setq
tileft (cond (tileft) (1))
tileftold tileft
tileft (getreal (strcat "\nChon ty le <"(rtos tileftold 2 2)">: "))
)
(if (= tileft nil) (setq tileft tileftold))
;-----lay dinh HCN = acet-geom-vertex-list
(setq toadodinh (acet-geom-vertex-list el1); rpt4----rpt3
rpt1 (nth 0 toadodinh);lay dinh | el1 |
rpt2 (nth 1 toadodinh);lay dinh rpt1----rpt2
rpt3 (nth 2 toadodinh);lay dinh
rpt4 (nth 3 toadodinh);lay dinh
dis12 (distance rpt1 rpt2)
dis14 (distance rpt1 rpt4));setq
;----- Chia truong hop khung ngang va khung doc
(if (> dis12 dis14)
(setq caodim (* tileft (/ dis14 150)));T
(setq caodim (* tileft (/ dis12 150)));F
) ;if
(setq textgap (/ caodim 2); k/c tu Text den duong Dim
dimxtend (/ caodim 2);k/c dau dim
tilechu (* caodim 1.2); cao Text so voi cao Dim(text)
)
;-----
(command "ERASE" el1 "");xoa hcn
(princ (strcat "\nDim:<" (rtos caodim 2 0) ">. Text:<" (rtos tilechu 2 0) ">. Chon Dim & Text can Fix:"))
;======================= M A I N =============================
(setq ssd (ssget '((0 . "DIMENSION,TEXT")))); loc dim text
(while (< i (sslength ssd))
(setq en (ssname ssd i))
;---- Text -----
(if (= (cdr (assoc 0 (entget en))) "TEXT")
(moddxf 40 tilechu en)
);if
;-- DIMENSION -----
(if (= (cdr (assoc 0 (entget en))) "DIMENSION")
(progn
(setq el (vlax-ename->vla-object en))
(vlax-put-property el 'ScaleFactor 1); chinh Scalefactor
(vlax-put-property el 'textheight caodim); chieu cao text trong dim
(vlax-put-property el 'textgap textgap); k/c tu Text den duong Dim
(vlax-put-property el 'ArrowheadSize dimxtend); do lon mui ten
(vlax-put-property el 'DimensionLineExtend dimxtend);k/c 2 ben duong dim
(vlax-put-property el 'ExtensionLineExtend dimxtend);k/c duong giong dim -> duong dim
(vlax-put-property el 'Arrowhead1Block "ArchTick"); loai mui ten
(vlax-put-property el 'Arrowhead2Block "ArchTick"); loai mui ten
);progn
);if
(setq i (1+ i))
);while
;---------------
(command "undo" "e")
(KetThuc)
(setvar "cmdecho" OldEcho)
(princ "\n...Done...")
(princ)
);defun

  • 1

Lisp In bản vẽ hàng loạt:
http://www.cadviet.c...ndpost&p=139860


#14 nguoi_tho_mo

nguoi_tho_mo

    biết vẽ arc

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

Đã gửi 01 December 2010 - 03:42 PM

Bạn thử cái này nhé. Mình để chiều cao Dim mặc định là bằng 1/150 chiều rộng (ngắn) của blok khung tên. Chiều cao Text cao hơn Dim là 1,2 lần

(defun BatDau() (setq OldOs (getvar "osmode")) (setvar "osmode" 0))
(defun KetThuc() (setvar "osmode" OldOs)(princ))
(defun moddxf (dxf chdxf ss) (entmod (subst (cons dxf chdxf) (assoc dxf (entget ss)) (entget ss))))
;=========== FIX DIM TEXT ===========;
;Chinh chieu cao cua dim & text theo ;
;chieu rong(ngan) cua block khung ten;
;Mac dinh la = 1/150 chieu rong k/ten;
;====================================;
(defun c:ft (/ Rec pt1 pt2 rpt1 rpt2 rpt3 rpt4 dis12 dis14 dis toadodinh
caodim tilechu textgap dimxtend i el1 el ssd en OldOs OldEcho )
(vl-load-com)
(setq OldEcho (getvar "cmdecho"))
(setvar "cmdecho" 0)
(command "undo" "be")
(princ "\n From nguyentuyen6 @CadViet ")
(princ "\n Cai Express-Tools truoc khi su dung!!!")
(setq Rec (acet-ent-geomextents (car (entsel "\nChon block khung ten:")))
pt1 (nth 0 Rec);lay dinh *-----pt2
pt2 (nth 1 Rec);lay dinh | khung |
i 0);setq pt1-----*
;-----acet-ent-geomextents:diem thap nhat trai va cao nhat phai, ve hcn
(BatDau)
(command "RECTANG" pt1 pt2)
(KetThuc)
(setq el1 (entlast));el1
;-----lay tile, mac dinh la :1
(setq
tileft (cond (tileft) (1))
tileftold tileft
tileft (getreal (strcat "\nChon ty le <"(rtos tileftold 2 2)">: "))
)
(if (= tileft nil) (setq tileft tileftold))
;-----lay dinh HCN = acet-geom-vertex-list
(setq toadodinh (acet-geom-vertex-list el1); rpt4----rpt3
rpt1 (nth 0 toadodinh);lay dinh | el1 |
rpt2 (nth 1 toadodinh);lay dinh rpt1----rpt2
rpt3 (nth 2 toadodinh);lay dinh
rpt4 (nth 3 toadodinh);lay dinh
dis12 (distance rpt1 rpt2)
dis14 (distance rpt1 rpt4));setq
;----- Chia truong hop khung ngang va khung doc
(if (> dis12 dis14)
(setq caodim (* tileft (/ dis14 150)));T
(setq caodim (* tileft (/ dis12 150)));F
) ;if
(setq textgap (/ caodim 2); k/c tu Text den duong Dim
dimxtend (/ caodim 2);k/c dau dim
tilechu (* caodim 1.2); cao Text so voi cao Dim(text)
)
;-----
(command "ERASE" el1 "");xoa hcn
(princ (strcat "\nDim:<" (rtos caodim 2 0) ">. Text:<" (rtos tilechu 2 0) ">. Chon Dim & Text can Fix:"))
;======================= M A I N =============================
(setq ssd (ssget '((0 . "DIMENSION,TEXT")))); loc dim text
(while (< i (sslength ssd))
(setq en (ssname ssd i))
;---- Text -----
(if (= (cdr (assoc 0 (entget en))) "TEXT")
(moddxf 40 tilechu en)
);if
;-- DIMENSION -----
(if (= (cdr (assoc 0 (entget en))) "DIMENSION")
(progn
(setq el (vlax-ename->vla-object en))
(vlax-put-property el 'ScaleFactor 1); chinh Scalefactor
(vlax-put-property el 'textheight caodim); chieu cao text trong dim
(vlax-put-property el 'textgap textgap); k/c tu Text den duong Dim
(vlax-put-property el 'ArrowheadSize dimxtend); do lon mui ten
(vlax-put-property el 'DimensionLineExtend dimxtend);k/c 2 ben duong dim
(vlax-put-property el 'ExtensionLineExtend dimxtend);k/c duong giong dim -> duong dim
(vlax-put-property el 'Arrowhead1Block "ArchTick"); loai mui ten
(vlax-put-property el 'Arrowhead2Block "ArchTick"); loai mui ten
);progn
);if
(setq i (1+ i))
);while
;---------------
(command "undo" "e")
(KetThuc)
(setvar "cmdecho" OldEcho)
(princ "\n...Done...")
(princ)
);defun

Rất hiệu quả.
Xin cảm ơn bác.
Chúc bác nghiên cứu thêm nhiều ứng dụng hơn nữa
  • 1

#15 thaihc

thaihc

    biết zoom

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

Đã gửi 15 March 2011 - 04:40 AM

Cho Em hỏi, trong 1 khung tên của em có 2 loại cỡ chữ, chẳng hạn chiều cao chữ là 250 và 500 thì sau khi sử dụng list trên thì 2 cỡ trên bằng nhau. Vậy có cách nào khác không các bác?
  • 0

#16 doantrungtuyen

doantrungtuyen

    Chưa sử dụng CAD

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

Đã gửi 26 April 2011 - 07:57 AM

Cho mình hỏi cài express tool là như thế nào? cảm ơn nhiều!
  • 0