nhimret
-
Số lượng nội dung
41 -
Đã tham gia
-
Lần ghé thăm cuối
-
Ngày trúng
1
Bài đăng được đăng bởi nhimret
-
-
Dùng lisp của bác Tien2005 từ phiên bản đầu tiên, đến phiên bản cuối cùng 2022 v1.1. Rất tốt, nhưng lại không có in layout. Muốn in hàng loạt layout thì phải tạo sheetset hoặc Publish.
Còn lisp của bác NTH2024 hôm nay vừa cài thử, thì về giao diện và tính năng tương tự như bác Biet ve cad, có in layout
Nói chung là nếu như các bác chỉ in ở Model, thì lisp mpl của bác tien2005 hoàn hảo. Nhưng nếu cần in layout nhanh thì bắt buộc phải mua lisp thôi.
P/s: vừa dùng lisp của bác NTH2024, tính năng in ấn đều ngon, nhưng hình như không lưu được setting in ấn (hoặc do mới dùng vài lần chưa mò được hết tính năng). Bác thêm được tự động lưu lại setting thì ổn áp
-
-
gửi bác mã kích hoạt: A1BE-80AB-9C12-A9F1-0CDB
cám ơn bác trước :>
-
Vào lúc 14/3/2022 tại 08:05, Nguyễn Hà Huy đã nói:Bác cập nhập cho em chạy trên Cad 2022 với, nó khác bọt với Cad 2021 trở xuống
cad 2022 ngon lành nhé, vẫn đang sử dụng mpl từ hồi 2022 mới ra đến giờ
- 1
-
do block khung tên có 1 hoặc nhiều đối tượng bị vượt ra ngoài (mtext, 1 đối tượng ẩn), kiểm tra lại block khung tên
-
-
Trước tôi có download 1 lisp của bác nào đó trên forum (xin lỗi bác không nhớ tên), dùng rất ok
A. Tác dụng của lisp: chọn N pline hoặc N đường khép kín ==> lisp tự động thống kê ra toạ độ vào file txt để copy vào excel
B. Nhờ các bác thêm hộ 1 chức năng là nếu như chọn cùng lúc "N" pline thì giữa toạ độ của "N" pline đấy nó sẽ có 1 dòng cách trắng để phân biệt toạ độ của các đường
Cám ơn các bác nhiều!
(lisp đã đính kèm ở dưới)
- 1
-
Vào lúc 25/6/2020 tại 21:48, huunhantvxdts đã nói:Sửa lại cho bạn thêm block
(defun c:ii (/ lstdt mn mx cur_lay oldos Box) (vl-load-com) (setq cur_lay (getvar "clayer" )) (setq oldos (getvar "OSMODE")) (setvar "osmode" 0) (setvar "cmdecho" 0) (if (not (tblsearch "layer" "Khung Viewport")) (COMMAND "LAYER" "M" "Khung Viewport" "C" "1" "" "L" "CONTINUOUS" "" "LW" "0.13" "" "P" "N" "" "") ) (setvar "clayer" "Khung Viewport") (prompt "\nChon doi tuong:") (setq lstdt (acet-ss-to-list (ssget '((0 . "LWPOLYLINE,insert"))))) (foreach ent lstdt (vla-getboundingbox (vlax-ename->vla-object ent) 'mn 'mx) (vl-cmdf "._rectang" (vlax-safearray->list mn) (vlax-safearray->list mx)) (setq Box (vlax-ename->vla-object (entlast))) (vl-catch-all-apply 'vla-put-ConstantWidth (list Box 0.5)) ) (setvar "clayer" cur_lay) (setvar "osmode" oldos) (setvar "CMDECHO" 1) (princ) )
cám ơn bác, đã ngon rồi <3
-
7 giờ trước, huunhantvxdts đã nói:Chỉnh lại cho bạn nó hoàn thiện hơn
(defun c:ii (/ lstdt mn mx cur_lay oldos Box) (vl-load-com) (setq cur_lay (getvar "clayer" )) (setq oldos (getvar "OSMODE")) (setvar "osmode" 0) (setvar "cmdecho" 0) (if (not (tblsearch "layer" "Khung Viewport")) (COMMAND "LAYER" "M" "Khung Viewport" "C" "1" "" "L" "CONTINUOUS" "" "LW" "0.13" "" "P" "N" "" "") ) (setvar "clayer" "Khung Viewport") (prompt "\nChon doi tuong:") (setq lstdt (acet-ss-to-list (ssget '((0 . "LWPOLYLINE"))))) (foreach ent lstdt (vla-getboundingbox (vlax-ename->vla-object ent) 'mn 'mx) (vl-cmdf "._rectang" (vlax-safearray->list mn) (vlax-safearray->list mx)) (setq Box (vlax-ename->vla-object (entlast))) (vl-catch-all-apply 'vla-put-ConstantWidth (list Box 0.5)) ) (setvar "clayer" cur_lay) (setvar "osmode" oldos) (setvar "CMDECHO" 1) (princ) )
cám ơn bác đã bỏ thời gian. Mục đích của lisp là để bo viền khung tên (hoặc 1 block chữ nhật), sau đó dùng các lisp xuất các rectang đó mỗi một rectang là một layout (hiện giờ các lisp free trên cadviet hay là lisp bán đều chỉ áp dụng được với khung chữ nhật
Do đó bác sửa lisp tuy quét hàng loạt được rồi nhưng lại không chọn được block :(
Nếu được bác sửa lại hộ chọn được cả block thì tốt quá.
Cám ơn bác trước.
-
Tôi có lisp bo viền 1 khung tên, nhưng mỗi lần chỉ được 1 khung tên
(defun c:ii (/ eName mn mx) (vl-load-com) (COMMAND "LAYER" "M" "Khung Viewport" "C" "1" "" "L" "CONTINUOUS" "" "LW" "0.13" "" "P" "N" "" "") (if (setq eName (car (entsel "\n >> Select Object >> "))) (progn (vla-getboundingbox (vlax-ename->vla-object eName) 'mn 'mx) (vl-cmdf "._rectang" (vlax-safearray->list mn) (vlax-safearray->list mx)))) (princ))
Nhờ các bác tư vấn hộ có cách nào chọn 1 loạt khung tên để nó bo viền 1 loạt không. Cám ơn rất nhiều.
-
Hiện giờ tôi đang dùng lisp của bạn nhoclangbat trong topic bên dưới.
;========LISP TAO VIEWPORT TREN LAYOUT BANG CACH CHON O MODEL======== (defun C:mtl(/ taphop soluong ten size i index oldos) (command "UNDO" "BE") (setq oldos (getvar "osmode")) (setvar "OSMODE" 0) (setq taphop(ssget)) (setq soluong (sslength taphop)) (setq ten (getstring 1 "\n Nhap ten layout:")) (setq index 0) (setq i 0) (while (< index soluong) (setq i(1+ i)) (setq khung(ssname taphop index)) (setq lst(acet-geom-vertex-list khung)) (command "COPYCLIP" khung "") (command "LAYOUT" "N" (strcat ten (rtos i 2 0))) (command "LAYOUT" "S" (strcat ten (rtos i 2 0))) (command "layout" "d" "layout1" "") (command "layout" "d" "layout2" "") (command "layout" "d" "layout3" "") (command "ERASE" "ALL" "") (command "PASTECLIP" "0,0") (command "MVIEW" "O" (entlast)) (command "MSPACE") (command "ZOOM" (nth 0 lst) (nth 2 lst)) (command "PSPACE") (command "ZOOM" "E") (command "PLOT" "Y" "" "" size "M" "L" "N" "W" "0,0" (list (abs(- (car (nth 2 lst)) (car (nth 0 lst)))) (abs(- (cadr (nth 2 lst)) (cadr (nth 0 lst))))) "F" "" "Y" "" "Y" "N" "N" "N" "N" "Y" "N") (command "MODEL") (setq index (+ index 1)) ) (command "UNDO" "END") (setvar "OSMODE" oldos) (princ) )
Lisp của nhoclangbat và các bạn tham gia topic đều chỉ thực hiện theo ý chủ thớt là chọn 1 khung chữ nhật.
Nhờ mọi người chỉnh hộ có thể chọn cả 1 khung tên có sẵn (dạng xref hoặc block).
Cám ơn nhiều.
-
thử nghiên cứu lisp tính tổng diện tích này xem
-
42 phút trước, Biet ve CAD đã nói:Bạn thử dòng này xem
(defun c:11 (/ ss1) (setq ss1 (cdr(assoc 8 (entget (car (entsel "select object:")))))) (command "-layer" "S" ss1 ""))
cám ơn bác. đã ngon rồi :>
-
xin hỏi mọi người, tôi muốn làm 1 lisp về chuyển layer hiện hành về layer của 1 đối tượng.
Trong cad có lệnh -layer --> Set --> chọn đối tượng --> cad chuyển layer về layer đối tượng.
lisp như sau:
(defun c:11 (/ ss1) (setq ss1 (ssget)) (command "-layer" "s" "" ss1 ""))
Không biết lỗi chỗ nào mà lúc thực hiện thì cad báo lỗi, trong khi cũng dòng lisp tương tự thế này đối với các lệnh khác thì lại được
Nhờ các bác chỉ hộ lỗi sai
Cám ơn nhiều.
-
2 giờ trước, Doan Van Ha đã nói:Vào lệnh UNITS mà chỉnh số chữ số lẻ tùy thích
à ra thế, cám ơn bác :D đã ổn.. nhẹ cả người, trước cứ phải bấm máy tính để trừ đi các diện tích bên trong
-
Vào lúc 18/3/2020 tại 14:14, tien2005 đã nói:@nhimret Bạn tìm dòng (text1 str (nentsel "\nChon TEXT ke ... rồi thay bằng (text1 (strcat "S = " str " m2") (nentsel "\nChon TEXT ke....
Cám ơn bác, đã ngon lành... à bác cho hỏi luôn là lisp hiện giờ đang để số sau thập phân có 4 chữ số, giờ muốn chỉ còn 2 chữ số thôi thì lệnh gì nhỉ
-
2 giờ trước, Biet ve CAD đã nói:Lisp Tính toán của mình cũng có chức năng này ^^:
lisp của bác rất trực quan sinh động dễ hiểu nhưng thao tác hơi phức tạp. Đã download và like video của bác.
Vẫn cần bác @Duong Nhat Duy hỗ trợ hoàn thiện hộ lisp UU ạ.
- 1
-
Vào lúc 10/3/2020 tại 11:51, Duong Nhat Duy đã nói:Do gà nên mình ko thể xác định được vùng nào nằm trong, vùng nào nằm ngoài như yêu cầu của bạn được, nên mình thêm lệnh UH, chọn 2 lần, lần đầu chọn tính tổng (ví dụ A, B), lần sau chọn tính hiệu (ví dụ C, D) (nếu ko cần tính hiệu thì cứ thế enter).
về thuật toán thì lisp quá chuẩn rồi, nhờ bác chỉnh hộ đơn vị về m2, và khi chọn text kết quả thì dòng text sẽ hiện ra là S="ket qua" m2
Cám ơn bác nhiều.
- 1
-
Vào lúc 10/3/2020 tại 11:51, Duong Nhat Duy đã nói:Do gà nên mình ko thể xác định được vùng nào nằm trong, vùng nào nằm ngoài như yêu cầu của bạn được, nên mình thêm lệnh UH, chọn 2 lần, lần đầu chọn tính tổng (ví dụ A, B), lần sau chọn tính hiệu (ví dụ C, D) (nếu ko cần tính hiệu thì cứ thế enter).
cám ơn bác nhiều, bác viết lisp chuẩn 100% ý đồ của tôi đấy chứ. Làm phương án phải dịch chuyển từng tí một để tính diện tích cho khớp với diện tích đã cho. Cứ phải bấm máy tính khổ dã man. Vừa test thử, ngon lành lắm luôn
-
(defun c:1 () (ssget) (command "change" "p" "" "p" "la" "a-Tuong" ""))
(defun c:2 () (ssget) (command "change" "p" "" "p" "la" "a-Betong" ""))
(defun c:3 () (ssget) (command "change" "p" "" "p" "la" "a-net manh" ""))
(defun c:4 () (ssget) (command "change" "p" "" "p" "la" "a-trattuong" ""))
(defun c:5 () (ssget) (command "change" "p" "" "p" "la" "a-hatch" ""))
(defun c:6 () (ssget) (command "change" "p" "" "p" "la" "a-thay" ""))cậu chỉnh layer "a-Tuong", "a=Betong" theo các layer hiện hành của cậu nhé. Lisp này có tác dụng là chọn đối tượng, ấn số 1 thì nó sẽ chuyển layer thành A-Tương, tương tự 2 là a-betong
-
Vào lúc 26/2/2020 tại 23:21, dtdat đã nói:Theo tính chất công việc khi hatch đối tượng xong mình đều phải chìm nó xuống dưới layer khác, việc này lặp đi lặp lại khá mất time.
Em có tìm trên mạng được lisp này nhưng kg hiểu sao chạy trên autocad 2020 thì báo lỗi...nhờ các cụ sửa giúp
chỉnh ở đây nhé, 1 lần là được
-
Trước giờ đang dùng lisp tính tổng diện tích của 1 bác trên này (xin lỗi dùng lâu rồi không nhớ tên bác), dùng rất tốt (lisp đính kèm ở dưới)
Nhờ các bác chỉnh lại hộ lisp để có thể tính cả phép trừ diện tích trong trường hợp công trình có thông tầng
Ví dụ như hình đính kèm, lisp cần tính theo công thức A+B -C-D
ý tưởng là ấn lệnh "uu", thì lisp sẽ mặc định hỏi chọn đối tượng để tính tổng, sau khi ngắt chọn, thì lisp hỏi bạn có muốn trừ diện tích không (Y/N), ấn enter thì mặc định là N, còn chọn Y thì lisp lại yêu cầu chọn các đối tượng để trừ đi.
Cám ơn các bác nhiều.
-
Trước có download lisp của nhoclangbat
Hiện lisp này hoạt động bằng cách chọn 2 góc của khung tên để xuất sang layout, làm từng bản vẽ một.
Nhờ mọi người chỉnh hộ chỉ cần chọn các khung tên (block, xref) theo thứ tự rồi thì sẽ tự động tạo các layout theo thứ tự 1,2,3,4 v.v.v.. (nếu có dòng cho phép chọn ký tự ban đầu trước khi đếm số thì quá tốt. VD ký tự ban đầu là KT-, sau khi lisp chạy sẽ ra các layout là KT-1, KT-02 v.v....
Cám ơn rất nhiều..
-
cứ bind như bình thường thôi, 1 phát ăn ngay ko bị lỗi gì cả. 2 File ngon lành. Có thể do cad đời thấp (tôi bind bằng cad2018)
[] Tool in bản vẽ Autocad hàng loạt ATP Plotter 4.2
trong AutoLisp
Đã đăng · Trả lời báo cáo
bản mới nhất 1.1 rồi mà nhỉ, nếu ko lầm là chỉ in được trong layout (các phiên bản trước trong layout click vào khung tên là lỗi), chứ ko phải là in hàng loạt layout.
Để nghiên cứu lại, có thể tôi bỏ sót tính năng này. Cám ơn bác nhé