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

dinhnhat

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

    17
  • Đã tham gia

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

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


  1. Mình sưa tầm trên mạng code lisp: Mình muốn nhờ các bạn chỉnh sửa giúp sau khi lựa chọn được layer không dùng lệnh move mà thành select các đối tượng đã được chọn nhé.

    Trân thành các ơn các bạn.

     

    (defun c:demo ( / ss)

    (if (setq ss (ssget "_:L" '((8 . "E-CAB-BORE-NP,E-CAB-PART-NP,E-CAB-POCKET-NP"))))

    (command "_.move" ss "" "\\" "\\")

    )

    (princ) )

     


  2. 38 phút trước, Danh Cong đã nói:

    1: Việc râu của ông mà lại cắm sang bà đã là 1 sai lầm. Cắm sai vị trí lại càng sai lầm hơn. Dân IT có câu: Nhiệt tình + dốt = phá hoại.

    2: Copy code trên diễn đàn, không được download.

    Vẫn bị lỗi này bác Danh Cong.

    Chọn được đối tượng pline, line rùi. Nhưng bước tiếp theo lại lỗi....

     

    Bác thu xếp xử lý giúp e nhé.

    Cám ơn bác nhiều.:)

     

    Command: sr
    So chu so thap phan <2>:
    Select objects: 1 found
    Select objects:  ; error: bad argument type: numberp: nil


  3. 14 phút trước, ngokiet đã nói:

    Bác xem lại cấu trúc lệnh cond nhé.

    Mấy dòng đỏ ở đầu bạn sửa lại 1 chút

    (or (> (getvar 'USERI1) -1) (setvar 'USERI1 2))
      (initget 4)
      (or (setq stp (getint (strcat "\nSo chu so thap phan <" (itoa (getvar 'USERI1)) ">: ")))

            (setq stp (getvar 'USERI1)))
      (setvar 'USERI1 stp)

    Vẫn bị lỗi bác à. 

    Command: SR
    So chu so thap phan <2>:  ; error: bad argument type: numberp: nil

     

    Bác xem lại giúp e nhé.


  4. Vào lúc 27/10/2016 tại 15:31, Danh Cong đã nói:

    Ý là bạn gõ trực tiếp lên cad câu lệnh :  DIMZIN ,  set giá trị 0  rồi thử lại xem.  :) Chứ a @QuocManh từng chữa lỗi này rồi.

    (defun C:sr( / ss L e #h)

    (or (> (getvar 'USERI1) -1) (setvar 'USERI1 2))
      (initget 4)
      (setq stp (cond ((getint (strcat "\nSo chu so thap phan <" (itoa (getvar 'USERI1)) ">: ")))
                      ((getvar 'USERI1))))
      (setvar 'USERI1 stp)

    (vl-load-com)
    (defun Length1(e) (vlax-curve-getDistAtParam e (vlax-curve-getEndParam e)))
    (or ans (setq ans 1))
    (setq
       #h 200
       L (strcat "L= "
       (vl-princ-to-string (* (getvar "dimlfac") (apply '+
           (mapcar 'Length1 (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget (list (cons 1 (rtos d 2 stp) "LINE,ARC,CIRCLE,POLYLINE,LWPOLYLINE,ELLIPSE,SPLINE")))))))
       ))) " m"
       )
       ans (cond ((getint (strcat "\nPhuong an nhap ket qua < " (itoa ans) " > :")))(ans))
       txtObj (cond     ((= ans 1) (vlax-ename->vla-object (car (entsel "\nChon text ghi ket qua :"))))
                       (T (vla-addtext (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))) L (vlax-3d-point (getpoint "\n Chon diem nhap ket qua" )) #h ))
               )
    )
    (vla-put-TextString txtObj L)
    (vla-put-Height txtObj #h)
    (princ)
    )

     

     

     

    Bác Danh Cong xem giúp lisp này sai chỗ nào hộ e với. Có hiển thị hỏi thập phân là bao nhiêu nhưng bị lỗi lisp luôn bác à.

    DIMZIN ,  set giá trị 0  đã để giá trị 0 rùi bác à.

     

    Mong bác sửa lỗi giúp e nhé. 


  5. Vào lúc 7/12/2011 tại 14:11, ketxu đã nói:

    Đã đăng Tháng 12 1, 2011

    Bạn tìm đến đoạn

    (vl-princ-to-string (* (getvar "dimlfac") (apply '+

    (mapcar 'Length1 (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget (list (cons 0 "LINE,ARC,CIRCLE,POLYLINE,LWPOLYLINE,ELLIPSE,SPLINE")))))))

    )))

     

    rồi thêm bất kỳ gì bạn muốn vào đằng sau dấu ))). Ví dụ trường hợp của bạn là

    (vl-princ-to-string (* (getvar "dimlfac") (apply '+

    (mapcar 'Length1 (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget (list (cons 0 "LINE,ARC,CIRCLE,POLYLINE,LWPOLYLINE,ELLIPSE,SPLINE")))))))

    ))) " mm"

    Bác ketxu giúp e chuyển sang đơn vị là mét (m) nhưng được làm tròn sau dấu phẩy 2 chữ số được kg ? 

     

    Lisp hiển thị kết quả 13.0341===> e mốn hiển thị 13.03

     

    • Vote giảm 1

  6. Dear các bác cao thủ giúp e vụ này với ạ.


     


    hiện giờ e có file cad cần tính tổng chiều dài đoạn thẳng Mline. Nhưng lisp của bác Hoành chưa


    chia ra tính tổng cho từng loại đường kính ống (ống 42,60,90,110) vậy bác có thể nâng cấp lisp cũ lên để chia ra cho e được không ạ.


    thank bác trước nhé  :)


     


    File đính kèm ạ


     


    Lisp cũ ạ


     


    http://www.cadviet.com/upfiles/7/17104_daimline_1.lsp


     


    bản vẽ cần đo ra kích thước từng đoạn ống ạ


    http://www.cadviet.com/upfiles/7/17104_Do_chiEu_dAi_mline_tUng_kIch_thUOc_426090110_1.dwg

    • Vote giảm 1

  7. Dear Mr 

    Nguyen Hoanh

    hiện giờ e có file cad cần tính tổng chiều dài đoạn thẳng Mline. Nhưng lisp của bác chưa

    chia ra tính tổng cho từng loại đường kính ống (ống 42,60,90,110) vậy bác có thể nâng cấp lisp cũ lên để chia ra cho e được không ạ.

    thank bác trước nhé :) 

     

    File đính kèm ạ

     

     http://www.cadviet.com/upfiles/7/17104_Do_chiEu_dAi_mline_tUng_kIch_thUOc_426090110.dwg

×