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

Danh Cong

Moderator
  • Số lượng nội dung

    1.387
  • Đã tham gia

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

  • Ngày trúng

    117

Bài đăng được đăng bởi Danh Cong


  1. 22 giờ trước, tan_kysu đã nói:

    xin các cao nhân giúp em cải tiến lisp dưới thành lisp leader tại các điểm giao nhau với ạ. xin chân thành cảm ơn

     LEE.lsp

     

    Mở lisp ra thấy code quen quen, hóa ra là lisp của mình viết 6 năm về trước :)))

    Mình thì bỏ viết Lisp lâu rồi, nhưng có lisp cũ đáp ứng nhu cầu của bạn nên gửi lên.
    Bạn xem video đính kèm để biết cách thao tác nhé.

     

    VIDEO LEADER.rar

    Leader - ( LEA-PROGRAM).lsp

    • Like 1

  2. 1:  Bạn nên làm như sau: 

    Tab Text : Đặt chiều cao Text Hight = 1.5.

    Giả sử bạn muốn chiều cao chữ khi dim trong không gian model = 150    --->  hãy đặt giá trị Fit  =   150 / 1.5   = 100

    Giờ thì dim thử lại trong Model , xem nó ảnh hưởng như thế nào :)))

     

    2. Đừng nên tích vào Annotative.  , vì bạn mới học nên giải thích nhiều rối lắm.

    3. Muốn lưu trữ dim : Có 1 cách đơn giản là bạn lưu bản vẽ thành 1 file mẫu. Dim vài cái. Nay mai mở bản vẽ mới, muốn dùng dim nào thì copy từ bản vẽ mẫu sang. Cad nó tự nhận thông số dim của bản vẽ mẫu. :)))

     


  3. 9 giờ trước, jimmy12 đã nói:

    Đầu tiền là e cảm ơn bác đã giúp đỡ, nhưng giờ e có thể hỏi bác thêm là giờ em muốn thêm như: M5x12, M6x15..... và còn nhiều cái nữa thì thêm vào đầu ạ. Cảm ơn bác đã đọc!

     

    Miễn là bạn đã học các chữ trong bảng chữ cái thì bạn có thể tìm thấy nó bằng cách mở lisp lên :))

    (strcat "M8x20")

    • Vote giảm 1

  4. 1 giờ} trướ}c, Luongquocsonxd đã nói:

    @ Danh Cong : ý của bạn là sao mình không hiểu!!!

     

    + Chia sẻ kiến thức là việc diễn đàn rất khuyến khích. Nhưng chia sẻ nhưng thứ nhiều người đã biết / nhiều bài viết trên diễn đàn đã đề cập rất nhiều thì ko phải là điều tốt.

    Mỗi bài viết chia sẻ đều phải chứa đựng tâm + tầm thì mới có xứng đáng để chia sẻ. Còn viết bài như bạn thì ko nên.

    Ví dụ bạn thử đọc bài viết tương tự như bạn, nhưng của bậc cao thủ thì sẽ như thế nào nhé :  Bài viết từ năm... 2007 bạn nhé.

     

     


  5. 16 giờ trước, leetunghoanh đã nói:

    Toàn bộ các đối tượng đang thuộc layer tên là AA_hatch trong bản vẽ sẽ tự chuyển thành layer BB_netto

    Toàn bộ các đối tượng đang thuộc layer tên là AA_border trong bản vẽ sẽ tự chuyển thành layer BB_duongbien

    Toàn bộ các đối tượng đang thuộc layer tên là AA_rebar trong bản vẽ sẽ tự chuyển thành layer BB_thep

    Nói chung ý tưởng là sẽ đổi nhiều đối tượng thuộc các layer khác nữa, nhưng muốn đổi layer nào thì người dùng sẽ tự copy thêm lệnh vào lisp 

    Bạn có thể liên hệ với bác này : @ketxu : 0989 728 788

    Video thì nó thế này: 

    Lisp thì có phí :)))

     


  6. Bạn cài đặt tất cả thông số ngon lành trên 1 layout rồi thì nhấn nút "Apple to layout" hoặc "OK"   ---> Để máy lưu lại cấu hình in này.

    Giờ bạn chuyển qua tap layout khác chưa cài đặt gì   --> Ctrl+P

    Trong mục "Page setup" của bạn có 1 ô name đang để <none>    --> Chuyển thành "Previous Plot"   ---> Máy lấy lại cấu hình in trong lần gần nhất .

    Mất vài giây thao tác thì có gì lâu đâu nhỉ ?


  7. 16 giờ trước, saukhoai đã nói:

    a cho e hỏi tí, lisp của a chạy đc rồi nhưng e muốn cây thép nó chạy như này đc k a, lisp a chạy ra cây thép nó xếp bậc thang nhưng e muốn nó xếp như kia đc k a

     

    + Của bạn đây :

    
    
    

    (defun c:VTT (/ d i L40 X1 Y1 PT-end X-end Y-end scale L_Tieuchuan L PT1 PT2)
        (Princ "Write by: Do Danh Cong")
        (command "undo" "begin")
        (setq L_TieuChuan
               (list
             (cons 10 450)
             (cons 12 540)
             (cons 14 630)
             (cons 16 720)
             (cons 18 810)
             (cons 20 900)
             (cons 22 990)
             (cons 25 1125)
             (cons 28 1260)
             (cons 32 1455)))

    ;;;;; So lieu dau vao
          (setq L (getdist "Nhap chieu dai / Chon 2 diem: "))
    ;;;;;; Luu gia tri duong kinh
          (or #VTT_D (setq #VTT_D 16))
          (setq #VTT_D (cond ((getreal (strcat "\nNhap D= < " (rtos #VTT_D 2 0) " >:")))(#VTT_D)))
          (setq    Pt1 (getpoint "\n Nhap diem ve: "))
          (setq scale (getvar "dimscale"))
          
          ;;;;; Tinh toan so lieu:
          
          (setq L40 (cdr (assoc #VTT_D L_TieuChuan))
            X1 (car Pt1)
            Y1 (cadr Pt1)
            PT-end (Polar Pt1 0 L)
            X-end (car Pt-end)
            Y-end (cadr Pt-end)
            i 1)
          ;;;;;; Ve thep

          (While  (> X-end X1)
                  (if (>= 11700 (- X-end X1))
                (progn
                      (command ".line" "non" Pt1 "non" Pt-End "")
                      (setq X1  X-End))
                (Progn
                      (setq Pt2 (polar Pt1 0 11700))
                  (command ".line" "non" Pt1 "non" Pt2 "")
                  (setq     X1 (- (car Pt2) L40)
                           Y1 (+ (cadr Pt1) (* 1.5 scale i))
                    i (* -1 i)
                            Pt1 (list X1 Y1)
                                PT-end (list X-end Y1))
                  )
              ))
          (command "undo" "end")
          (Princ))

    • Vote tăng 1

  8. Vào lúc 3/4/2021 tại 01:07, saukhoai đã nói:

    A CHO E HỎI TÍ SAO CAD CỦA E 2018 K CHẠY ĐC NHỈ

    + Bạn Copy các dòng code trong  lisp vào 1 file .txt , rồi đổi tên đuôi  .txt thành .lsp rồi load lại lisp nhé.

     @alisp :   Đúng là lisp bị lỗi thật, mình cũng ko hiểu sao. Thế nên lâu rồi mình toàn copy code, chứ ko dowload lisp trực tiếp từ diễn đàn :)))

    • Vote tăng 1

  9. 17 giờ trước, thaiduylam đã nói:

    Xin chào các Anh chị: Vô tình em dowload được 1 Lisp khá hay của KTS Quốc Mạnh có tên là AreaLength.fas. Em gõ S2A thì chạy được phần đo diện tích . Nhưng trong phần mổ rộng info em thấy có một số lệnh khác như: AFR; A2F; L2F; S2A; P2A; TCD-SS2A; PP2A; TTCD; TLDIA. E mong các anh chị có biết cách sử dụng các lệnh này xin chỉ giáo. Thanks mọi người.

    AreaLength.rar

    Liên hệ tác giả , mạnh dạn thì mình đoán là bác này :)))) : @quocmanh04tt.


  10. 13 giờ trước, DungNguyen685 đã nói:

    như này bạn!

     

    + Dimspace không có lỗi. Lỗi là bạn chưa biết lệnh DimSpace này dùng cho việc gì và dùng nó như thế nào !

    Bạn có thể Google dịch cách dùng nó :

     https://knowledge.autodesk.com/support/autocad-lt/learn-explore/caas/CloudHelp/cloudhelp/2019/ENU/AutoCAD-LT/files/GUID-18DF8B02-3E43-4531-ACE0-75FA7161F209-htm.html

    • Like 2

  11. + Bạn xem lại cách bạn viết tiêu đề. Người khác viết sao mình viết tương tự vậy.

    + Mọi người đều viết thường, cớ sao bạn viết hoa cho mọi người đọc rối mắt ?

    + Bệnh trong bản vẽ của bạn do 1 đối tượng Wipeout nằm bên trên các đối tượng khác của bạn. Bạn phải xóa Wipeout này đi.

    Vào Block Dynamic,  chọn block dynamic mất nét, xplode nó. Click đúp vào Block vừa tạo ra để vào Block editor, xóa Wipeout.


  12. Code em vừa tạo sơ cua đáp ứng vừa đủ nhu cầu của em.

    :)))

    Điều kiện áp dụng : 

    + Khoảng cách giữa các cặp Block không nhỏ hơn khoảng cách giữa 2 đối tượng Block trong 1 cặp.

    + Block 2 nằm dưới Block 1 trong 1 cặp.

    File cad của em cần mỗi như thế này thôi. Cám ơn các bác đã nhiệt tình giúp đỡ :)))

     

    ; DIS  :   Nhap khoang cach tim kiem Block  = khoang cach min DAL giua 2 block gan nhat
    (defun c:TEST (/ DIS DXF_10 DXF_OBJ LST_1 LST_2 OBJ_1 OBJ_2 P1 P2 SS)
      (vl-load-com)
      (defun dxf (id obj) (cdr (assoc id (entget obj))))
      ; ---------------------------------------------------------------------------------------
      (defun RFL (I L / L1 L2)
      (setq L1 (reverse (cdr (member I (reverse L)))))
      (setq L2 (cdr(member I L)))
      (append L1 L2)
      )
      ; ----------------------------------------------------------------------------------------
      (setq dis (getreal "\nNhap khoang cach tim kiem:"))
      (setq lst_1 (acet-ss-to-list (ssget '((0 . "INSERT")))))
      (setq lst_2 '())

      (while  (> (length lst_1) 0)
            (progn
              (setq obj_1 (nth 0 lst_1))
              
                  (setq dxf_obj (entget obj_1))
                (setq dxf_10 (dxf 10 obj_1))
          
              (setq P1 (list (- (car dxf_10) dis) (- (cadr dxf_10) dis) 0.0))
              (setq P2 (list (+ (car dxf_10) dis) (+ (cadr dxf_10) dis) 0.0))
          
                (setq obj_2 (nth 0 (RFL obj_1 (acet-ss-to-list (ssget "C" P1 P2)))))
              
          

              (setq lst_1 (RFL obj_1 lst_1))
              (setq lst_1 (RFL obj_2 lst_1))

              (if (> (cadr (dxf 10 obj_1)) (cadr (dxf 10 obj_2)))
                  (setq lst_2 (append lst_2 (list obj_2)))
                  (setq lst_2 (append lst_2 (list obj_1)))
              )
          )
        )
    (setq ss (SSADD))
      (foreach name lst_2 (ssadd name ss))
        (SSSETFIRST  nil ss )
      )


  13. 17 giờ trước, thuvuithugian đã nói:

    bạn dùng lệnh fill thử xem,  gõ fill enter, sau đó b1;  chọn đối tượng cần lọc. b2: xoá tất các thuộc tính lọc chỉ chừa lại tên block và layer (hoặc color)  gì đó. sau đó apply . quét vùng chọn chứa đối tượng cần lọc.

    +  Trường hợp này các Block trùng Name, trùng Layer nên ko thể áp dụng :))  Dù sao cũng cám ơn bạn đã góp vui :v :v

×