Rated 5/5 based on 240179 internet user reviews

Jump to content


Change Photo
- - - - -

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
  • 55 posts
Danh tiếng: 1 (b́nh thường)

Gửi vào 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ẽ, ḿ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ị. Ḿ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 posts
Danh tiếng: 72 (tàm tạm)

Gửi vào 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ẽ, ḿ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ị. Ḿ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:
Posted Image
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.
Posted Image
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 posts
Danh tiếng: 15 (tàm tạm)

Gửi vào 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ẽ, ḿ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ị. Ḿ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)
Posted Image
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
  • 55 posts
Danh tiếng: 1 (b́nh thường)

Gửi vào 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)
Posted Image
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 ḿ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 ḿ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 posts
Danh tiếng: 72 (tàm tạm)

Gửi vào 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 ḿ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 lệnh linetype

  • Members
  • PipPipPipPip
  • 242 posts
Danh tiếng: 198 (tàm tạm)

Gửi vào 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
  • 55 posts
Danh tiếng: 1 (b́nh thường)

Gửi vào 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 ḿ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 posts
Danh tiếng: 7 (b́nh thường)

Gửi vào 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 posts
Danh tiếng: 8 (b́nh thường)

Gửi vào 07 August 2009 - 09:02 AM

ḿnh chưa bao giờ dùng list, cho ḿ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 posts
Danh tiếng: 8 (b́nh thường)

Gửi vào 07 August 2009 - 10:38 AM

ḿnh có các đường Dim như thế này:(xem pic)Posted Image
ḿ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 ḿ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 lệnh linetype

  • Members
  • PipPipPipPip
  • 242 posts
Danh tiếng: 198 (tàm tạm)

Gửi vào 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 posts
Danh tiếng: 0 (b́nh thường)

Gửi vào 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
  • 4,096 posts
Danh tiếng: 1954 (tuyệt vời)

Gửi vào 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ẽ rectang

  • Members
  • PipPip
  • 88 posts
Danh tiếng: 3 (b́nh thường)

Gửi vào 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ẽ rectang

  • Members
  • PipPip
  • 88 posts
Danh tiếng: 3 (b́nh thường)

Gửi vào 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ẽ rectang

  • Members
  • PipPip
  • 88 posts
Danh tiếng: 3 (b́nh thường)

Gửi vào 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
  • 4,096 posts
Danh tiếng: 1954 (tuyệt vời)

Gửi vào 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ẽ rectang

  • Members
  • PipPip
  • 88 posts
Danh tiếng: 3 (b́nh thường)

Gửi vào 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
  • 4,096 posts
Danh tiếng: 1954 (tuyệt vời)

Gửi vào 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ẽ rectang

  • Members
  • PipPip
  • 88 posts
Danh tiếng: 3 (b́nh thường)

Gửi vào 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