Đánh giá chủ đề:
  • 0 Vote(s) - Trung bình 0
  • 1
  • 2
  • 3
  • 4
  • 5
Quick Draw (tổng hợp tiện ích)
#1
Download và hướng dẫn cài đặt xem tại đây: http://www.ketcausoft.com/pages/cac-ung-...n-phi-khac

1. Vẽ dầm phụ trên Mặt bằng kết cấu
  • Lệnh tắt: dp
  • Lệnh đầy đủ: vedamphu
Các bước vẽ:
  1. Gọi lệnh dp
  2. Chọn các điểm P1, P2 trên dầm chính và P3 - xác định phía đặt dầm phụ
  3. Chọn loại dầm cần vẽ, nhập các thông số liên quan
Clip




.
Tham gia nhóm Người dùng phần mềm KetcauSoft để nhận được các thông tin cập nhật và phản hồi về phần mềm: https://www.facebook.com/groups/306759843423613
Trả lời
#2
Bản cập nhật ngày 05.10.2013 - chức năng vẽ cột trên mặt bằng

Download tại địa chỉ: http://www.ketcausoft.com/pages/cac-ung-...n-phi-khac

Trả lời
#3
Góp ý chương trình vẽ cột trên mặt bằng:

Một Tiện ích hay, (Tue_NV cũng đã và đang xây dựng), mình góp ý thêm cho chương trình:
1./ Thêm vào chức năng Hatch tất cả các kiểu cho cột
2./ Thêm vào tính năng sửa Cx, Cy, Dx, Dy. Quét 1 loạt các cột là thay đổi tất
3./ Thêm tính năng chọn trục cột là giao điểm của lưới cột (của bạn là pick từng điểm)
4./ Thêm tính năng dim cho cột
...
Chúc thành công!
Trả lời
#4
(10-09-2013, 07:37 AM)Tue_NV Đã viết: Góp ý chương trình vẽ cột trên mặt bằng:

Một Tiện ích hay, (Tue_NV cũng đã và đang xây dựng), mình góp ý thêm cho chương trình:

3./ Thêm tính năng chọn trục cột là giao điểm của lưới cột (của bạn là pick từng điểm)

...
Chúc thành công!
Em đang bí mục này quá anh ạ, em đang chưa biết tìm các giao điểm như thế nào, anh có giải pháp gì không?
Trả lời
#5
(10-09-2013, 10:10 AM)Ho Viet Hung Đã viết:
(10-09-2013, 07:37 AM)Tue_NV Đã viết: Góp ý chương trình vẽ cột trên mặt bằng:

Một Tiện ích hay, (Tue_NV cũng đã và đang xây dựng), mình góp ý thêm cho chương trình:

3./ Thêm tính năng chọn trục cột là giao điểm của lưới cột (của bạn là pick từng điểm)

...
Chúc thành công!
Em đang bí mục này quá anh ạ, em đang chưa biết tìm các giao điểm như thế nào, anh có giải pháp gì không?
- Hùng có thể tham khảo File Lisp cắt phần dầm giao nhau mà mình viết, trong đó có ý về tìm điểm giao. Việc xây dựng giao điểm của lưới cột đơn giản hơn nhiều
- Khi có các toạ độ của các điểm giao thì ta chỉ việc duyệt qua các toạ độ đó và chèn cột vào và vị trí tâm cột chính ngay điểm giao đó
- Về đối tượng cột vẽ trên thì mình nghĩ nên xây dựng bằng đối tượng Block Dynamic sẽ hiệu quả hơn so với Pline trong việc chỉnh sửa cột trên mặt bằng định vị cột

