Chuyển đến nội dung
Diễn đàn CADViet

Bảng xếp hạng


Nội dung phổ biến

Hiển thị nội dung có danh tiếng cao nhất vì 26/07/2020 trong tất cả các lĩnh vực

  1. 15 điểm
    Mình xin chia sẻ 1 Lisp Copy/Insert các đối tượng tự động. Tên lệnh: CO1 Ý nghĩa: Copy / Insert nhóm đối tượng 1 đến tập hợp điểm của nhóm đối tượng 2. Nhóm đối tượng 1, Nhóm đối tượng 2: các đối tượng bất kỳ (Block, Text, Pline, Circle, Hatch, Point ...) Tập hợp điểm: là điểm đặt, đỉnh, trung điểm, trọng tâm, giao cắt... (do người dùng tùy chọn) của Nhóm đối tượng 2. CO1.LSP
  2. 14 điểm
    Sau hơn 1 năm phát hành Lisp IN QDV- in nhanh bản vẽ Model - Layout, mình nhận thấy nhu cầu sử dụng lisp in nhanh rất nhiều. Nên mình xin chia sẻ thêm với các bạn 1 Lisp in nhanh bản vẽ khác, rút gọn, đơn giản hơn, dễ sử dụng hơn tặng các bạn. Sử dụng chủ yếu in nhiều bản vẽ trong Model hoặc trong 1 Layout. Cách sử dụng rất đơn giản mình không đề cập thêm, và 1 điều đặc biệt là lisp không hạn chế số máy sử dụng, nên các bạn thoải mái tải về và dùng cho các máy khác nhau, không cần serial. Mọi ý kiến đóng góp xin gửi về mail: nvdoangt@gmail.com Nếu thấy hay thì cho mình 1 Like động viên! Xin cảm ơn! Link tải: Lệnh VD: VD-Lisp In Nhanh.rar - https://www.mediafire.com/file/9dgynql2nqx75m0/VD-Lisp_In_Nhanh.rar/file Lệnh: DPL DPL - Lisp In nhanh.rar - http://www.mediafire.com/file/w2sxuorwjxpg8fb/DPL+-+Lisp+In+nhanh.rar/file PS: Lisp hay nhưng lượt tương tác đánh giá không đạt như mong muốn, có 1 số phản hồi không tích cực (Chia sẻ free nhưng nhiều bạn muốn nhiều hơn thế..có lời lẽ yêu cầu tác giả không mấy thiện cảm. Nên mình ngừng phát hành Lisp này (từ ngày 1/3/2021) những bạn đã sử dụng trước đó vẫn dùng được oke nhé!) Cảm ơn các bạn đã ủng hộ!
  3. 7 điểm
    Hôm nay lễ chia sẽ cùng các Bạn lisp in bản vẽ mình đang sử dụng, lips này là bản nâng cấp và có giao diện đơn giản hơn so với lisp trước đây: * Công dụng: in nhiều bản vẽ trong Layout hoặc Model của file dwg với nhiều lựa chọn * Tên lệnh : MPL * Hướng dẫn: - Phần plotter, paper, plotstyle các Bạn chọn cho phù hợp với nhu cầu - Nút lệnh kế bên plotstyle là để sửa nét in ctb hiện hữu. - Phần "Sample", nhấn nút hình cái phểu để chọn mẫu làm điều kiện lọc. Mẫu là tên của các block HOẶC tên layer của các polyline, khi chọn xong thì chữ "sample" sẽ đổi thành block hoặc layer, nếu vẫn còn chữ sample là khi bạn chọn có cả block và polyline hoặc không chọn gì cả. - L => R, T => B: là chế độ sắp xếp thứ tự các bản vẽ được in ra, chế độ "select order" là cái nào chọn trước thì được in trước. Điểm cơ sở để sắp xếp là góc dưới bên trái của hình chữ nhật bao block hoặc polyline - Sau khi đã chọn mẫu hợp lệ thì nhấn nút "Select" để chọn các bản vẽ cần in hoặc plotpreview - Khi đã chọn được các bản vẽ cần in thì tổng số bản vẽ sẽ được in hiện trong danh sách kế bên nút hình kính lúp - Khi nhấn nút hình kính lúp thì sẽ chuyển qua chế độ plotpreview của bản vẽ đang hiện trong danh sách, nếu thay đổi số thứ tự trrong danh sách thì sẽ plotpreview bản vẽ theo số thứ tự được chọn - nút "Plot <ALL>" để in các khung in đã chọn. Nếu không có các khung in chọn bởi nút "Select" thì sẽ in tất cả các khung in trong model/layout hiện hữu thỏa mãn điều kiện lọc là block hoặc layer Nút "CADVIET" là để đi đến bài viết này trên CadViet.com Phần Options thì các Bạn tự khám phá nhé @ Lisp này mình viết cho công việc của mình nên các phần in ra file ảnh, PLT, DWF mình không làm. Riêng file PDF thì dùng phần mềm pdfFactory Pro để cài máy in ảo, khi in file pdf thì chọn máy in này, sau khi save thì tất các các bản vẽ sẽ nằm trong 1 file rất dễ quản lý Cập nhật 22/6/2020: Sửa lỗi ghi các file thành dạng *.plt khi chọn thư mục khác với thư mục bản vẽ đang in MPL1_10-22Jun2020.rar Cập nhật 1/1/2020: Chọn thư mục khi in file, đưa trở lại lệnh "PLC" để in liên tục theo cấu hình in trước đó mà không cần mở giao diện - khi chọn chức năng "Plot to file" sẽ xuất hiện giao diện chọn thư mục để lưu file, nếu chọn nút nút Cancel thì mặc định sẽ lưu tại thư mục bản vẽ đang in - lệnh "PLC" sẽ in theo cấu hình của lần in trước trên model hoặc layout( máy in, giấy, nét in, block/layer, ...). Khi được yêu cầu chọn đối tượng để in, nếu enter thì sẽ chọn tất cả các đối tượng block/layer trên model hoặc layout hiện hành thỏa mãn điều lọc để in MPL-1Jan2020.rar Cập nhật 4/7/2019: sửa lổi in nhiều file khi chọn in ảnh, DWF, PDF của các máy in *.pc3 MPL-4Jul2019.rar Cập nhật 3/7/2019 MPL-3Jul2019.rar - Đưa trở lại tính năng in ảnh, DWF, PDF của các máy in *.pc3 - Đưa trở lại tính năng collated khi in nhiều bộ bản vẽ (in 1,1/2,2/3,3 hoặc 1,2,3/1,2,3) - Hỗ trợ Auto scale theo scale list của acad ở hệ metric (tên scale có dạng 1:100, 2:1, ...) với biên độ 5%. VD: nếu fit to page có tỉ lệ 1/95 đến 1/105 thì auto scale về tỉ lệ 1/100 đã có trong scale list của acad, nếu không có trong scale list thì sẽ tự động fit to page - Sửa lỗi để lisp chạy nhanh và ổn định hơn MPL.rar Nếu giải nén bị lỗi thì tìm Winrar bản mới nhất để giải nén nhé Các bản cũ: http://www.cadviet.com/upfiles/3/3202_mplmultiplot_1.rar @30/5/2014: Cập nhật: http://www.cadviet.com/upfiles/3/3202_mplmultiplot_3.rar @11/11/2014: Cập nhật http://www.cadviet.com/upfiles/4/3202_mplmultiplot.rar MPL.rar
  4. 3 điểm
    (mapcar 'cdr (vl-remove-if '(lambda(x) (/= (car x) 10)) (entget (bpoly (getpoint))))) Bác muốn gắn vào biến nên chắc bạn biết list. Thử dòng code trên. Nó sẽ tạo pline. và kq là list đỉnh.
  5. 2 điểm
    Do công việc phải tiếp xúc với in ấn nhiều nên mình có viết 1 Lisp in nhanh nhiều bản vẽ, giúp tiết kiệm thời gian. Mình thấy trên diễn đàn cũng có khá nhiều Lisp in nhanh rồi nhưng có nhiều công năng sử dụng khác nhau nên cứ share lên đây, bác nào thấy phù hợp với công việc thì tải về sử dụng. Giới thiệu sơ qua về Lisp: 1. Có 5 tùy chọn in cơ bản - In Model: https://youtu.be/vxOpZaK2n-U - In Layout: https://youtu.be/vpJKN8X0Muw - In cả Model và Layout: https://youtu.be/AMHWJxQUzyI - In theo View Manager ( view ở Model hay Layout sẽ in được tất cả ): https://www.youtube.com/watch?v=SKPJKr_i80k - In theo Folder (theo các khung bản vẽ đã lựa chọn sẵn): https://www.youtube.com/watch?v=O9efKBTzk6c - Đang update tính năng Combine PDF sau khi in: https://www.youtube.com/watch?v=isAlOBPP-wk Liên hệ: nvdoangt@gmail.com -Link download (05/11/2019): https://drive.google.com/file/d/1K2A0LVeNTF88VFBsBUODS-AICDBVNPzZ/view?usp=sharing Huong dan su dung-QDV-V7.pdf Review:
  6. 2 điểm
    Lisp của bạn, các toạ độ góc được gắn vào biến polst (defun sysvar-set (lst_setvar / strN var var_oldname n) (setq n 0 lstvar_thiep nil lstValue_thiep nil ) (repeat (/ (length lst_setvar) 2) (setq var (nth n lst_setvar) var_oldname (strcat "oldvar_thiep" (itoa n)) ) (setq lstvar_thiep (append lstvar_thiep (list var))) (set (read var_oldname) (getvar var)) (setq lstValue_thiep (append lstValue_thiep (list (read var_oldname)))) (setvar var (nth (+ n 1) lst_setvar)) (setq n (+ 2 n)) ) ) (defun c:gdt (/ ucshold po ent_bo polst lstvar_thiep lstValue_thiep) (sysvar-set '("cmdecho" 0 "osmode" 0)) (setq ucshold (acet-ucs-get nil)) (acet-ucs-cmd '("w")) (setq po (getpoint "\Pick a point inside the closed boundary ")) (command "_.-boundary" po "") (if (and (setq ent_bo (entlast)) (eq (acet-dxf 0 (entget ent_bo)) "LWPOLYLINE")) (progn (setq polst (acet-geom-object-point-list ent_bo nil)) (if (equal (car polst) (last polst) 0.01) (setq polst (cdr polst)) ) (entdel ent_bo) ) ) (acet-ucs-set ucshold) (mapcar '(lambda (var value) (setvar var (eval value))) lstvar_thiep lstValue_thiep ) (and polst(princ polst)) (princ) )
  7. 2 điểm
    Chưa thấy block động hay block att nào tự động tăng số khi copy, lisp tăng số của text thì có, bạn gg thử xem.
  8. 2 điểm
    Thay vì lệnh Filter (FI) mặc định chọn rồi xoá xoá. Lisp Quick Filter (QF) này sẽ chọn một số thuộc tính thông dụng để lọc, giảm bớt vài thao tác thừa không cần thiết: ;; List Box - Lee Mac ;; Displays a DCL list box allowing the user to make a selection from the supplied data. ;; msg - [str] Dialog label ;; lst - [lst] List of strings to display ;; bit - [int] 1=allow multiple; 2=return indexes ;; Returns: [lst] List of selected items/indexes, else nil (defun LM:listbox ( msg lst bit / dch des tmp rtn ) (cond ( (not (and (setq tmp (vl-filename-mktemp nil nil ".dcl")) (setq des (open tmp "w")) (write-line (strcat "listbox:dialog{label=\"" msg "\";spacer;:list_box{key=\"list\";multiple_select=" (if (= 1 (logand 1 bit)) "true" "false") ";width=50;height=15;}spacer;ok_cancel;}" ) des ) (not (close des)) (< 0 (setq dch (load_dialog tmp))) (new_dialog "listbox" dch) ) ) (prompt "\nError Loading List Box Dialog.") ) ( t (start_list "list") (foreach itm lst (add_list itm)) (end_list) (setq rtn (set_tile "list" "0")) (action_tile "list" "(setq rtn $value)") (setq rtn (if (= 1 (start_dialog)) (if (= 2 (logand 2 bit)) (mapcar '(lambda ( x ) (nth x lst)) (read (strcat "(" rtn ")"))) (read (strcat "(" rtn ")")) ; (mapcar '(lambda ( x ) (nth x lst)) (read (strcat "(" rtn ")"))) ) ) ) ) ) (if (< 0 dch) (unload_dialog dch) ) (if (and tmp (setq tmp (findfile tmp))) (vl-file-delete tmp) ) rtn ) ;====================================Main Lisp: Quick Filter (QF)====================================== (defun C:QF (/ ss ss1 ob lyrname colr blkname txth txtn lstQF lstDCL lstidx lstfi a) (setq ss1 (entsel "\nSelect Object: ")) (while (or (null ss1) (= "" (cdr (assoc 0 (entget (car ss1))))) ) (setq ss1 (entsel "\nSelect Object Again: ")) ) (setq ss (entget (car ss1))) (setq ob (cdr (assoc 0 ss))) (setq lstQF (list (cons 0 ob))) (if (= "INSERT" ob) (setq lstDCL (list (strcat "Object : " "Block"))) (setq lstDCL (list (strcat "Object : " ob))) );endif (setq lyrname (cdr (assoc 8 ss))) (setq lstQF (append lstQF (list (cons 8 lyrname)))) (setq lstDCL (append lstDCL (list (strcat "Layer : " lyrname)))) (if (= 62 (car (assoc 62 ss))) (progn (setq colr (cdr (assoc 62 ss))) (setq lstQF (append lstQF (list(cons 62 colr)))) (setq lstDCL (append lstDCL (list (strcat "Color : " (rtos colr 2 0))))) );progn (progn (setq lstQF (append lstQF '((62 . 256)))) (setq lstDCL (append lstDCL (list (strcat "Color : " "256")))) ) ) ;end if (if (= 2 (car (assoc 2 ss))) (progn (setq blkname (cdr (assoc 2 ss))) (setq lstQF (append lstQF (list (cons 2 blkname)))) (setq lstDCL (append lstDCL (list (strcat "Block Name : " blkname)))) );end progn ) ;end if (if (= 40 (car (assoc 40 ss))) (progn (setq txth (cdr (assoc 40 ss))) (setq lstQF (append lstQF (list (cons 40 txth)))) (setq lstDCL (append lstDCL (list (strcat "Text Height : " (rtos txth))))) );end progn ) ;end if (if (= 7 (car (assoc 7 ss))) (progn (setq txtn (cdr (assoc 7 ss))) (setq lstQF (append lstQF (list (cons 7 txtn)))) (setq lstDCL (append lstDCL (list (strcat "Text Style Name : " txtn)))) );end progn ) ;end if (setq lstidx (LM:listbox "Selection to Filter:" lstDCL 1)) (foreach a lstidx (setq lstfi (append lstfi (list (nth a lstQF)))) ) (sssetfirst nil (ssget lstfi)) (Print "Write by: NghiaKieu") (princ) )
  9. 2 điểm
    Đây nhé bạn: ;; List Box - Lee Mac ;; Displays a DCL list box allowing the user to make a selection from the supplied data. ;; msg - [str] Dialog label ;; lst - [lst] List of strings to display ;; bit - [int] 1=allow multiple; 2=return indexes ;; Returns: [lst] List of selected items/indexes, else nil (defun LM:listbox (msg lst bit / dch des tmp rtn) (cond ((not (and (setq tmp (vl-filename-mktemp nil nil ".dcl")) (setq des (open tmp "w")) (write-line (strcat "listbox:dialog{label=\"" msg "\";spacer;:list_box{key=\"list\";multiple_select=" (if (= 1 (logand 1 bit)) "true" "false" ) ";width=50;height=15;}spacer;ok_cancel;}" ) des ) (not (close des)) (< 0 (setq dch (load_dialog tmp))) (new_dialog "listbox" dch) ) ) (prompt "\nError Loading List Box Dialog.") ) (t (start_list "list") (foreach itm lst (add_list itm)) (end_list) (setq rtn (set_tile "list" "0")) (action_tile "list" "(setq rtn $value)") (setq rtn (if (= 1 (start_dialog)) (if (= 2 (logand 2 bit)) (mapcar '(lambda (x) (nth x lst)) (read (strcat "(" rtn ")")) ) (read (strcat "(" rtn ")")) ; (mapcar '(lambda ( x ) (nth x lst)) (read (strcat "(" rtn ")"))) ) ) ) ) ) (if (< 0 dch) (unload_dialog dch) ) (if (and tmp (setq tmp (findfile tmp))) (vl-file-delete tmp) ) rtn ) ;====================================Main Lisp: Quick Filter (QF) Update 19/08/2020 Loc theo "True Color"====================================== (defun C:QF (/ ss ss1 ob lyrname colr blkname txth txtn txtvl lstQF lstDCL lstidx dimsty lstfi a c d l ) (setq ss1 (entsel "\nSelect Object: ")) (while (or (null ss1) (= "" (cdr (assoc 0 (entget (car ss1))))) ) (setq ss1 (entsel "\nSelect Object Again: ")) ) (setq ss (entget (car ss1))) (setq ob (cdr (assoc 0 ss))) (setq lstQF (list (cons 0 ob))) (if (= "INSERT" ob) (setq lstDCL (list (strcat "Object : " "Block"))) (setq lstDCL (list (strcat "Object : " ob))) ) ;endif (setq lyrname (cdr (assoc 8 ss))) (setq lstQF (append lstQF (list (cons 8 lyrname)))) (setq lstDCL (append lstDCL (list (strcat "Layer : " lyrname)) ) ) (setq c (cond ((cdr (assoc 62 ss))) ((abs (cdr (assoc 62 (tblsearch "LAYER" (cdr (assoc 8 ss))))) ) ) ) ) (while (setq d (tblnext "LAYER" (null d))) (if (= c (abs (cdr (assoc 62 d)))) (setq l (cons "," (cons (cdr (assoc 2 d)) l))) ) ) (setq lstQF (append lstQF (list "True Color"))) (setq lstDCL (append lstDCL (list (strcat "True Color : " (rtos c 2 0))) ) ) (if (= 2 (car (assoc 2 ss))) (progn (setq blkname (cdr (assoc 2 ss))) (setq lstQF (append lstQF (list (cons 2 blkname)))) (setq lstDCL (append lstDCL (list (strcat "Block Name : " blkname)) ) ) ) ;end progn ) ;end if (if (= 40 (car (assoc 40 ss))) (progn (setq txth (cdr (assoc 40 ss))) (setq lstQF (append lstQF (list (cons 40 txth)))) (setq lstDCL (append lstDCL (list (strcat "Text Height : " (rtos txth))) ) ) ) ;end progn ) ;end if (if (= 7 (car (assoc 7 ss))) (progn (setq txtn (cdr (assoc 7 ss))) (setq lstQF (append lstQF (list (cons 7 txtn)))) (setq lstDCL (append lstDCL (list (strcat "Text Style Name : " txtn)) ) ) ) ;end progn ) ;end if (if (= 1 (car (assoc 1 ss))) (progn (setq txtvl (cdr (assoc 1 ss))) (setq lstQF (append lstQF (list (cons 1 txtvl)))) (setq lstDCL (append lstDCL (list (strcat "Text Value : " txtvl)) ) ) ) ;end progn ) ;end if (if (= 3 (car (assoc 3 ss))) (progn (setq dimsty (cdr (assoc 3 ss))) (setq lstQF (append lstQF (list (cons 3 dimsty)))) (setq lstDCL (append lstDCL (list (strcat "Dimension Style : " dimsty)) ) ) ) ;end progn ) ;end if (setq lstidx (LM:listbox "Selection to Filter:" lstDCL 1)) (if lstidx (progn (foreach a lstidx (if (= "True Color" (nth a lstQF)) (if l (setq lstfi (append lstfi (list (cons -4 "<OR") (cons 62 c) (cons -4 "<AND") (cons 62 256) (cons 8 (apply 'strcat (cdr l))) (cons -4 "AND>") (cons -4 "OR>") ) ) ) (setq lstfi (append lstfi (list (cons 62 c)) ) ) ) (setq lstfi (append lstfi (list (nth a lstQF)))) ) ) (sssetfirst nil) ; clear original-selection highlighting/gripping, then: (sssetfirst nil (ssget lstfi)) ) ) (Print "Write by: NghiaKieu") (princ) )
  10. 2 điểm
    Mình chuyên về code CNC các loại, ngoài ra cũng còn nhiều thứ khác như C++ cho vi xử lý của các mô hình IoT hay các cơ cấu chấp hành khác nhau. VD cánh tay này mình đã sửa lại thiết kế 3D cho gọn, viết soft giao tiếp từ pc và arduino để điều khiển, lưu trữ chuỗi hành động theo ý muốn: Hay soft này điều khiển cả kính thiên văn và máy ảnh Canon để chụp ảnh vệ tinh cần quan sát: Soft này sẽ có sử dụng máy học sau này để giúp tính toán ngon hơn.
  11. 2 điểm
    Mình có làm được lisp quản lý Sheet set manager có chức năng: - Chỉnh sửa, tăng số thứ tự của sheet number ( và sheet title ) rất nhanh, ko phải mất công mở từng sheet ra rồi gõ lại - Thay đổi đường dẫn file Dwg cho nhiều sheet cùng lúc ( dùng khi file cad bị đổi tên hoặc bị xóa ) https://youtu.be/Y6yJ3y9l8oY - Tạo mới hàng loạt các custom property sheet set và sheet, mặc định của cad là phải nhập từng cái - Chỉnh sửa value của các custom property sheet cho nhiều sheet cùng lúc (đang cập nhật...) - Tạo danh mục với tùy chỉnh vị trí bố trí sheet number và sheet title, mặc định của Cad là theo từng cột nên hơi đơn điệu (đang cập nhật...) ** Xem thêm lisp in nhanh bản vẽ ** Các tiện ích hay * *Thông tin cập nhật truy cập: https://www.facebook.com/cad.bietve hoặc bietvecad@gmail.com https://www.cadviet.com/forum/topic/173984-lisp-biết-vẽ-cad-share/ - video demo ^^: ***Cập nhật tạo Danh mục bản vẽ với tùy biến người dùng:
  12. 2 điểm
    Lúc đầu không nói tắt hàng loạt bản vẽ, giờ lại nói có, là sao? Cái vụ này phải trả phí thôi, không trả không được. Zalo 0359935771.
  13. 2 điểm
    Đảm bảo rằng Toolbar "Layers" được show là tắt Layer dễ dàng thôi, ai lại đi viết lisp làm gì.
  14. 2 điểm
    Hơi sức đâu mà các member đi viết những lisp mà nếu thớt làm bằng tay mất 1 phút còn các bác viết mất 10 phút (?). Cộng đồng còn những người khác cần lisp hơn!
  15. 2 điểm
    Chủ thớt ở mục #1 xin code VBA chứ đâu có xin lisp đâu nà!
  16. 2 điểm
    Khi định dạng màu in mình chỉ định dạng được các màu theo hệ index color nghĩa là màu từ 0 đến 250. Còn màu theo hệ True color thì không định dạng đưuơc5 nên nó cứ in ra màu thôi. Bạn chọn 1 đối tượng mà không in đen được xong nhìn chổ hiểu thị màu nó dạng như này là chính xác nó đang định dạng theo màu True color. Bạn chỉnh nó về màu index color là in đen được thôi.
  17. 1 điểm
    Uh, nếu đối tượng Cad có EntityTransparency thì ngon hơn. Lisp trên nếu dùng trên CAD >= 2011 thì sẽ thấy các đối tượng nằm dưới vùng tô màu (nếu có).
  18. 1 điểm
    Bạn thay dòng này: (setq lst (append lst leg)) Thành: (setq lst (append lst (list leg))) Hoặc: (setq lst (cons leg lst))
  19. 1 điểm
    Bạn tham khảo ở đây: https://forums.autodesk.com/t5/dynamic-blocks-forum/auto-number-array-in-dynamic-block-not-working/td-p/9057149 http://www.lee-mac.com/incrementalarray.html
  20. 1 điểm
    Thầy bói đoán mò: có thể là AutoCAD Civil 3D.
  21. 1 điểm
  22. 1 điểm
  23. 1 điểm
    Cái khẳng định ni có vẻ sai sai
  24. 1 điểm
  25. 1 điểm
    https://codingpearls.com/revit-addin-csharp/nhap-mon-revit-addin-voi-csharp.html
Bảng thành tích này được đặt thành Tp. Hồ Chí Minh /GMT +07:00


  • Newsletter

    Want to keep up to date with all our latest news and information?

    Sign Up
×