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

Lisp Scale ko thay đổi giá trị DIM, không thay đổi chiều cao TEXT !

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

Em đã có Lisp scale không thay đổi giá trị DIM rồi, nhưng thực chất vấn đề khi ta vẽ thì chiều cao Text mình mong muốn sau khi Scale bằng chiều cao Text ban đầu ? Vì cả bản vẽ ta vẽ thì các Text cao bằng nhau mà. Vậy các bác Pro có cách nào sửa lisp Scale không thay đổi giá trị DIM sao cho sau khi Scale thì chiều cao của TEXT ( TEXT, MTEXT và TEXT của DIM) vẫn giữ nguyên chiều cao cũ được không ?

CODE

;======== scale khong thay doi gia tri DIM============

;;;=================================

(defun SCDim( / e ob OName SF LSF)

(while (setq e (ssname ssd 0))

(setq

ob (vlax-ename->vla-object e)

OName (vla-get-ObjectName ob)

SF (vla-get-ScaleFactor ob)

)

(if (not (wcmatch OName "*AngularDimension"))

(progn

(setq LSF (vla-get-LinearScaleFactor ob))

(command "dimoverride" "dimlfac" (/ LSF k) "" e "")

)

)

(if (/= opt "N") (command "dimoverride" "dimscale" (* SF k) "" e ""))

(ssdel e ssd)

)

)

;==========

(defun C:SCC( / ss ssd p k opt) ;;;SCale with Constant dimensions

(vl-load-com)

(setq

ss (ssget)

ssd (ssget "p" '((0 . "DIMENSION")))

p (getpoint "\nBase point:")

k (getreal "\nScale Factor:")

;opt (strcase (getstring "\nDim scale overall? [Yes/No] :"))

)

(if (= opt "") (setq opt "N"))

(if (> k 1)

(progn (command "scale" ss "" p k) (SCDim))

(progn (SCDim) (command "scale" ss "" p k))

)

(princ)

)

;========

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
Em đã có Lisp scale không thay đổi giá trị DIM rồi, nhưng thực chất vấn đề khi ta vẽ thì chiều cao Text mình mong muốn sau khi Scale bằng chiều cao Text ban đầu ? Vì cả bản vẽ ta vẽ thì các Text cao bằng nhau mà. Vậy các bác Pro có cách nào sửa lisp Scale không thay đổi giá trị DIM sao cho sau khi Scale thì chiều cao của TEXT ( TEXT, MTEXT và TEXT của DIM) vẫn giữ nguyên chiều cao cũ được không ?

-Với TEXT ví dụ bạn đang có 10 hàng text độ lớn 250 hàng cách hàng 500. Sau khi scale lên 2 lần thì text có độ lớn 500 hàng 1000 nếu bạn không muốn thay đổi độ cao text thì kết quả là độ lớn 250 hàng cách hàng 1000 thì lại không hợp lý. Đấy là mình đưa ra để bạn coi lại đề bài rồi ra lại yêu cầu xem cho hợp lý. Ngay cả việc sau khi scale xong thì vị tri text nằm chổ nào so với trước khi scale cũng là 1 vầ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

Vấn đề này cũng tương đối nan giải. không chỉ với text thoi đau, khi scale cũng cần xét đến cả các thành phần khác của dim style tương ứ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
Vấn đề này cũng tương đối nan giải. không chỉ với text thoi đau, khi scale cũng cần xét đến cả các thành phần khác của dim style tương ứng.

Chào Thaistreetz

 

Nếu chỉ xét đến các thành phần khác của DIM thì ta chỉ cần tác động đến biến hệ thống DIMSCALE là được

 

Biến hệ thống DIMSCALE tác động đến Use Overall Scale off trong nhãn Fit của hộp thoại Modify Dimension Style

  • 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
Chào Thaistreetz

 

Nếu chỉ xét đến các thành phần khác của DIM thì ta chỉ cần tác động đến biến hệ thống DIMSCALE là được

 

Biến hệ thống DIMSCALE tác động đến Use Overall Scale off trong nhãn Fit của hộp thoại Modify Dimension Style

Cái ý tưởng này chỉ áp dụng được khi mình Scale với tỷ lệ Trước Scale/Sau scale chênh nhau ko quá nhìu. Chứ Scale lên 10 lần hay j đó thì chắc chắn không hợp lý. Nhưng rõ ràng khi ta vẽ thì text cao = nhau. Cho nên khi Scale đi thì nó sẽ thay đổi chiều cao Text. Việc cố định lại chiều cao đó cũng là vấn đề đúng đắn 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
Cái ý tưởng này chỉ áp dụng được khi mình Scale với tỷ lệ Trước Scale/Sau scale chênh nhau ko quá nhìu. Chứ Scale lên 10 lần hay j đó thì chắc chắn không hợp lý. Nhưng rõ ràng khi ta vẽ thì text cao = nhau. Cho nên khi Scale đi thì nó sẽ thay đổi chiều cao Text. Việc cố định lại chiều cao đó cũng là vấn đề đúng đắn mà !

Cách làm của em giữ nguyên hình vẽ với tỷ lệ 1:1 > Scale khung bản ( bao gồm cả khung tên và đk kt) lên khổ giấy định in ví dụ nếu scale lên N lần thì em sẽ Thay đổi trong Modify Dimension Style : Fit > Use over all Scale of : thay 1 =N

Em ko biết anh Scale hình vẽ như thế có tác dụng gì và có nhanh hơn ko ???

Cách làm ứ dễ gây nhầm lẫn khi người khác sử dụng bản vẽ đã Scale lên 2 lần

 

Tên bài viết của anh" Trả lời cho Lisp Scale ko thay đổi giá trị DIM, không thay đổi chiều cao TEXT !"

Anh có thể Scale hình vẽ của anh theo tỷ lệ A/B bất kỳ (Dimension Style > Primari Units > Scale factor : B/A > Kích thứơc ko thay đổi, chiều cao cũng thế.

Anh cứ thử Scale với tỷ lệ A/B trong đó Avà B chênh lệch nhau đến 1 triệu USD sẽ thấy > Và em nghĩ rằng cách Scale hình vẽ là ko chuyên nghiệp và rất rất rất không chuyên nghiệp!

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 bạn mình dùng thử khám phá vài thứ nè !  bạn muốn scale  k thay đổi giá trị dim, không thay đổi chiều cao text . bạn muốn không thay đổi chiều cao text sau khi bạn scale xong bạn Ctrl Z nhiều lần nó sẽ trả về chiều cao text củ cho bạn các hình dạng kia vẫn giữ nguyên(VD : trong hình bạn có 20 cái dim thì bạn phải Ctrl 20 lần) Trong diễn đàn mấy bạn kia gốp ý mình thấy cũng đúng . nếu mình scale 100 lần mà chiều cao text không thay đổi liệu bạn có thấy được kích thước đó không và ngược lai nếu ban scale 0.0001 thì ban thấy chiều cao text và hình liệu bạn có thấy đượ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

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  

×