Rated 5/5 based on 240179 internet user reviews

Đến nội dung


Hình ảnh
- - - - -

Cách tạo 1 khoảng cách chung tới đối tượng cho nhiều dim line?


  • Please log in to reply
31 replies to this topic

#1 toai

toai

    biết vẽ ellipse

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

Đã gửi 17 June 2009 - 10:46 AM

Khi thực hiện ghi kích thước theo các phương (thẳng đứng, nằm ngang....) cho nhiều đối tượng trong một bản vẽ, mình không biết làm thế nào để đưa các khoảng cách từ đường ghi kích thước (dim line) tới các đối tượng (line...) về cùng một giá trị. Mình đã đã thử tìm kiếm trên DĐ rồi mà không thấy kết quả nào cả. Mong anh em trong diễn đàn cho ý kiến giúp đỡ nhé.
Thanks!
  • 0
Mưu sự tại nhân, thành sự tại thiên.

#2 levanduy

levanduy

    biết lệnh offset

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

Đã gửi 17 June 2009 - 01:30 PM

Khi thực hiện ghi kích thước theo các phương (thẳng đứng, nằm ngang....) cho nhiều đối tượng trong một bản vẽ, mình không biết làm thế nào để đưa các khoảng cách từ đường ghi kích thước (dim line) tới các đối tượng (line...) về cùng một giá trị. Mình đã đã thử tìm kiếm trên DĐ rồi mà không thấy kết quả nào cả. Mong anh em trong diễn đàn cho ý kiến giúp đỡ nhé.
Thanks!

Thiết lập như sau:
Hình đã gửi
Khi ghi kích thước bạn kéo dim sao cho khoảng cách từ chân dim đến line một khoảng a nhỏ thôi.
Hình đã gửi
Thế là tất cả đều bằng nhau một khoảng cách tương đối :lol2:
Nếu tuyệt đối bằng nhau thì phải nhờ đến các cao thủ trong diễn đàn. :lol2:
  • 0
Only dead fish go with the stream!

#3 truongnhataz

truongnhataz

    biết vẽ rectang

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

Đã gửi 17 June 2009 - 03:05 PM

Khi thực hiện ghi kích thước theo các phương (thẳng đứng, nằm ngang....) cho nhiều đối tượng trong một bản vẽ, mình không biết làm thế nào để đưa các khoảng cách từ đường ghi kích thước (dim line) tới các đối tượng (line...) về cùng một giá trị. Mình đã đã thử tìm kiếm trên DĐ rồi mà không thấy kết quả nào cả. Mong anh em trong diễn đàn cho ý kiến giúp đỡ nhé.
Thanks!

vao modi dimi line anh arrows chọn nơi offset from origin chon kich thước
java script:void(0)
Hình đã gửi
néu làm khoang cach tới đương ghi số thì phải dùng offset để chi khoang cách
  • 0

TIẾT KIỆM LÀ BẢO VÊ MÔI TRƯỜNG


#4 toai

toai

    biết vẽ ellipse

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

Đã gửi 17 June 2009 - 03:47 PM

vao modi dimi line anh arrows chọn nơi offset from origin chon kich thước
java script:void(0)
Hình đã gửi
néu làm khoang cach tới đương ghi số thì phải dùng offset để chi khoang cách

Cám ơn levanduy và truongnhataz! Hướng dẫn của 2 bạn là để thiết lập khoảng cách từ chân đường dóng kích thước tới đối tượng đúng không? Nhưng ý của mình là muốn bằng cách nào đó để trong bản vẽ có được tất cả khoảng cách từ ĐƯỜNG GHI KÍCH THƯỚC tới các đối tượng cần ghi kích thước có giá trị bằng nhau cơ(vì khi thực hiện kéo kích thước, nhất là các đối tượng ở các mặt cắt khác nhau thì rất khó cố định một k/c nhất định từ dim line tới đối tượng)
Mong các bạn chỉ bảo tiếp nhé. :lol2:
Đây là ví dụ về ý định của mình:
http://www.cadviet.com/upfiles/VD.dwg
  • 0
Mưu sự tại nhân, thành sự tại thiên.

