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ì 27/04/2020 trong tất cả các lĩnh vực

  1. 10 điểm
    Lisp DN - Dim nhanh nhiều đối tượng cùng lúc, lấy 2 kích thước ngang và dọc. Mình viết cái này cũng lâu rồi mà không dùng tới nên nay chia sẻ với các bạn, (chắc hữu dụng nhiều với các bạn làm shop) Cách sử dụng đơn giản - các bạn xem bên dưới sẽ rõ. DN-Dimnhanh.rar
  2. 4 điểm
    Lệnh M2 theo bạn thế này đạt chưa: (defun c:m2 () (mapcar '(lambda (x) (if (= (vla-get-Closed (vlax-ename->vla-object x)) :vlax-true) (if (and (= (length (setq l1 (lm:unique (acet-geom-vertex-list x)))) 4) (equal (setq a1 (angle (car l1) (cadr l1))) (angle (last l1) (caddr l1)) 0.001) (equal (setq a2 (angle (cadr l1) (caddr l1))) (angle (car l1) (last l1)) 0.001) (equal (rem (abs (- a1 a2)) 1.5707) 0.0 0.001) ) (vla-put-Color (vlax-ename->vla-object x) 2) (vla-put-Color (vlax-ename->vla-object x) 3) ) ) ) (acet-ss-to-list (ssget '((0 . "*POLYLINE")))) ) ) (defun LM:Unique (l) (if l (cons (car l) (LM:Unique (vl-remove (car l) (cdr l)))) ) )
  3. 3 điểm
    hehe, mỗi người đều có nhu cầu khác nhau @Danh Cong à ^^ lisp các bạn khác trên diễn đàn cũng rất tốt rồi, tuy nhiên bạn nào thích in được các file có đấu tiếng Việt, hay ngôn ngữ như Hàn, Trung...thì liên hệ mình nhé ^^ tiện giới thiệu lại video lisp https://youtu.be/tp4sfbP5x2s
  4. 2 đ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 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
  5. 2 điểm
    -Tôi nghỉ đã giải thích rất rạch ròi về quan điểm polyline,region,rectang. -Bạn đẩy 1 vòng xong vẫn lẫn lộn như cũ. Tôi đành load file cad về dòm: +Khẳng định với bạn là các đối tượng của bạn điều là pline cả nghĩa là bạn ném cái chử region ra khỏi đầu đi và ra lại đề cho nó đúng. +Pline thì có thể lọc ra là nó có mấy cạnh. (cái này thì @Doan Nguyen Van đã viết rồi còn gì) Nếu muốn đa giác 4 cạnh phải là hình chữ nhật nghĩa là 2 cặp cạnh song song bằng nhau và có góc vuông thì yêu cầu thêm người ta sửa.
  6. 2 điểm
    Do gà nên mình chỉ viết được cái đầu tiên (ko biết dấu hiệu nhận biết hcn :)))), bạn dùng tạm nhé :)). Lệnh M1 (defun C:m1 () (foreach ent (acet-ss-to-list (ssget '((0 . "POLYLINE,LWPOLYLINE")))) (if (= (vla-get-Closed (vlax-ename->vla-object ent)) :vlax-true) (vla-put-Color (vlax-ename->vla-object ent) 2) (vla-put-Color (vlax-ename->vla-object ent) 3) ) ) (print) ) M1.lsp
  7. 2 điểm
  8. 1 điểm
    Mình xin chia sẻ cho các bạn 1 lisp tự động insert block theo ý muốn: Lệnh: i1 - Insert block theo đường dẫn Line, Pline (có thể insert theo đỉnh, trung điểm các đoạn pline, block xoay theo đường dẫn) i2 - Insert block theo các giao cắt Line, Pline i3 - Insert block tại các Text, Block chỉ định (block xoay theo block chỉ định, tự nhận att theo text nếu là block thuộc tính) i4 - Insert block tại các Point i5 - Insert block tại các Circle (tâm hình tròn) Insert Block.LSP
  9. 1 điểm
    Chào các anh chị em diễn đàn, em đang làm một công việc hay tiếp xúc với các block attribute ạ, hay chỉnh sửa, thêm bớt ký hiệu, text vào trước và sau các block đó.Công việc lặp đi lặp lại sửa rất lâu ạ,mong anh chị em diễn đàn giúp đỡ với ạ, em chân thành cảm ơn P/s: Em có đăng hình ảnh và file cad đính kèm dưới ạ. BAN VE MAU.dwg
  10. 1 điểm
    Dạ, cháu cảm ơn chú nhiều ạ, cháu làm theo hướng dẫn của chú, đánh lệnh --> chọn đối tượng block att--> thêm hoặc bớt (T hoặc B)---> mà nó báo như thế này, cháu đợi lâu quá click vào block att thì không có hiện tượng gì nữa cả ạ, mong chú xem xét ạ
  11. 1 điểm
    Có thể không cần dùng lisp. Trong express menu có 2 lệnh attout và attin: attout : xuất các giá trị thuộc tính ra file txt. Mở file txt này trong excel chỉnh sửa các giá trị thuộc tính này cho nhanh. Lưu file đã chỉnh sửa với đuôi txt. attin: update các giá trị thuộc tính bằng file txt vừa chỉnh sửa ở trên. Còn nếu dùng lisp thì Thiep cũng có lisp này, nhưng yêu cầu người dùng lisp phải copy thêm các file doslib vào trong thư mục support của autoCad. Các file doslib là file thư viện hàm hỗ trợ thêm để viết lisp, chép miễn phí ở trang web: https://wiki.mcneel.com/doslib/home
  12. 1 điểm
    tham khảo bản này của mình xem có phù hợp ko nhé https://youtu.be/9Bn3o1ciIyM
  13. 1 điểm
    Code cho bạn, lisp này có thể đếm số lượng thép theo: 1 : Theo khoảng cách 2 ; Theo số lượng; 3 : Theo khoảng cách, số lượng với Dim đã bị sửa số; (defun c:DEM ( / #DEM-KHOANG-CACH #DEM-SO-LUONG #DEMTHEP-NAME E1 E42 EDXF ENAME ENEW OBJECT) (command "undo" "begin") (or #DEMTHEP-NAME (setq #DEMTHEP-NAME "KHOANG-CACH-1")) (initget "KHOANG-CACH-1 KHOANG-CACH-2 SO-LUONG-1 SO-LUONG-2 SUA-KHOANG-CACH SUA-SO-LUONG") (setq #DEMTHEP-NAME (cond ((getkword (strcat "\nSelect Program: [KHOANG-CACH-1/KHOANG-CACH-2/SO-LUONG-1/SO-LUONG-2/SUA-KHOANG-CACH/SUA-SO-LUONG] <"#DEMTHEP-NAME">")))(#DEMTHEP-NAME))) (cond ((or (= #DEMTHEP-NAME "KHOANG-CACH-1") (= #DEMTHEP-NAME "KHOANG-CACH-2") (= #DEMTHEP-NAME "SUA-KHOANG-CACH")) (or #DEM-KHOANG-CACH (setq #DEM-KHOANG-CACH 150.0)) (setq #DEM-KHOANG-CACH (cond ((getreal (strcat "\nNhap khoang cach buoc thep: < " (rtos #DEM-KHOANG-CACH 2 0) " >:")))(#DEM-KHOANG-CACH)))) ((or (= #DEMTHEP-NAME "SO-LUONG-1") (= #DEMTHEP-NAME "SO-LUONG-2") (= #DEMTHEP-NAME "SUA-SO-LUONG")) (or #DEM-SO-LUONG (setq #DEM-SO-LUONG 10)) (setq #DEM-SO-LUONG (cond ((getreal (strcat "\nNhap so luong thanh thep: < " (rtos #DEM-SO-LUONG 2 0) " >:")))(#DEM-SO-LUONG)))) ); End Cond (setq Object (ssget'((0 . "DIMENSION")))) (repeat (sslength Object) (setq Ename (ssname Object 0) Edxf (entget Ename) E42 (cdr (assoc 42 Edxf))) (cond ((or (= #DEMTHEP-NAME "KHOANG-CACH-1") (= #DEMTHEP-NAME "KHOANG-CACH-2")) (setq E1 (/ E42 #DEM-KHOANG-CACH))) ((or (= #DEMTHEP-NAME "SO-LUONG-1") (= #DEMTHEP-NAME "SO-LUONG-2")) (setq E1 (/ E42 #DEM-SO-LUONG))) ((= #DEMTHEP-NAME "SUA-KHOANG-CACH") (setq E1 (/ (atof (cdr (assoc 1 Edxf))) #DEM-KHOANG-CACH))) ((= #DEMTHEP-NAME "SUA-SO-LUONG") (setq E1 (/ (atof (cdr (assoc 1 Edxf))) #DEM-SO-LUONG)))) (cond ((= #DEMTHEP-NAME "KHOANG-CACH-1") (setq Enew (subst (cons 1 (strcat (rtos E1 2 0) "X" (rtos #DEM-KHOANG-CACH 2 0) "=<>")) (assoc 1 Edxf) Edxf))) ((= #DEMTHEP-NAME "KHOANG-CACH-2") (setq Enew (subst (cons 1 (strcat (rtos E1 2 0) "X" (rtos #DEM-KHOANG-CACH 2 0))) (assoc 1 Edxf) Edxf))) ((= #DEMTHEP-NAME "SO-LUONG-1") (setq Enew (subst (cons 1 (strcat (rtos #DEM-SO-LUONG 2 0) "X" (rtos E1 2 1) "=<>")) (assoc 1 Edxf) Edxf))) ((= #DEMTHEP-NAME "SO-LUONG-2") (setq Enew (subst (cons 1 (strcat (rtos #DEM-SO-LUONG 2 0) "X" (rtos E1 2 0))) (assoc 1 Edxf) Edxf))) ((= #DEMTHEP-NAME "SUA-KHOANG-CACH") (setq Enew (subst (cons 1 (strcat (rtos E1 2 0) "X" (rtos #DEM-KHOANG-CACH 2 0) "=" (cdr (assoc 1 Edxf)))) (assoc 1 Edxf) Edxf))) ((= #DEMTHEP-NAME "SUA-SO-LUONG") (setq Enew (subst (cons 1 (strcat (rtos #DEM-SO-LUONG 2 0) "X" (rtos E1 2 1) "=" (cdr (assoc 1 Edxf)))) (assoc 1 Edxf) Edxf)))) (entmod Enew) (if (and (> (abs (- (* (atof (rtos E1 2 0)) #DEM-KHOANG-CACH) E42)) 0.1) (or (= #DEMTHEP-NAME "KHOANG-CACH-1") (= #DEMTHEP-NAME "KHOANG-CACH-2"))) (vla-put-Textcolor (vlax-ename->vla-object Ename) 1) (vla-put-Textcolor (vlax-ename->vla-object Ename) 3)) (ssdel Ename Object) ); end repeat (command "undo" "end") (princ))
  14. 1 điểm
    Đọc hiểu ý chủ thớt thôi cũng mệt. Mình có 2 lisp này viết cho vui. - Lisp 1. Loại bỏ dỉnh trùng nhau liên tiếp và tụ động close pline nếu điểm đầu cuối trùng nhau. (defun c:fixpl(/ fpl) (defun fpl(e1 / c s1 s2 s3 st pn) (setq e1 (entget e1) s1 (vl-remove-if '(lambda(x / sa) (Cond ((= (Setq sa (car x)) 10) (setq s2 (cons (reverse st) s2) st (list (cdr x)))) ((member sa '(40 41 42 91)) (setq st (cons (cdr x) st))))) e1) c (cdr(assoc 70 s1)) s2 (cdr (reverse (cons (reverse st) s2))) pn (car s2)) (foreach x (cdr s2) (if (>= (distance (car pn) (car x)) 1e-6) (setq s3 (cons pn s3))) (setq pn x)) (if (< (distance (car pn) (car(last s3))) 1e-6) (setq c 1) (setq s3 (cons pn s3))) (entmod (append (subst (cons 70 c) (assoc 70 s1) (subst (cons 90 (length s3)) (assoc 90 s1) s1)) (apply 'append (mapcar '(lambda(x) (mapcar 'cons '(10 40 41 42 91) x)) (reverse s3)))))) (mapcar 'fpl (acet-ss-to-list (ssget '((0 . "LWPOLYLINE"))))) (princ)) Lisp 2. Là chọn nhanh polyline theo cạnh hay open/close. Muốn đổi màu hay làm gì thì tùy. (defun c:sspl(/ a) (initget 0 "Open Close") (if (setq a (getint "Chon so dinh polyline [Open/Close]:") a (cond ((= a "Open") '(70 . 0)) ((= a "Close") '(70 . 0)) (a (cons 90 a)))) (sssetfirst nil (ssget (list '(0 . "LWPOLYLINE") a))))) Ai thích thì có thể thêm chọn nhanh hình chữ nhật, polygon thì tùy. @Doan Nguyen Van Nếu pline có cạnh là arc mà 4 dĩnh theo hình chữ nhật thì lisp của bạn vẫn xem là hình chữ nhật nhỉ.
  15. 1 điểm
    Cuối cùng cũng rõ là 2 lệnh này, ^^, các bác vất vả rồi @duy782006 @Biet ve CAD
  16. 1 điểm
    Chà chà, ^^, mình chạy trên file bạn vẫn ok mà với bản vẽ bạn, bạn cho tất cả sang 1 màu nào đó ( màu blue chẳng hạn ), rồi dùng lisp mình, khi hỏi chọn số cạnh thì nhập 6 chẳng hạn ^^, thì tất cả các polyline có 6 cạnh sẽ chuyển qua màu vàng Tương tự các cạnh khác nhớ là pline kín đấy nhé
  17. 1 điểm
    Bạn tải lisp này nhé, sửa trên gợi ý lisp của bạn @Doan Nguyen Van ở trên Lisp sẽ chuyển các polyline sang màu vàng theo đúng số cạnh được nhập vào ( polyline kín, cạnh nhập vào > 2) Nếu nhập cạnh là 4 thì tất cả các polyline chữ nhật giữ nguyên, còn lại đều được chuyển M2.lsp
  18. 1 điểm
    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 ""))
  19. 1 điểm
    Theo như thông báo lỗi trên hình thì là chỉ hổ trợ font TTF. Font không phải font TTF. Còn theo như dòng trên thì tham khảo https://www.google.com/search?q=unhandled+exception+has+occurred+in+a+component+in+your+application&amp;oq=unhandled+exception+has+occurred+in+a+component+in+your+application&amp;aqs=chrome..69i57j0l7.48552j1j7&amp;sourceid=chrome&amp;ie=UTF-8 Nghi vấn là .NET Framework Bạn coi fix .NET Framework xem sao, không được thì cài lại AutoCAD, .....
  20. 1 điểm
    (setq l1 (list)) (command "._BPOLY") (while (> (getvar "CMDACTIVE") 0) (setq pt (getpoint)) (setq l1 (append l1 (list pt))) (command pt) ) Cách này vẫn highlight đc mà bác
  21. 1 điểm
    Thank Bạn ổn cả rồi.
  22. 1 điểm
  23. 1 điểm
    Viết như này nghĩa là đa giác 4 cạnh cũng sẽ tính là rectang đó bạn
  24. 1 điểm
    @Doan Nguyen Van hình vuông thì xếp nó là polygon hay rectang?
  25. 1 điểm
    Đây bạn, nhưng LM không phải người Việt cho nên có đưa ra excel nhưng nếu là tiếng Việt có dấu cũng chẳng đọc được. getxcel.lsp
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
×