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

Nguyen Hoang Thuy Linh

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

    7
  • Đã tham gia

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

Bài đăng được đăng bởi Nguyen Hoang Thuy Linh


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

    Mình sửa lại của @ngokiet:

    + Số 0.999 bạn có thể thay đổi cho phù hợp, ý nghĩa:

    Ví dụ đối với đường kính D120 thì giá trị nằm trong khoảng: 191.001 đến 120.999 được chấp nhận.

    
    (defun c:ddk  (/ ent lst ndc)
      (setq ent (entlast)
            lst '((75 . "5K-10A")
                  (80 . "5K-15A")
                  (85 . "5K-20A")
                  (95 . "5K-25A")
                  (115 . "5K-32A")
                  (120 . "5K-40A")
                  (130 . "5K-50A")
                  (155 . "5K-65A")
                  (180 . "5K-80A")
                  (190 . "5K-900A")
                  (200 . "5K-100A")
                  (235 . "5K-125A")
                  (265 . "5K-150A")
                  (300 . "5K-175A")
                  (320 . "5K-200A")
                  (345 . "5K-225A")
                  (385 . "5K-250A")
                  (430 . "5K-300A")
                  (480 . "5K-350A")))
      (command "DIMDIAMETER")
      (while (< 0 (getvar "CMDACTIVE")) (command pause))
      (if (/= ent (setq ent (entlast)))
        (if (setq ndc (car
                        (vl-remove-if-not '(lambda (x) (equal (car x) (cdr (assoc 42 (entget ent))) 0.999))
                                          lst)))
          (entmod (list (cons -1 ent) (cons 1 (cdr ndc))))))
      (princ))

     

    Cám ơn bác nhiều nhé! bác có thể gán cho em nó dùm em một layer tên KVN_text /cyan/continous/nét 0.25 giúp em với nhé! àh, sau khi kết thúc lệnh thì nó trở về layer 0 mặc định ạ!


  2. 10 giờ trước, ngokiet đã nói:

    Hic mình nhắc đổi thành equal thì phải thêm sài số vào.

     

    Mình viết sơ lại

    
    (defun c:ddk ( / ndc  ent)
      (setq ent (entlast))
      (command "DIMDIAMETER")
      (while (< 0 (getvar "CMDACTIVE")) (command pause))
      (if (/= ent (setq ent (entlast)))
        (if (setq ndc (assoc (fix (+ 0.5 (cdr(assoc 42 (entget ent)))))
    			 '((75 . "5K-10A")
    			   (80 . "5K-15A")
    			   (85 . "5K-20A")
    			   (95 . "5K-25A")
    			   (115 . "5K-32A")
    			   (120 . "5K-40A")
    			   (130 . "5K-50A")
    			   (155 . "5K-65A")
    			   (180 . "5K-80A")
    			   (190 . "5K-900A")
    			   (200 . "5K-100A")
    			   (235 . "5K-125A")
    			   (265 . "5K-150A")
    			   (300 . "5K-175A")
    			   (320 . "5K-200A")
    			   (345 . "5K-225A")
    			   (385 . "5K-250A")
    			   (430 . "5K-300A")
    			   (480 . "5K-350A"))))
          (entmod (list (cons -1 ent) (cons 1 (cdr ndc))))))
      (princ))

     

    Bác ngokiet đúng ý em quá rồi, em thử good lắm a, bác fix +0.5 đúng là cái em mắc phải mà em không nghỉ tới, vì file của em Import từ cái file đuôi .igs nên thỉnh thoảng nó củng ra số gần đúng. nếu fix + - 0.5 thì ok hơn, bác chỉ e sửa thêm -0.5 nửa nhé!!!


  3. 13 giờ trước, duy782006 đã nói:
    
    (defun c:ddk ( / ndc  dtdtt)
    (command "DIMDIAMETER")
    (while (< 0 (getvar "CMDACTIVE"))
    (command pause)
    ) 
    (setq ndc (cdr (assoc 1  (entget (entlast)))))
    (cond 
    ((= ndc "") (setq ndc (cdr (assoc 42  (entget (entlast))))))
    )
    (cond  ((= ndc 75) (setq ndc "5K-10A")) )
    (cond  ((= ndc 80) (setq ndc "5K-15A")) )
    (cond  ((= ndc 85) (setq ndc "5K-20A")) )
    (cond  ((= ndc 95) (setq ndc "5K-25A")) )
    (cond  ((= ndc 115) (setq ndc "5K-32A")) )
    (cond  ((= ndc 120) (setq ndc "5K-40A")) )
    
    (setq dtdtt (subst (cons 1 ndc) (assoc 1 (entget (entlast))) (entget (entlast))))
    (entmod dtdtt)
    
    (princ)
    )

    Viết thử mà hông biết sao nó lại chạy chập chờn lúc được lúc không. Mới nhập từ 75 đến 120 thôi. Ỗn định thì bạn tự nhập tiếp.

    Cám ơn bác nhé! của bác em thử đúng là chập chờn thật, một hai lần đầu ra bình thường, mình đo qua lần thứ 3 thì không ra nữa, hii


  4. Số là công việc của em suốt ngày là đo đường kính hình tròn rồi tra bảng gán cho nó một thông số. Tra bảng riết rồi chán quá mấy bác ơi. Bác nào giúp em viết một Lisp mà thay vì đo đường kính ra kích thước thì ra luôn thông số trong bảng dùm em với được không ạ! em có đính kèm file. cám ơn các bác nhiều ạ. chúc các bác sức khoẻ và vui vẻ!

    Furanji.jpg

    MAT BICH.dwg

×