Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
6 replies to this topic

#1 hhhhgggg

hhhhgggg

    biết dimedit

  • Members
  • PipPipPipPipPip
  • 393 Bài viết
Điểm đánh giá: 30 (tàm tạm)

Đã gửi 23 November 2009 - 02:46 PM

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)
)
;========
  • 0
Hoàng Giang

#2 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1359 (rất tốt)

Đã gửi 23 November 2009 - 03:05 PM

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 đề.
  • 1

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#3 Thaistreetz

Thaistreetz

    biết lệnh adcenter

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

Đã gửi 23 November 2009 - 03:45 PM

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

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


#4 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 23 November 2009 - 04:25 PM

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

#5 hhhhgggg

hhhhgggg

    biết dimedit

  • Members
  • PipPipPipPipPip
  • 393 Bài viết
Điểm đánh giá: 30 (tàm tạm)

Đã gửi 24 November 2009 - 07:30 AM

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à !
  • 0
Hoàng Giang

#6 haanh

haanh

    biết lệnh adcenter

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

Đã gửi 24 November 2009 - 09:04 AM

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!
  • 0

“Sống trong đời sống cần có một tấm lòng / Để làm gì em biết không ? / Để gió cuốn đi, để gió cuốn đi...”


#7 vanduynguyen

vanduynguyen

    biết vẽ polygon

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

Đã gửi 26 September 2013 - 03:43 PM

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

 


  • 0