Vài lời góp ý. Chúc thành công!
Trả lời
#6
(10-09-2013, 03:14 PM)Tue_NV Đã viết: - Hùng có thể tham khảo File Lisp cắt phần dầm giao nhau mà mình viết, trong đó có ý về tìm điểm giao. Việc xây dựng giao điểm của lưới cột đơn giản hơn nhiều
- Khi có các toạ độ của các điểm giao thì ta chỉ việc duyệt qua các toạ độ đó và chèn cột vào và vị trí tâm cột chính ngay điểm giao đó
- Về đối tượng cột vẽ trên thì mình nghĩ nên xây dựng bằng đối tượng Block Dynamic sẽ hiệu quả hơn so với Pline trong việc chỉnh sửa cột trên mặt bằng định vị cột

Vài lời góp ý. Chúc thành công!
.
Hàm lisp của anh là hàm cho trả về các giao điểm bất kỳ trong vùng chọn hay là trả về các giao điểm của hai đối tượng được chọn ạ?
Trả lời
#7
(10-09-2013, 04:34 PM)Ho Viet Hung Đã viết: Hàm lisp của anh là hàm cho trả về các giao điểm bất kỳ trong vùng chọn hay là trả về các giao điểm của hai đối tượng được chọn ạ?
Lisp BRG xử lý phức tạp hơn vì xử lý ename và sort các giao điểm đã tìm được rồi mới break
Đó trả về giao điểm của hàng loạt đối tượng được chọn
Hùng xem thêm đoạn code này. Mình trích từ lisp brg và sửa lại
Lisp gdiem: tìm giao điểm của các đối tượng được chọn và vẽ 1 point vào vị trí giao điểm
Kết quả của giao điểm nằm trong biến tapgiao2
Hùng tham khảo nhé:


(defun c:gdiem(/ ss i j ename1 ename2 tapgiao tapgiaodiem tapgiao2)
;;write by Tue_NV
(vl-load-com)
(setvar "pdmode" 3)
(if (setq ss (ssget '((0 . "*LINE,ARC,CIRCLE"))))
(progn
(setq i 0 j 0)
(setq tapgiao nil tapgiaodiem nil tapgiao2 nil tapgiaolay nil)
(while (setq ename1 (ssname ss i))
(while (setq ename2 (ssname ss j))
(setq giaodiem
(vlax-invoke
(vlax-ename->vla-object ename1)
'IntersectWith
(vlax-ename->vla-object ename2) 0
)
)
(setq tapgiaodiem (append tapgiaodiem (list giaodiem)))
(setq j (1+ j))
)
(setq tapgiao (append tapgiao tapgiaodiem) tapgiaodiem nil)
(setq i (1+ i) j 0)



(foreach x (vl-remove nil tapgiao)
(if (null (member (VL-PRINC-TO-STRING x) (mapcar 'VL-PRINC-TO-STRING tapgiao2)))
(setq tapgiao2 (append tapgiao2 (list x)))
)
)
(setq tapgiao nil)
)
);progn
);if
(foreach x tapgiao2 (command "point" "non" x))
)
Trả lời
#8
Dùng method Entity.IntersectWith để tìm giao điểm cùa 2 entity
Trả lời
#9
(10-12-2013, 03:15 AM)detailing Đã viết: Dùng method Entity.IntersectWith để tìm giao điểm cùa 2 entity
.
Uhm, mình cũng biết hàm này, tuy nhiên nếu lưới cột là một đối tượng XREF thì lại không có giải pháp
Trả lời
#10
nếu user select dc các trục trong xref thì bạn mới insert cột vào. nếu ko select dc thì sao insert dc.
Nếu bạn vẫn muốn tìm giao điểmcủa trục trong XREF (mình nghĩ ý bạn xref đó chỉ có các trục thôi) thì có thể thử theo cách sau:
1. Đọc hết các entities của xref drawing lấy tất cả tọa độ giao điểm
2. tìm tọa độ insert point của xref trong bản vẽ gốc, tìm scale factor, UCS hiện hành
3. transform tất cả các tọa độ tìm được ở B1 theo tọa độ của bản vẽ gốc.

Good luck!

p/s: Lưu ý bạn là method intersectWith cho 32 bit và 64 bit là khác nhau Big Grin
Trả lời


Đi tới chuyên mục:


Thành viên đang xem chủ đề: 1 Khách