#5 levanduy

levanduy

    biết lệnh offset

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

Đã gửi 18 June 2009 - 10:10 AM

Cám ơn levanduy và truongnhataz! Hướng dẫn của 2 bạn là để thiết lập khoảng cách từ chân đường dóng kích thước tới đối tượng đúng không?

Bạn hiểu sai rồi.Cách làm của mình là thiết lập cố định khoảng cách từ chân đường kích thước đến đường ghi kích thước luôn luôn là không đổi.
Còn khoảng cách từ chân đường kích thước đến đối tượng xa gần tùy thuộc vào vị trí đặt đường kích thước.
  • 0
Only dead fish go with the stream!

#6 ndtnv

ndtnv

    biết dimordinate

  • Members
  • PipPipPipPipPip
  • 352 Bài viết
Điểm đánh giá: 308 (khá)

Đã gửi 03 July 2009 - 04:11 PM

Cám ơn levanduy và truongnhataz! Hướng dẫn của 2 bạn là để thiết lập khoảng cách từ chân đường dóng kích thước tới đối tượng đúng không? Nhưng ý của mình là muốn bằng cách nào đó để trong bản vẽ có được tất cả khoảng cách từ ĐƯỜNG GHI KÍCH THƯỚC tới các đối tượng cần ghi kích thước có giá trị bằng nhau cơ(vì khi thực hiện kéo kích thước, nhất là các đối tượng ở các mặt cắt khác nhau thì rất khó cố định một k/c nhất định từ dim line tới đối tượng)
Mong các bạn chỉ bảo tiếp nhé. %5Burl=
Đây là ví dụ về ý định của mình:
http://www.cadviet.com/upfiles/VD.dwg


Cái này có lẽ phải dùng lisp thôi
Bạn dùng thử
lệnh là :
- SelfAdjustDim : dùng khi chiều dài 2 chân dim = nhau, dim nằm trong cùng
- AdjustDim : dùng khi định vị trí dimline với 1 điểm cho trước
Đã sửa phần đổi hệ tọa độ

(defun Dxf(n e) (cdr (assoc n e)))

(defun ModDxf(n v e)

    (if (Dxf n e)

        (entmod (subst (cons n  v) (assoc n e) e))

        (entmod (append e (list (cons n  v))))

    )

)

(defun TSel(et ms)     (if ms (princ ms))    (ssget (if et (list (cons 0  et))))    )



(defun DimSpace () (* (getvar "DIMSCALE") (getvar "dimscale")))



(defun AdjustDim1 (p l e / a)

    (if (= 0 (logand 92 (Dxf 70 e)))

        (progn

            (setq a (angle (Dxf 14 e) (Dxf 10 e)))

            (ModDxf 10 (polar p a  (if (= 1 (rem  (Dxf 70 e) 2)) l (/ l (abs (sin (- a (Dxf 50 e))))))) e )    )

    )

)

 

(defun AdjustDim(ss l / i p)

  (if ss

        (progn

            (setq p (trans (getpoint "\nBase point:")1 0) i -1)

      (repeat (sslength ss)

            (setq i (1+ i) )    (AdjustDim1 p l (entget (ssname ss i)))

    )    ) )(princ)

)



(defun C:AdjustDim()    (AdjustDim (TSel "DIMENSION" "\nSelect Dimensions :") (DimSpace)))



(defun C:SelfAdjustDim( / e)

  (setq i -1 ss (TSel "DIMENSION" "\nSelect Dimensions :") )

  (if ss

    (repeat (sslength ss)

            (setq i (1+ i) e (entget (ssname ss i))  )

            (AdjustDim1 (Dxf 14 e) (DimSpace) e)

  ) )(princ)

)

  • 2

#7 toai

toai

    biết vẽ ellipse

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

Đã gửi 03 August 2009 - 04:56 PM

Cái này có lẽ phải dùng lisp thôi
Bạn dùng thử
lệnh là :
- SelfAdjustDim : dùng khi chiều dài 2 chân dim = nhau, dim nằm trong cùng
- AdjustDim : dùng khi định vị trí dimline với 1 điểm cho trước
Đã sửa phần đổi hệ tọa độ

