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

tranducanh

Thành viên
  • Số lượng nội dung

    82
  • Đã tham gia

  • Lần ghé thăm cuối

  • Ngày trúng

    3

Bài đăng được đăng bởi tranducanh


  1. 51 phút trước, Doan Nguyen Van đã nói:

    Hi, như mình đã ghi ở đầu bài, lisp này phục vụ được đa số nhu cầu của mọi người rồi, và nó đơn giản dễ dùng, nếu cho nhiều chức năng quá sẽ bị rối...

    Các chức năng đó mình đã có làm ở Lisp In QDV rồi nên mình nghĩ lisp này như vậy là quá đủ cho người dùng bình thường để in ấn tốc độ cao rồi..

    Bạn cho mình hỏi mình tải QDV về test thử nhưng máy báo mình cần phải active. Mình ko thạo lắm về máy tính hay lisp nên mình ko biết làm thế nào để dùng. Mong bạn chỉ cách cho mình. Xin lỗi vì đã làm phiền bạn!image.png.6cddb141fd6216aea7b775a3b8a8e303.png


  2. 13 phút trước, Doan Nguyen Van đã nói:

    Hi, như mình đã ghi ở đầu bài, lisp này phục vụ được đa số nhu cầu của mọi người rồi, và nó đơn giản dễ dùng, nếu cho nhiều chức năng quá sẽ bị rối...

    Các chức năng đó mình đã có làm ở Lisp In QDV rồi nên mình nghĩ lisp này như vậy là quá đủ cho người dùng bình thường để in ấn tốc độ cao rồi..

    Xin lỗi bạn, do mình ko biết lisp in QDV, để mình cập nhật xem.
    Cảm ơn bạn nhiều!


  3. 5 phút trước, Doan Nguyen Van đã nói:

    Tùy loại máy in thôi bạn, ổn nhất với máy in PDF của cad thôi bởi mình không dùng nhiều loại 

    Mình test thử máy đen trắng A4 thấy ok. Nhưng trong chức năng của mỗi máy in riêng mình thường vào tùy chỉnh của từng máy in "Printer Properties" để chỉnh tốc độ in hay chất lượng màu, đen trắng hoặc màu,.... mình nghĩ nếu bạn có thể thêm kết nối ấy vào lisp sẽ ok hơn. Ngoài ra trong lisp chưa có chế độ chọn nhân bản bao nhiêu bộ, nếu bạn đưa được nó vào thì khi in sẽ ko phải in nhiều lần nếu cần in nhiều bộ.
    Tks bạn đã chia sẻ lisp :)


  4. 35 phút trước, Han Tinh đã nói:

    Nó bị như hình là sao vậy bạn? Hình như phải có key hay sao á

    FILE LOI.png

    mình vào được bình thường bạn, nhưng dùng thử thì có vẽ chưa được thuần thục lắm. Nó in chỉ ra một bản chứ ko ra hàng loạt thì phải. Mình đang test thử bằng nhiều máy in chứ xuất PDF là chưa thành rồi :)

     


  5. Vào lúc 1/5/2020 tại 11:37, hongoanh93 đã nói:

    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

    mau.PNG

    ko biết bạn đã tìm được đúng ý bạn chưa vì mình tìm trên diễn đàn thấy có lisp đơn giản mà hiệu quả.

     


  6. 1 giờ} trướ}c, hoành đã nói:

    bác ơi, cái này cũng hay nhưng vẫn chưa ổn như ý em lắm ạ, nó xóa xong nó chuyển vùng hacth kia thàng đường line, với lại số lượng nhiều nó xóa cả phần bên trong ranh luôn á, 

    Cái này mình ko nhặt được trên diễn đàn, nếu xài ko được thì bạn nhờ trợ giúp xem ai biết sửa lisp chứ mình chịu rồi :D


  7. 2 giờ trước, Cao Trọng Lưu đã nói:

    Chào mọi người, mình có chút rắc rối cần mọi người giúp đỡ.

    Mình cần một Lisp có thể cộng/trừ hàng loạt số thứ tự trong block att với một số bất ký. Mục đích là đánh số thứ tự cho tem sử dụng đất.

    2 giờ trước, Cao Trọng Lưu đã nói:

     

    Ví dụ tem đất đang là BT05, BT06, BT07. mình muốn trừ tất cả cho 4 để nó trở thành BT01, BT02, BT03.

    Xin chân thành cảm ơn mọi người ạ.

     

    new block.dwg

    Mình ko rõ cách bạn đánh thứ tự ban đầu nên cách nhanh nhất mà vẫn giữ đúng thứ tự các block bạn đã đánh thì mình nghĩ bạn nên xuất sang exel sửa trên exel và xuất ngược lại.

    • Like 1

  8. Vào lúc 1/10/2019 tại 07:58, qthanhhp đã nói:

    nghĩa là theo hướng dẫn, sau khi load lsp đó vào, kích chọn từng đối tượng enter là ra tổng chiều dài các đoạn nhưng khi mình kích chọn xong, nó không hiện tổng chiều dài cho mình

    đây là link mình tải lsp đó về :(

    https://cadvn.com/lisp-do-tong-chieu-dai-cac-doan-thang/

    Mình đang dùng lisp này và cad 2010 ok. Bạn thử xem nhé.

    tl (tong chieu dai).lsp


  9. Vào lúc 28/9/2019 tại 11:47, Duong Nhat Duy đã nói:

    Chữ mình lấy theo tỉ lệ view trên màn hình của bạn, muốn to bạn view rộng ra, rồi dùng lệnh bình thường.

    Cỡ chữ để vậy cho linh hoạt, để mấy ông quy hoạch ko kêu ca chữ to hay mấy ông kiến trúc bảo chữ nhỏ ấy mà.

    Cảm ơn bạn, vì bình thường mình thường thấy xuất ra chữ kích thước theo Dimstyle nên mình kiểm soát được bạn. Cái này làm kiểu gì mình cũng thấy nó tí ti, zoom lên tìm đọa :'(


  10. 38 phút trước, Doan Nguyen Van đã nói:

    Thôi sửa nốt cho bạn.

    Cảm ơn hàm của bác @ndtnv

    
    
    ;TEN LENH
    (defun C:ii ()
      (alert (strcat "LISP Hatch to Text"
    	       "\nNguoi viet: 3Duy"
    	       "\nLenh thuc hien:"
    	       "\n        H2T - Dien tich"
    	       "\n        H2L - Ten layer"
    	       )
    )
      )
    
    (vl-load-com)
    
    ;HATCH TO TEXT
    (defun C:h2t ( / AREA ELST OBJ)
      (setq elst (acet-ss-to-list (ssget (list (cons 0 "HATCH")))))
      (foreach ent elst
        (if (> (vla-get-numberofloops (vlax-ename->vla-object ent)) 1) (progn
       	(setq entl (entlast))
    	(command "UNDO" "BE")
    	(vl-cmdf "_-HATCHEDIT" (ssadd ent) "H" "")
    	(setq ss (ssadd ent))
      (while (setq entl (entnext entl))
    	  (setq ss (ssadd entl ss)) )
      (setq lst (list))
      (foreach ent2 (acet-ss-to-list ss)
        (setq obj (vlax-ename->vla-object ent2))
        (if (vl-catch-all-error-p (vl-catch-all-apply (function (lambda () (setq area (vlax-get obj 'area))))))
          (setq area 0.00)
          (setq area (vlax-get obj 'area))
          )
        (setq lst (append lst (list (list (cdr (assoc 8 (entget ent2))) (rtos area 2 (getvar "LUPREC"))  (_cen ent2)))))
        )
        	(command "UNDO" "E")
    	(command "UNDO" "1")
      (foreach lst1 lst
    	  (maketext (car lst1) (cadr lst1) (caddr lst1))
    	  ) ) (progn
    (setq obj (vlax-ename->vla-object ent))
        (if (vl-catch-all-error-p (vl-catch-all-apply (function (lambda () (setq area (vlax-get obj 'area))))))
          (setq area 0.00)
          (setq area (vlax-get obj 'area))
          )
    (maketext (cdr (assoc 8 (entget ent))) (rtos area 2 (getvar "LUPREC")) (_cen ent)  )
    ))
        )
        
      (print)
      )
    (defun C:h2l ( / ELST OBJ)
      (setq elst (acet-ss-to-list (ssget (list (cons 0 "HATCH")))))
        (foreach ent elst
        (if (> (vla-get-numberofloops (vlax-ename->vla-object ent)) 1) (progn
     	(setq entl (entlast))
    	(command "UNDO" "BE")
    	(vl-cmdf "_-HATCHEDIT" (ssadd ent) "H" "")
    	(setq ss (ssadd ent))
    	(while (setq entl (entnext entl))
    	  (setq ss (ssadd entl ss)) )
    	(Setq lst (list))
    	       (foreach ent2 (acet-ss-to-list ss)
    		 (setq lst (append lst (list (list (cdr (assoc 8 (entget ent2)))  (_cen ent2)))))
    		 )
    	(command "UNDO" "E")
    	(command "UNDO" "1")
    	(foreach lst1 lst
    	  (maketext (car lst1) (car lst1) (cadr lst1))
    	  )
    	) (maketext (cdr (assoc 8 (entget ent))) (cdr (assoc 8 (entget ent))) (_cen ent))
          ))
    	
        
      (print)
      )
    (defun _cen (v / p1 p2 p u entl ssp lstp pl)
            (vla-getboundingbox  (vlax-ename->vla-object v) 'p1 'p2)
            (setq p (mapcar '* (mapcar '+ (vlax-safearray->list p1) (vlax-safearray->list p2)) '(0.5 0.5 0.5)))
        (setq u (entmakex (list '(0 . "LINE") (cons 10 p)(cons 11 (polar p (/ pi 2) 1)))))
      (setq entl (entlast))
      (vl-cmdf "_-HATCHEDIT" (ssadd v)  "B" "P" "Y" )
      (setq ssp (list))
      (while (setq entl (entnext entl)) (setq ssp (append ssp (list entl))))
      (setq lstp (list))
      (mapcar '(lambda (pl) (setq    p    (vlax-invoke (vlax-ename->vla-object pl) 'IntersectWith (vlax-ename->vla-object u) 2)    )
    	     (entdel pl)
    	     (while (and (car p) (cadr p) (caddr p))
    	     (setq lstp (append lstp (list (list (Car p) (cadr p) (caddr p)) ) ))
    	       (setq p (cdddr p)))
    	       ) ssp)  
        (entdel u)
      (setq lstp (vl-sort lstp '(lambda (x y) (> (cadr x) (cadr y)))))
      (acet-geom-midpoint (car lstp) (cadr lstp))
    )
    (defun maketext (lay noidung point / lay point)
    (entmakex (list
    		(cons 0 "TEXT")
    		(cons 100 "AcDbEntity")
    		(cons 100 "AcDbText")
    		(cons 8 lay)
    		(cons 1 noidung)
    		(cons 7 (getvar "TEXTSTYLE"))
    		(cons 10 point)
    		(cons 11 point)
    		(cons 40 (getvar "TEXTSIZE"))
    		(cons 72 4)
    		))
      )

     

    Lisp cũ mình thấy số hiển thị theo Dimstyle hiện hữu. Lisp bạn vừa sửa hình nó mặc định số kiểu gì mà bé lắm bạn?


  11. 1 phút trước, Doan Nguyen Van đã nói:

    Bạn dùng lệnh FIND để sửa nhé

    • ii_h2t_h2l.lsp
      lisp help
    •  
    
    (alert (strcat "LISP Hatch to Text"
    	       "\nNguoi viet: 3Duy"
    	       "\nLenh thuc hien:"
    	       "\n        H2T - Dien tich"
    	       "\n        H2L - Ten layer"
    	       )
    )
    
    ;TEN LENH
    (defun C:ii ()
      (alert (strcat "LISP Hatch to Text"
    	       "\nNguoi viet: 3Duy"
    	       "\nLenh thuc hien:"
    	       "\n        H2T - Dien tich"
    	       "\n        H2L - Ten layer"
    	       )
    )
      )
    
    (vl-load-com)
    
    ;HATCH TO TEXT
    (defun C:h2t ( / AREA ELST OBJ)
      (setq elst (acet-ss-to-list (ssget (list (cons 0 "HATCH")))))
      (foreach ent elst
        (if (> (vla-get-numberofloops (vlax-ename->vla-object ent)) 1) (progn
       	(setq entl (entlast))
    	(command "UNDO" "BE")
    	(vl-cmdf "_-HATCHEDIT" (ssadd ent) "H" "")
    	(setq ss (ssadd ent))
      (while (setq entl (entnext entl))
    	  (setq ss (ssadd entl ss)) )
      (setq lst (list))
      (foreach ent2 (acet-ss-to-list ss)
        (setq obj (vlax-ename->vla-object ent2))
        (if (vl-catch-all-error-p (vl-catch-all-apply (function (lambda () (setq area (vlax-get obj 'area))))))
          (setq area 0.00)
          (setq area (vlax-get obj 'area))
          )
        (setq lst (append lst (list (list (cdr (assoc 8 (entget ent2))) (rtos area 2 (getvar "LUPREC")) (car (boundingbox obj))))))
        )
        	(command "UNDO" "E")
    	(command "UNDO" "1")
      (foreach lst1 lst
    	  (maketext (car lst1) (cadr lst1) (caddr lst1))
    	  ) ) (progn
    (setq obj (vlax-ename->vla-object ent))
        (if (vl-catch-all-error-p (vl-catch-all-apply (function (lambda () (setq area (vlax-get obj 'area))))))
          (setq area 0.00)
          (setq area (vlax-get obj 'area))
          )
    (maketext (cdr (assoc 8 (entget ent))) (rtos area 2 (getvar "LUPREC")) (car (boundingbox obj)))
    ))
        )
        
      (print)
      )
    (defun C:h2l ( / ELST OBJ)
      (setq elst (acet-ss-to-list (ssget (list (cons 0 "HATCH")))))
        (foreach ent elst
        (if (> (vla-get-numberofloops (vlax-ename->vla-object ent)) 1) (progn
     	(setq entl (entlast))
    	(command "UNDO" "BE")
    	(vl-cmdf "_-HATCHEDIT" (ssadd ent) "H" "")
    	(setq ss (ssadd ent))
    	(while (setq entl (entnext entl))
    	  (setq ss (ssadd entl ss)) )
    	(Setq lst (list))
    	       (foreach ent2 (acet-ss-to-list ss)
    		 (setq lst (append lst (list (list (cdr (assoc 8 (entget ent2))) (car (boundingbox (vlax-ename->vla-object ent2)))))))
    		 )
    	(command "UNDO" "E")
    	(command "UNDO" "1")
    	(foreach lst1 lst
    	  (maketext (car lst1) (car lst1) (cadr lst1))
    	  )
    	) (maketext (cdr (assoc 8 (entget ent))) (cdr (assoc 8 (entget ent))) (car (boundingbox (vlax-ename->vla-object ent))))
          ))
    	
        
      (print)
      )
    
    (defun boundingbox (obj / a b lst lst1)
      (if
        (and
          (vlax-method-applicable-p obj 'getboundingbox)
          (not (vl-catch-all-error-p (vl-catch-all-apply 'vla-getboundingbox (list obj 'a 'b))))
          (setq lst (mapcar 'vlax-safearray->list (list a b)))
          )
        (setq lst1 (mapcar '(lambda ( a ) (mapcar '(lambda ( b ) ((eval b) lst)) a))
    		       '((caar cadar) (caadr cadar) (caadr cadadr) (caar cadadr))
    		       )
    	  lst1 (append (list (list (/ (+ (car (car lst1)) (car (caddr lst1))) 2.) (/ (+ (cadr (car lst1)) (cadr (caddr lst1))) 2.))) lst1)
    	  )
        )
      )
    (defun maketext (lay noidung point / lay point)
    (entmakex (list
    		(cons 0 "TEXT")
    		(cons 100 "AcDbEntity")
    		(cons 100 "AcDbText")
    		(cons 8 lay)
    		(cons 1 noidung)
    		(cons 7 (getvar "TEXTSTYLE"))
    		(cons 10 point)
    		(cons 11 point)
    		(cons 40 (/ (getvar "VIEWSIZE") 100))
    		(cons 72 4)
    		))
      )

     

    Ok, cảm ơn bạn rất nhiều!

×