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

hung1608

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

    155
  • Đã tham gia

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

  • Ngày trúng

    6

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


  1. Bạn thử cái này xem sao   :)

     

    Trước  khi dùng lisp thì vào Option -->Open and Save --> Chọn định dạng file mà bạn muốn save nhé !

     

    Cách dùng: Mở bản vẽ mới ,sau đó gõ lệnh SA ,rồi chọn file bất kỳ trong folder mà chứa file cần save

    Rồi uống cafe đợi nó chạy xong nhé.keke

    Cái định dạng mình biết bạn ơi, nhưng như mình đã nói, mình có tầm 100 bản vẽ, nếu làm từng bản vẽ 1 thì lâu lắm, nên muốn nhờ mọi người xem có cách nào để tiết kiệm thời gian hơn không.

    Thanks

    • Vote tăng 1

  2. Cho mình hỏi có cách nào save as nhanh cùng 1 lúc nhiều bản vẽ không. Chẳng là mình có hơn 100 bản vẽ cần xếp về cad đời cũ. Mà làm từng bản vẽ  1 thấy lâu và thủ công quá.

    Nếu cad không có lệnh này thì phiền bạn nào giúp mình viết 1 cái lisp sử lý vấn đề này được không

    Thanks

    • Vote tăng 1

  3. Được mà bạn, kết hợp cả sơ đồ không gian và mặt bằng nữa,

    Nếu bạn biết cấp thoát nước bạn có thể giúp mình làm 1 cái lísp thống kê đầy đủ được không

    Chăng hạn như 2 đoạn thẳng giao nhau của ống cấp là 1 cái cút, nhưng của ống thoát là 2 cái chếch, ...

    Bạn biết thì làm giúp mình đi

    Vừa thống kê hơn chục khu WC xong đau hết cả đầu mà mất thời gian kinh khủng

    Thanks

    • Vote tăng 1

  4. Mình làm cấp thoát nước, nhiều khi thống kê vật tư rất mên, thống kê van khóa còn đỡ, chứ tê cút chếch mà bản vẽ nhiều thì rất đâu đâu, mình có ý tưởng này nhờ bạn nào viết giúp mình cái lisp có chức năng như sau để khi thống kê cút chếch tê đơn giản hơn :

    -  Khi ta quét bản vẽ hay vùng được quét có các đoạn thẳng giao nhau, nếu 2 đoạn thẳng vuông góc nhau thì thống kê là cut , hay hợp với nhau góc 135 hay 45 độ thì thống kê là chếch, các đoạn thẳng giao nhau giống Y hay T thì thống kê là Y , T

    Mong cao thủ nào giúp mình cái. 

     

     

    • Vote tăng 1
    • Vote giảm 2

  5.  

    lỗi code diễn đàn bị mất tên biến. Bạn lấy lisp này (mình chỉ đổi lại tên biến)

    ;; free lisp from cadviet.com
    ;;; this lisp was downloaded from http://www.cadviet.com/forum/topic/280-lisp-move-text-vao-chinh-giua-mot-rectang/
    (defun c:m2c (/ comm src des oldos mid)
      (defun mid (ent / p1 p2)
        (vla-getboundingbox (vlax-ename->vla-object ent) 'p1 'p2)
        (setq p1 (vlax-safearray->list p1)
    	  p2 (vlax-safearray->list p2)
    	  pt (mapcar '+ p1 p2)
    	  pt (mapcar '* pt '(0.5 0.5 0.5))
        )
        pt
      )
      (or cm (setq cm "C"))
      (initget "C M")
      (setq comm (getkword  (strcat "\nBan muon Copy hay Move <" cm ">: ")))
      (if(not comm)(setq comm cm))
      (setq cm comm)
      (setq oldos (getvar "osmode"))
      (setvar "osmode" 0)
      (while (and
    	   (setq src (car (entsel "\nDoi tuong can di chuyen: ")))
    	   (not(redraw src 3))
    	   (setq des (car (entsel "\nDoi tuong dich: ")))
    	   (not(redraw src 4))
    	 )
        (if	(= (strcase comm) "C")
          (command ".copy" src "" (mid src) (mid des))
          (command ".move" src "" (mid src) (mid des))
        )
      )
      (setvar "osmode" oldos)
      (princ)
    )
    (vl-load-com)
    

    Giả sử Bạn quét chọn có 2 đối tượng, thì đối tượng nào là nguồn, là đích, khi quét được n đối tượng thì sẽ ra sao

    Mô tả của Bạn khó hiểu quá. Bạn hãy up file lên trong đó thể hiện trước và sau khi thực hiện lệnh, "khu vực đó" là gì

     

    Vẫn thế bạn ơi, vẫn chỉ Move thôi k copy được, không có lựa chon copy hay move gì cả

    Bạn xem file nay của mình, mình có các căn hộ cần bố trí tiết bị ở giữa phòng, mình muốn dùng lisp để thực hiện công việc này có được không bạn

    Cảm ơn bạn đã xem bài viết của mình

    http://www.cadviet.com/upfiles/5/11317_da_nang.rar


  6. @hung1608:

     

    -Để kết thúc lệnh Bạn nên enter hoặc click chuột, không dùng escape để thoát lệnh

    - lisp trên đã có rồi, Bạn muốn copy thì nhấn "C", move thì nhấn "M". Khi chạy lần đầu mặc định là copy, các lấn sau (sau khi gõ lệnh M2C) thì nó đã nhớ lệnh lần trước rồi, nếu đúng thì chỉ enter là được

    - Việc quét chọn mình đã giải thích rồi, lần chọn đối tượng nguốn gồm các đ/tượng a,b,c,d,... các đ/tượng đích là A,B,C,D,.... . Bạn muốn copy (hoặc move) a->A, b->B, c->C ... nhưng nó thực hiện a->B, b->C, c->A,.... thì có đúng theo ý BẠn không?

    Không được bạn ơi tớ thử ân C rùi vẫn không được nó toàn move thôi bạn ah. Bạn thử check hộ lại mình xem

    Cái quét ý của minh là khi k co rectang để chọn mình có 1 khu vực thì minh quét khu vực đó thì đối tượng của minh se vào chính giữa vị trí đó

    Thanks


  7. đã chỉnh sửa cho Bạn

    ;; free lisp from cadviet.com
    ;;; this lisp was downloaded from http://www.cadviet.com/forum/topic/280-lisp-move-text-vao-chinh-giua-mot-rectang/
    (defun c:m2c (/ comm src des oldos mid)
      (defun mid (ent / p1 p2)
        (vla-getboundingbox (vlax-ename->vla-object ent) 'p1 'p2)
        (setq p1 (vlax-safearray->list p1)
    	  p2 (vlax-safearray->list p2)
    	  pt (mapcar '+ p1 p2)
    	  pt (mapcar '* pt '(0.5 0.5 0.5))
        )
        pt
      )
      (or com (setq com "C"))
      (initget "C M")
      (setq comm (getkword  (strcat "\nBan muon Copy hay Move <"com">:")))
      (if(not comm)(setq comm com))
      (setq com comm)
      (setq oldos (getvar "osmode"))
      (setvar "osmode" 0)
      (while (and
    	   (setq src (car (entsel "\nDoi tuong can di chuyen: ")))
    	   (not(redraw src 3))
    	   (setq des (car (entsel "\nDoi tuong dich: ")))
    	   (not(redraw src 4))
    	 )
        (if	(= (strcase comm) "C")
          (command ".copy" src "" (mid src) (mid des))
          (command ".move" src "" (mid src) (mid des))
        )
      )
      (setvar "osmode" oldos)
      (princ)
    )
    (vl-load-com)
    

    Việc chon nhiều rectang rồi chọn các đối tương thì chưa có vì phải có qui luật sắp xếp. Nếu sắp xếp theo thứ tự chọn thì làm theo lisp trên sẽ nhanh hơn

     Cảm ơn bạn đã giúp mình, mình đã sử dụng lisp chạy ổn nhưng còn 1 số chỗ bạn điều chỉnh giúp mình được không

    + khi dùng lisp xong thì mất hết chon điêm Osnap, mình thử mấy lần rùi vẫn thế

    + bạn có thể cho lísp lựa chọn thêm chức năng copy hoặc move được không

    +Thêm lựa chon chức năng quét 1 khu vực hoặc lựa chọn Rectang thì đối tượng được chọn sẽ copy hay move vào chính giữa

    Thanks bạn rất nhiều. 


  8. http://www.cadviet.com/upfiles/4/11317_m2c.lsp

    Mình có lisp trên mình muốn tăng thêm các tính năng sau bạn nào có thể giúp mình được không :

    + Có thể lựa chọn copy hoặc move ( lần sau đánh lệnh có thể lưu giữ mặc định lấn sử dụng lệnh trước copy hoặc move, lần nào cũng lựa chọn hơi mất công )

    + Chọn 1 hoặc nhiều Rectang, sau đó đối tượng mình muốn copy hay move sẽ vào chính giữa các Rectang đó. Thêm chức năng quét 1 khu vực thì đối tượng được chọn sẽ copy hay move vào chính giữa , thực hiện lệnh này 1 cách liên tiếp không cần đánh lại lệnh

    Mình đang cần lệnh này để thực hiện bản vẽ của minh được mau hơn, yêu cầu của mình hơi nhiều, mong các bạn giúp đỡ mình sớm.

    Thanks

    • Vote giảm 1

  9. Bạn hung 1608 nói đúng, kích thước 4000 của bạn lúc này biến hệ thống DIMLFAC = 0.25 hoặc nếu bạn chon kích thước rồi nhấn Ctrl+1 thì cũng sẽ thấy property Dim scale linear = 0.25 (bạn chọn Formatt - Units .00). Kích thước này có DIMLFAC = 0.25 khác 1 nên khi bạn lệnh DDim thi sẽ thấy có kiểu Dim override.Tuy nhiên bản vẽ của bạn không hiện lên kích thước này chứng tỏ đã dung lệnh pu xoá hết đối tượng thừa với lựa chọn nested items

    Mình hiểu rùi

    Cảm ơn bạn nhé

    • Vote tăng 1
×