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

conghoa

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

    563
  • Đã tham gia

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

  • Ngày trúng

    14

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


  1. - Lip-no thì dùng Import, Export thôi! Vì Export ra được nhiều file và lưu trữ những file này (đặt tên cho nó để dễ nhớ) => Lưu theo thư mục thì nảy sinh vấn đề phức tạp.

    - Nút màu xanh là lấy tính chất 1 text trên bản vẽ hiện hành (Layer, Height, Width...) để gán vào hộp thoại (gần giống lệnh MA).

    - Ở dòng nhắc có nhiều tính năng truy cập bằng cách gõ các ký tự thấy ở đó, (Tab là nhấn phím Tab).

    Ý mình không phải là lưu theo folder, mà chỉ là nhận dạng các Lib-no đã được tạo trong Folder có sẵn để cập nhật vào cái phần List của Lib-no 1 lần đầu tiên khi chạy lisp.

    Diễn giải:

    - Mình có sẵn các file (A1.dat, A2.dat, .... An.dat)

    - Khi copy sang máy mới thì sẽ phải vào nút mầu đỏ để tạo các tên Lib-no là "A1.dat, A2.dat, .... An.dat", sau đó phải chọn từng A*.dat rồi import lần lượt từng cái một. Như thế sẽ khá lằng nhằng :)

     

    Nói dài dòng như thế tóm lại là: Quocmanh sẽ làm thế nào để lisp cập nhật được các file.dat mà mình đã tạo được khi dùng với một máy mới?


  2. @conghoa: Sử dụng bản này xem (Thi triển hết ý tưởng)=>

     

    Link:https://drive.google.com/file/d/0B2LetfHDljPGcThlcmhvdURCU1E/view?usp=sharing

     

    Thanks Quocmanh,

    Mình đã dùng mà thấy ổn rồi, hiện tượng "re" lúc bị lúc không nên cũng ko rõ như nào :D

     

    Tính năng Lib-no bạn có thể thêm cho nó tự nhận dữ liệu *.dat theo folder chỉ định được không? Nghĩa là khi bấm vào Mầu đỏ lần đầu thì nó sẽ yêu cầu đưa thư mục lưu trữ các Lib-no (lưu đường dẫn để lần sau vào không yêu cầu nữa), rồi nó tự động cập nhật các tên file.dat thành các Lib-no theo thứ tự.

     

    Việc xóa Lib-no mới thêm vào như nào?

     

    Cái ô mầu xanh có tính năng gì thế Quocmanh?


  3. Thanks! Lsp đồ sộ quá!

     

     

    Với mỗi lần chỉ 1 dòng string thì chậm, nếu phân loại thành từng khối text để chèn cả cụm thì có phần nào an ủi. Và có thể phân loại Library... (ngoài ra prop của text được ghi nhớ khi chèn lần tiếp theo). Xây dựng thư viện 1 lần và dùng mãi mãi...

    myCbaf.jpg

     

    Bác QuocManh phát triển thêm phần Lib-No_0 đi, để có thể gom các ghi chú theo từng chủng loại. :)

    Thêm nữa là có thể làm sao để khỏi phải dùng lệnh "re" sau mỗi lần insert được không? hiện tại lisp đang không insert liên tục được.

    Thanks!


  4.  

    Command: ap
    APPLOAD CRT_KT_CH.fas successfully loaded.
     
     
    Command:
    :: Create TEXT from Library | © QuocManh04tt 2016 - www.CadViet.com ::
    :: Type "CRT" to Invoke ::
    Command:
    Command: CRT
    Lib-str10
     
    Error: bad argument type: streamp nil
    Command:
     
     
    Bác hôm nay khó ở ah, nó hiện lên cái bảng đó rồi out luôn :|

     

    Bác hôm nay khó ở ah, nó hiện lên cái bảng đó rồi out luôn :|

  5. Command: ap

    APPLOAD CRT_KT_CH.fas successfully loaded.

     

     

    Command:

    :: Create TEXT from Library | © QuocManh04tt 2016 - www.CadViet.com ::

    :: Type "CRT" to Invoke ::

    Command:

    Command: CRT

    Lib-str10

     

    Error: bad argument type: streamp nil

    Command:

     

     

    Bác hôm nay khó ở ah, nó hiện lên cái bảng đó rồi out luôn :|


  6.  

    @QuocManh04tt

     

    Command: AP
    APPLOAD CRT_KT_CH.fas successfully loaded.
    
    
    
    
    Command:
    :: Create TEXT from Library | © QuocManh04tt 2016 - www.CadViet.com ::
    :: Type "CRT" to Invoke ::
    Command:
    Command: CRT
    Lib-str10
    
    
    Error: bad argument type: streamp nil

    Bị lỗi luôn đó bác, test với cad 2017

     

    Bị lỗi luôn đó bác, test với cad 2012, 2017


  7. @QuocManh04tt

     

    Command: AP
    APPLOAD CRT_KT_CH.fas successfully loaded.
    
    
    
    
    Command:
    :: Create TEXT from Library | © QuocManh04tt 2016 - www.CadViet.com ::
    :: Type "CRT" to Invoke ::
    Command:
    Command: CRT
    Lib-str10
    
    
    Error: bad argument type: streamp nil

    Bị lỗi luôn đó bác, test với cad 2017


  8. @Kieu Tan,conghoa

    https://drive.google.com/file/d/0B2LetfHDljPGMlFBcktDWU0ybms/view?usp=sharing

    Hướng dẫn:

    1. Lệnh CRT

    2. Các nút điều khiển trên hộp thoại có thể xem ở Clip ở trên.

    3. Sau khi chọn String và OK => trước khi chọn điểm đặt Text, có thể điều chỉnh Text như sau:

        a. Gõ phím S: để thay đổi chiều cao text của dòng đầu tiên, các dòng thứ 2 trở đi giữ nguyên theo giá trị trên hộp thoại.

        b. Nhấn giữ hoặc gõ phím: + , - để thay đổi khoảng cách giữa các dòng.

        c. Nhấn giữ hoặc gõ phím: > , < để thay đổi Width của text.

        d. Nhấn giữ hoặc gõ phím: [ , ] để thay đổi chiều cao text các dòng thứ 2 trở đi.

        e. Nhấn giữ hoặc gõ phím: R, O để xoay text.

    P/s: - Khi tạo thư viện String từ nút Get-str: Thì tất cả các string được chuyển sang mã UNICODE.

           - Khi xuất String->Text: Đối với các font .TTF (thuộc các bảng mã: TCVN3, VNI) thì lisp tự chuyển đổi => Có nghĩa: Sau khi chọn các string, dùng TextStyle nào cũng được (Uni, Tcvn, Vni <=> font: *.ttf).

    Bác chấp nhận cái request mail zùm nhé.

     

    Trân trọng!


  9. Hơi khác yêu cầu của bạn một chút, bạn lấy về dùng tạm cũng được

    http://www.cadviet.com/forum/topic/30524-can-le-text-mtext-can-le-doi-tuong/?p=123433

     

    Đến bao giờ bạn có quy luật đầy đủ cho việc thế nào gọi là sắp xếp thẳng hàng thì mình sẽ viết giúp bạn, không hề khó :)

    http://www.mediafire.com/file/1o99rqj2z5ufdjp/align+All_ala.lsp

     

    Đây là lisp align tất cả các đối tượng, nhưng nó đang bị hạn chế là chỉ chọn được từng đối tượng một, các bác giúp em thêm tính tăng chọn theo kiểu gom một lúc nhiều đối tượng nhé.

     

    Trân trọng!


  10.  

    Bạn thử coi có được không?

    (defun attfill (Lobjfind Lrep) (mapcar '(lambda(x y) (vlax-put x 'textstring y)) Lobjfind Lrep ))
    (defun Tue-geom-divpt (p1 p2 k) (polar p1 (angle p1 p2) (* (distance p1 p2) k)))
    (defun c:ttt(/ i  tto ename lst-length ss ename lst-re kq ls-kq ttu)
    (setq tto (getstring t "\nNhap tien to :")) (setq ttu (getint "\nThu tu :") ttu0 ttu)
      (while (setq ename (car (entsel "Chon Line :")))
       (if ename (progn
           (setq L-length (vlax-curve-getDistAtPoint ename (vlax-curve-getEndPoint ename)))
        (if (null (member L-length lst-length))
            (setq kq (strcat tto (if (< ttu 10) (strcat "0" (itoa ttu)) (itoa ttu)))
              lst-length (append lst-length (list L-length)) ttu (1+ ttu))
            (setq vitri (VL-POSITION L-length lst-length)
              kq (strcat tto (if (< (+ ttu0 vitri) 10) (strcat "0" (itoa (+ ttu0 vitri))) (itoa (+ ttu0 vitri))))
            )
        )  
            (attfill (vlax-invoke (vla-InsertBlock (vla-get-modelspace (vla-get-ActiveDocument (vlax-get-acad-object)))
             (vlax-3d-point (Tue-geom-divpt (vlax-curve-getstartPoint ename) (vlax-curve-getEndPoint ename) 0.5))
            "BlockKH" 1 1 1 0) 'getattributes)
             (list "GOC" (rtos L-length 2 0) kq)
        )
       ))
      )
    (princ)
    )
    

    Vẫn không được bác ạ, chọn sai là kết thúc luôn


  11.  

    Ý bạn như vầy:

    (defun attfill (Lobjfind Lrep) (mapcar '(lambda(x y) (vlax-put x 'textstring y)) Lobjfind Lrep ))
    (defun Tue-geom-divpt (p1 p2 k) (polar p1 (angle p1 p2) (* (distance p1 p2) k)))
    (defun c:ttt(/ i  tto ename lst-length ss ename lst-re kq ls-kq ttu)
    (setq tto (getstring t "\nNhap tien to :")) (setq ttu (getint "\nThu tu :") ttu0 ttu)
      (while (setq ename (car (entsel "Chon Line :")))
           (setq L-length (vlax-curve-getDistAtPoint ename (vlax-curve-getEndPoint ename)))
        (if (null (member L-length lst-length))
            (setq kq (strcat tto (if (< ttu 10) (strcat "0" (itoa ttu)) (itoa ttu)))
              lst-length (append lst-length (list L-length)) ttu (1+ ttu))
            (setq vitri (VL-POSITION L-length lst-length)
              kq (strcat tto (if (< (+ ttu0 vitri) 10) (strcat "0" (itoa (+ ttu0 vitri))) (itoa (+ ttu0 vitri))))
            )
        )  
            (attfill (vlax-invoke (vla-InsertBlock (vla-get-modelspace (vla-get-ActiveDocument (vlax-get-acad-object)))
             (vlax-3d-point (Tue-geom-divpt (vlax-curve-getstartPoint ename) (vlax-curve-getEndPoint ename) 0.5))
            "BlockKH" 1 1 1 0) 'getattributes)
             (list "GOC" (rtos L-length 2 0) kq)
        )
      )
    (princ)
    )
    

     

    Bác Tue_NV chỉnh giúp em phần này với:

     

    - Khi chọn line mà kích trượt ko vào line mà ra bên ngoài là nó kết thúc lệnh luôn, bác chỉnh giúp em là kết thúc lệnh khi mình ấn ESC với. Để nếu có chọn trượt thì vẫn có thể chọn tiếp.

     

    Trân trọng!

    • Vote tăng 1
×