Thanks! Đoạn lisp này rất đúng với ý của mình, nhưng nếu bạn có thể bố sung thêm tính năng sẽ gán được một giá trị chung bất kỳ cho đường dóng (chân dim) của tất cả các đối tượng đã được chọn thì thật hay. :s_dead:
  • 0
Mưu sự tại nhân, thành sự tại thiên.

#8 potter

potter

    biết vẽ arc

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

Đã gửi 05 August 2009 - 09:02 PM

Người nghĩ ra ý tưởng cũng hay và người viết lisp cũng hay, nhân tiện em xin hỏi bác ndtnv, hình như măc định khoảng cách từ basepoint tới đường dim của bác là 700, ở cty em hay dùng khoảng cách 600 cho các đường dim, em có thể thay đổi giá trị 700 này ở đâu, Thank bác nhiều
  • 0
Civil Engineering
Phone: 0125.228.7877

#9 Thangcowasu

Thangcowasu

    biết vẽ arc

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

Đã gửi 07 August 2009 - 09:02 AM

mình chưa bao giờ dùng list, cho mình hỏi muốn sài nó thì phải làm thế nào?
  • 0

#10 Thangcowasu

Thangcowasu

    biết vẽ arc

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

Đã gửi 07 August 2009 - 10:38 AM

mình có các đường Dim như thế này:(xem pic)Hình đã gửi
mình muốn các chân đường Dim cách đường line1 một khoảng cách bằng khoảng cách từ line1 đến line2.
Bác nào biết làm thế nào cho nhanh bày mình với, có cách nào làm tương tự như trim hay ex đường line không?
  • 0

#11 ndtnv

ndtnv

    biết dimordinate

  • Members
  • PipPipPipPipPip
  • 352 Bài viết
Điểm đánh giá: 308 (khá)

Đã gửi 03 September 2009 - 02:23 PM

Người nghĩ ra ý tưởng cũng hay và người viết lisp cũng hay, nhân tiện em xin hỏi bác ndtnv, hình như măc định khoảng cách từ basepoint tới đường dim của bác là 700, ở cty em hay dùng khoảng cách 600 cho các đường dim, em có thể thay đổi giá trị 700 này ở đâu, Thank bác nhiều

Bạn sửa trong hàm
(defun DimSpace () (* 7 (getvar "dimscale")))
Bản vẽ mẫu tỉ lệ 1/100 nên có dimscale = 100, kc dim là 7*100 = 700 đv trên bản vẽ
nếu bạn cần kc tương đối là 6 lần dimscale thì sửa thành
(defun DimSpace () (* 6 (getvar "dimscale")))
còn nếu là kc tuyệt đối thì sửa thành
(defun DimSpace () 600)
  • 1

#12 xaaaaao

xaaaaao

    Chưa sử dụng CAD

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

Đã gửi 20 May 2013 - 08:35 AM

các bác cho em hỏi có cách nào dim khoảng cách của line hoạc pline khi mình chọn vào đối tượng cần dim không? thay vì chọn vào điểm đầu và cuối của đoạn thẳng. các pro nao giỏi về lisp thì chỉ giáo em với.


  • 0

#13 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 4991 Bài viết
Điểm đánh giá: 2401 (tuyệt vời)

Đã gửi 20 May 2013 - 08:43 AM

các bác cho em hỏi có cách nào dim khoảng cách của line hoạc pline khi mình chọn vào đối tượng cần dim không? thay vì chọn vào điểm đầu và cuối của đoạn thẳng. các pro nao giỏi về lisp thì chỉ giáo em với.

Cho dù chọn vào đối tượng thì cũng cần phải biết kiểu dim: hor, ver, ali... và điểm đặt dim nữa, chứ không thể ăn gỏi kiểu này đâu bạn!


  • 0

#14 phongtran86

phongtran86

    biết vẽ point

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

Đã gửi 25 May 2013 - 07:52 PM

