quocanhxd05 6 Báo cáo bài đăng Đã đăng Tháng 6 19, 2009 Chào các sư huynh, Đệ muốn nhờ mấy huynh hướng dẫn cách viết ra 1 đoạn mã để lấy ra tên của các Layout tab. Xin cảm ơn. Tiể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
q288 166 Báo cáo bài đăng Đã đăng Tháng 6 19, 2009 Chào các sư huynh,Đệ muốn nhờ mấy huynh hướng dẫn cách viết ra 1 đoạn mã để lấy ra tên của các Layout tab. Xin cảm ơn. Tiểu đệ. Đoạn mã này lấy hết các layout tab của bản vẽ hiện hành, Kể cả layout "Model". (vl-load-com) (vlax-for lay (vla-get-Layouts (vla-get-ActiveDocument (vlax-get-acad-object))) (setq Lst (cons (vla-get-Name lay) Lst))) 4 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
thiep 367 Báo cáo bài đăng Đã đăng Tháng 6 19, 2009 Đoạn mã này lấy hết các layout tab của bản vẽ hiện hành, Kể cả layout "Model". (vl-load-com) (vlax-for lay (vla-get-Layouts (vla-get-ActiveDocument (vlax-get-acad-object))) (setq Lst (cons (vla-get-Name lay) Lst))) q288, cảm ơn bạn, bạn có nhiều đoạn mã VL rất hay, thiep này còn phải học mót bạn nhiều. Từ đoạn mã này, Thiep phát triển thêm để lấy tên của layers, groups, Linetypes, blocks, thuận tiện hơn hàm tblnext nhiều. Tuy nhiên lấy tên của block thì kết quả cho thêm vài cái tên ngoài ý muốn: (defun c:tenblock (/ lay Lst) (vlax-for lay (vla-get-blocks (vla-get-ActiveDocument (vlax-get-acad-object))) (setq Lst (cons (vla-get-Name lay) Lst)) ) ) Kết quả: ("ten" "TRAM-COT" "_Dot" "at" "*Paper_Space0" "*Paper_Space" "*Model_Space") Các tên màu đỏ là tên block ngoài ý muốn. Thiep chưa hiểu tại sao? 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
q288 166 Báo cáo bài đăng Đã đăng Tháng 6 19, 2009 q288, cảm ơn bạn, bạn có nhiều đoạn mã VL rất hay, thiep này còn phải học mót bạn nhiều.Từ đoạn mã này, Thiep phát triển thêm để lấy tên của layers, groups, Linetypes, blocks, thuận tiện hơn hàm tblnext nhiều. Tuy nhiên lấy tên của block thì kết quả cho thêm vài cái tên ngoài ý muốn: (defun c:tenblock (/ lay Lst) (vlax-for lay (vla-get-blocks (vla-get-ActiveDocument (vlax-get-acad-object))) (setq Lst (cons (vla-get-Name lay) Lst)) ) ) Kết quả: ("ten" "TRAM-COT" "_Dot" "at" "*Paper_Space0" "*Paper_Space" "*Model_Space") Các tên màu đỏ là tên block ngoài ý muốn. Thiep chưa hiểu tại sao? Cad coi các dim và các space (Model_Space, Paper_Space) cũng là block luôn, chỉ khác với block thật là có dấu * đằng trước thôi. 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
quocanhxd05 6 Báo cáo bài đăng Đã đăng Tháng 6 19, 2009 Đoạn mã này lấy hết các layout tab của bản vẽ hiện hành, Kể cả layout "Model". (vl-load-com) (vlax-for lay (vla-get-Layouts (vla-get-ActiveDocument (vlax-get-acad-object))) (setq Lst (cons (vla-get-Name lay) Lst))) Xin cảm ơn sư huynh nhiều. Tiểu đệ còn phải học ở huynh rất nhiều. Đệ đã load và sử dụng đoạn mã của huynh rồi. Nhưng thú thật đệ không hiểu gì hết. Huynh có thể giải thích cho đệ không? Đệ có xem trong menu help nhưng vẫn không hiểu. Cảm ơn huynh nhiều nha! 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
q288 166 Báo cáo bài đăng Đã đăng Tháng 6 19, 2009 Xin cảm ơn sư huynh nhiều. Tiểu đệ còn phải học ở huynh rất nhiều.Đệ đã load và sử dụng đoạn mã của huynh rồi. Nhưng thú thật đệ không hiểu gì hết. Huynh có thể giải thích cho đệ không? Đệ có xem trong menu help nhưng vẫn không hiểu. Cảm ơn huynh nhiều nha! (vlax-get-acad-object) = cái acad bạn đang mở. (vla-get-ActiveDocument (vlax-get-acad-object)) = bản vẽ hiện hành (trong số các bản vẽ đang mở) (vla-get-Layouts (vla-get-ActiveDocument (vlax-get-acad-object))) = tập hợp các layout của bản vẽ hiện hành. (vlax-for lay ...) = ứng với mỗi layout (tạm đặt tên là lay) (vla-get-Name lay) = lấy tên của layout lay (cons (vla-get-Name lay) Lst) = đưa cái tên đó vào danh sách Lst. 2 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
quocanhxd05 6 Báo cáo bài đăng Đã đăng Tháng 6 19, 2009 (vlax-get-acad-object) = cái acad bạn đang mở.(vla-get-ActiveDocument (vlax-get-acad-object)) = bản vẽ hiện hành (trong số các bản vẽ đang mở) (vla-get-Layouts (vla-get-ActiveDocument (vlax-get-acad-object))) = tập hợp các layout của bản vẽ hiện hành. (vlax-for lay ...) = ứng với mỗi layout (tạm đặt tên là lay) (vla-get-Name lay) = lấy tên của layout lay (cons (vla-get-Name lay) Lst) = đưa cái tên đó vào danh sách Lst. Một lần nữa xin cảm ơn huynh. 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