Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Mỹ Siro

[Yêu Cầu] Nhờ Viết Lisp Chia Dim Và Gộp Dim.

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

Mỹ Siro    5

Em muốn nhờ các anh viết giúp giùm em 1 lisp chia dim và gộp dim lại

Ví dụ ta có 1 dim tổng của 1 đối tượng như này: 

 

159f0b.png

 

Sau khi ta pick vào các điểm trên đối tượng thì ta được như này:

 

22fbb0.png

 và ngược lại là gộp các dim con thành 1 dim tổng.

Em xin cảm ơn và chúc các anh sức khỏe và có 1 ngày làm việc thành công !

Ps: Dim thì cứ lấy theo dim đang được set current hiện hành là được ạ !

  • Vote giảm 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
Danh Cong    109

Mình thấy yêu cầu của bạn có thể giải quyết trực tiếp: 

+ Chia Dim: dùng lệnh đo liên tiếp DCO. ( Vì yêu cầu của bạn phải pick điểm trên đối tượng ).

+ Cộng Dim: Sao lại phải chọn các Dim con trong khi chỉ cần Dim điểm đầu và điểm cuối là xong? Tự dưng lại phức tạp hoá 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
Mỹ Siro    5

Mình thấy yêu cầu của bạn có thể giải quyết trực tiếp: 

+ Chia Dim: dùng lệnh đo liên tiếp DCO. ( Vì yêu cầu của bạn phải pick điểm trên đối tượng ).

+ Cộng Dim: Sao lại phải chọn các Dim con trong khi chỉ cần Dim điểm đầu và điểm cuối là xong? Tự dưng lại phức tạp hoá 1 vấn đề ?

Mình  làm việc với số lượng dim rất nhiều nên ngồi dim rất vất vả bạn à, với lại các đối tượng nó gần nhau nên nhiều khi pick nhầm nữa, nói chung là nếu không quan trọng với mình thì mình đâu có tạo topic để nhờ đâu ?

Thứ 2 vấn đề của mình là làm bên thiết kế nhiều khi ước tính chia khoảng cách các đối tượng, nếu ko phù hợp thì lại gộp dim lại rồi chia ra, đở mất công ngồi dim lại từ đầu, với số lượng dim là rất nhiều.

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
quansla    232

Mình  làm việc với số lượng dim rất nhiều nên ngồi dim rất vất vả bạn à, với lại các đối tượng nó gần nhau nên nhiều khi pick nhầm nữa, nói chung là nếu không quan trọng với mình thì mình đâu có tạo topic để nhờ đâu ?

Thứ 2 vấn đề của mình là làm bên thiết kế nhiều khi ước tính chia khoảng cách các đối tượng, nếu ko phù hợp thì lại gộp dim lại rồi chia ra, đở mất công ngồi dim lại từ đầu, với số lượng dim là rất nhiều.

 

 

Cái này là ăn theo kiểu làm việc của Revit mà, cơ mà theo mình nghĩ làm thiết kế quan trọng là cẩn thận thôi, bỏ công sức ra một chút, bé quá mà pick nhầm thì Zoom lên, trích tỉ lệ lớn, chọn DIM nhỏ hơn rồi Ma lại; bỏ qua không trích nữa - trích cái chính thôi

Mình nghĩ là nếu các pro viết thì viết được, nhưng có cần thiết không, có lệ thuộc vào LISPer quá khô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
quang_lac    15

Lisp chia dim cho bạn

(defun c:LegLengthMod ( / ss dimobjs)
;; codehimbelonga KerryBrown@theSwamp 2010.05.28
(vl-load-com)
(if (and (setq ss (ssget '((0 . "DIMENSION"))))
(setq dimobjs (mapcar 'vlax-ename->vla-object
(vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))
)
)
)
(foreach dim dimobjs
(vla-put-extlinefixedlensuppress dim :vlax-true)
(vla-put-extlinefixedlen dim (* 2 (vla-get-textheight dim)))
)
)
(princ)
)
(defun c:SplitDims (/ sel newpt ent edata elist)
;; codehimbelonga KerryBrown@theSwamp 2010.05.28
(if (and (setq sel (entsel "\nSelect Dimension to Split."))
(setq newpt (getpoint "\Select new Dim Point"))
)
(progn (setq ent (car sel)
edata (entget ent)
elist (vl-remove-if
'(lambda (pair)
(member (car pair)
(list -1 2 5 102 310 300 330 331 340 350 360 410)
)
)
edata
)
)
(entmod (subst (cons 14 newpt) (assoc 14 elist) edata))
(entmakex (subst (cons 13 newpt) (assoc 13 elist) elist))
)
)
(princ)
)
  • 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
Mỹ Siro    5

 

Lisp chia dim cho bạn

(defun c:LegLengthMod ( / ss dimobjs)
;; codehimbelonga KerryBrown@theSwamp 2010.05.28
(vl-load-com)
(if (and (setq ss (ssget '((0 . "DIMENSION"))))
(setq dimobjs (mapcar 'vlax-ename->vla-object
(vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))
)
)
)
(foreach dim dimobjs
(vla-put-extlinefixedlensuppress dim :vlax-true)
(vla-put-extlinefixedlen dim (* 2 (vla-get-textheight dim)))
)
)
(princ)
)
(defun c:SplitDims (/ sel newpt ent edata elist)
;; codehimbelonga KerryBrown@theSwamp 2010.05.28
(if (and (setq sel (entsel "\nSelect Dimension to Split."))
(setq newpt (getpoint "\Select new Dim Point"))
)
(progn (setq ent (car sel)
edata (entget ent)
elist (vl-remove-if
'(lambda (pair)
(member (car pair)
(list -1 2 5 102 310 300 330 331 340 350 360 410)
)
)
edata
)
)
(entmod (subst (cons 14 newpt) (assoc 14 elist) edata))
(entmakex (subst (cons 13 newpt) (assoc 13 elist) elist))
)
)
(princ)
)

cảm ơn bạn rất nhiều, đã thanks 1 điểm, mình có góp ý 1 chút là lisp chia dim dùng đã ok rồi nhưng mỗi lần chỉ pick chia dim được 1 lần rồi phải gọi lệnh lại để pick chia dim điểm tiếp theo, bạn có cách nào pick chọn dim cần chia 1 lần rồi mỗi lần mình pick điểm trên đối tượng là nó chia tiếp không, đến khi thoát lệnh thì thôi. Mình cảm ơn bạn trước :)

còn lisp gộp dim thì hình như code nhẫm lẩn hay ko mà nó không gộp dim, cảm ơn bạn !

  • Vote giảm 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

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


×