Anh hà chỉnh cho em líp trên biến khoảng cách đường kích thước với điểm base phụ thuộc vào cỡ chữ của dim với 3 lần chẳng hạn. Ví dụ text hight dim là 220 dimscale trong thẻ fit là 1 thi cỡ chữ là 220. cỡ chữ bằng Tchư x dimscale. Cảm ơn anh nhiều.


  • 0

#15 phongtran86

phongtran86

    biết vẽ point

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

Đã gửi 26 May 2013 - 10:55 AM

Mình định  sửa đoạn code khoảng cách đường kích thước dimension line đến điểm base point như này:

(defun DimSpace () (* 5 (getvar "dimscale") (getvar "dimtxt")))

Nhưng như này vẫn bất tiện. Vì đây là cỡ chữ của dimstyle hiện thời. Mình muốn nó là cỡ chữ của dim đc chỉnh khoảng cách thì làm ntn. :D Cũng đang mày mò nghịch lisp tí :) Anh Hà vào chỉ giáo nhé


  • 0

#16 phongtran86

phongtran86

    biết vẽ point

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

Đã gửi 26 May 2013 - 09:19 PM

up lên cho các anh vào giúp nào :)


  • 0

#17 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 4991 Bài viết
Điểm đánh giá: 2401 (tuyệt vời)

Đã gửi 26 May 2013 - 09:25 PM

Lisp ở trang nào? Chỉnh như thế nào thì nói cho rõ ra. Nói trước để bạn khỏi thất vọng: nếu đơn giản thì mần giúp, còn phức tạp thì ngại sửa lisp của người khác lắm. 4R có nhiều người mà sao bạn cứ chỉ đích danh tôi, không hay lắm đâu.


  • 0

#18 phongtran86

phongtran86

    biết vẽ point

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

Đã gửi 26 May 2013 - 10:17 PM

Lisp ở trang nào? Chỉnh như thế nào thì nói cho rõ ra. Nói trước để bạn khỏi thất vọng: nếu đơn giản thì mần giúp, còn phức tạp thì ngại sửa lisp của người khác lắm. 4R có nhiều người mà sao bạn cứ chỉ đích danh tôi, không hay lắm đâu.

http://www.cadviet.c...fadjustdim2.lspn Xin lỗi vì đã làm phiền anh. Tài em thấy anh trả lời ở trên nên em phiền chút.

Mình định  sửa đoạn code khoảng cách đường kích thước dimension line đến điểm base point như này:

(defun DimSpace () (* 5 (getvar "dimscale") (getvar "dimtxt")))

Nhưng như này vẫn bất tiện. Vì đây là cỡ chữ của dimstyle hiện thời. Mình muốn nó là cỡ chữ của dim đc chỉnh khoảng cách thì làm ntn.


  • 0

#19 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 4991 Bài viết
Điểm đánh giá: 2401 (tuyệt vời)

Đã gửi 26 May 2013 - 11:32 PM

Hàm lấy height của Dim được chọn:

(defun Get_height(ent / blk1 blklst hei)
 (setq blk1 (cdr (assoc -2 (tblsearch "BLOCK" (cdr (assoc 2 (entget ent (list "*"))))))))
 (while (setq blk1 (entnext blk1))
  (setq blklst (entget blk1))
  (if (= (cdr (assoc 0 blklst)) "MTEXT")
   (setq hei (cdr (assoc 40 blklst)))))
 hei)
 


  • 0

#20 phongtran86

phongtran86

    biết vẽ point

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

Đã gửi 27 May 2013 - 08:11 AM

em lắp vào hàm trên

(defun Get_height(ent / blk1 blklst hei)
 (setq blk1 (cdr (assoc -2 (tblsearch "BLOCK" (cdr (assoc 2 (entget ent (list "*"))))))))
 (while (setq blk1 (entnext blk1))
  (setq blklst (entget blk1))
  (if (= (cdr (assoc 0 blklst)) "MTEXT")
   (setq hei (cdr (assoc 40 blklst)))))
 hei)
(defun DimSpace () (* 5 (Get_height(ent))))

không chạy được. Em gà mấy cái này quá. Biến ent là dim đc chọn thì trong hàm dímpace nhập cái gì nhỉ :D


  • 0