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

Namvanvo

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

    354
  • Đã tham gia

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

  • Ngày trúng

    6

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


  1. Vào lúc 5/10/2021 tại 16:25, đặng phụng đã nói:

    Thân chào các sư huynh. e có 1 vấn đề nhỏ xin huynh nào giúp đỡ . e có 1 lisp chèn giá trị nội dung text vào 1 thuộc tính trong block ATT tuy nhiên lisp chỉ cho phép chèn text đã có trong bản vẽ. Giờ e muốn lisp làm được cả 2 nguồn là nhập nội dung vào với chọn text đã có trên bản vẽ. nhờ các a giúp ạ.

    CHEN NOI DUNG TEXT VAO BLOCK THUOC TINH (DB).lsp

    Bác thử file em gửi xem được không ạ.

    CHEN NOI DUNG TEXT VAO BLOCK THUOC TINH (DB1).lsp


  2. Vào lúc 3/10/2021 tại 10:50, kientl1978 đã nói:

    Xin ae cao thủ chỉ giúp, tôi mới học qua về vba cad và excel, tôi đang tập viết 1 cad sub để lấy thông tin của text chuyển qua excel (KL mặt cắt), tôi mới chỉ làm được với từng m/c riêng lẻ theo các hướng dẫn trên web, xắp xếp thông tin lấy dc theo 1 cột chỉ định trong excel. Để nhập thông tin này vào bảng tính KL mặt cắt, tôi phải viết thêm 1 sub nhập liệu trên file KL đó. Tôi muốn hỏi ae liệu mình có thể gọi sub nhập liệu của excel ngay trong sub của cad không (đỡ tốn công quay đi, quay lại giữa cad và excel), nếu dc thì mình phải viết cú pháp gọi sub excel trong sub của cad thế nào (ví dụ gọi sub Lenh_Luu của excel trong sub gettext của cad trong file đính kèm). Cảm ơn ae trước nhiều nhé. 

    getTxt1.rar

    Được ạ, bác có thể tạo sub để thực hiện công việc trong excel ngay trong sub của cad, hoặc ngược lại, bác có thể tạo sub để thực hiện các công việc trên excel cho excel và cho cad.

    • Like 1

  3. Chào mọi người, mình thấy topic này còn mới, ít bài nên xin chủ thớt cho ké 1 bài.

    Mình muốn xin lisp để làm công việc như trong file cad mình gửi kèm theo và miêu tả dưới đây:

    http://www.cadviet.com/upfiles/4/121048_cp.dwg

    Mỗi đoạn sẽ có một kích thước khác nhau và tên khác nhau, do đó những đoạn có kích thước ngắn quá thì cái trên nó sẽ tràn sang đoạn khác và dẫn đến chồng lẫn lên nhau, không thể nhìn thấy được nên mình cần 1 cảng bảng liệt kê ra những đoạn đó, mục đích để biết đoạn đó là đoạn nào (piece) và đoạn đó tên gì (spool No.), chiều dài nó bao nhiêu (length).

    Vì số lượng bản vẽ cần thực hiện công việc này cũng khá nhiều nên rất mong nhận được sự trợ giúp.

    • Vote giảm 1

  4. - hehe Nam cứ mạnh dạng mà viết, rùi post lên mọi người ai đi ngang góp ý cho í mà, như nhoc qua tới Chương 6 nhoc mới viết đc hì ^^

     Ý tưởng của mình như sau

    1. chương trình cần biến toàn cục #d, giá trị ban đầu là 10: (setq #d 10)

    2. khi sử dụng thì chương trình yêu cầu người nhập giá trị cho biến #d : (setq dist (getreal "\n Nhap so:"))

    3. Nếu người dùng nhập giá trị, thì giá trị này trở thành mặc định: (cond ((numberp dist) dist))

    4. Nếu người dùng ấn space luôn mà không nhập số thì #d sẽ là giá trị mặc định: (cond ((not dist) #d))

    --> vậy ý tưởng của mình đã phù hợp với yêu cầu của đề bài chưa, nếu ý tưởng đúng--> giúp mình hoàn thiện hàm, nếu ý tưởng sai-->mong chỉ giáo


  5.  

    Mình tiếp tục bài tập, mong Thầy Ket và các bạn hỗ trợ tiếp :

    
    

    (defun C:dl(/ a B) ;Draw Line (5.1)

    (setq os (getvar 'osmode)

    echo (getvar 'cmdecho))

    (setvar 'osmode 0)

    (setvar 'cmdecho 0)

    (initget 1)

    (setq a (getpoint "\nFirst point:"))

    (initget 1)

    (setq b (getpoint a "\nNext point:"))

    (command "line" a B)

    (setvar 'osmode os)

    (setvar 'cmdecho echo)

    (princ)

    )

     

    (defun ipos (n lst); ipos n list (5.2)

      (if (>  n 0)

      (nth (1- n) lst))

      )

     

    Nhận xét : 2 bài bạn đều làm tốt.

    Kết luận : Bỏ qua bài 3, tiếp tục các bài 4,5,6 bạn nhé


  6. Thank Tot77, chạy ok, tuy nhiên khi nhấn ESC xong thì phải đợi một khoảng thời gian tầm 1 phút rồi nó xuất hiện "type Y to reset", có cách nào khắc phục tình trạng phải đợi này không Tot77, và không xuất hiện dòng nhắc type Y luôn thì càng chuẩn, mặc định cho nó tự type Y luôn?

    Mình mò được rồi,  bỏ dòng 

    (*error* msg), không biết khi bỏ đi thì có ảnh hưởng gì tới hàm không? 

    Bác có thể diễn giải thêm về cái hàm này được không?


  7.  

    Khi nhấn esc giữa chừng thì coi như bạn kích hoạt hàm *error* của lsp, do đó bạn phải định nghĩa lại hàm *error* như sau:

     

    (defun *error* ( msg )
      (if oldlayer (setvar "CLAYER" oldlayer))
      (*error* msg)
    )
    
      (if oldlayer (setvar "CLAYER" oldlayer))
      (*error* msg)
    )

    Thank Tot77, chạy ok, tuy nhiên khi nhấn ESC xong thì phải đợi một khoảng thời gian tầm 1 phút rồi nó xuất hiện "type Y to reset", có cách nào khắc phục tình trạng phải đợi này không Tot77, và không xuất hiện dòng nhắc type Y luôn thì càng chuẩn, mặc định cho nó tự type Y luôn?

×