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

congvan

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

    16
  • Đã tham gia

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

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


  1. NHỜ MỌI CÁC ANH CHỊ HIỆU CHỈNH LISP GIÚP

    Mình có tải 1 lisp của anh LE-MAC về cập nhật block ATT trong Model và layout từ file excel.

    Hiện lisp đang sử dụng đính kèm với file định đạng là .CSV

    >>> Nhờ các anh chị hiểu chỉnh giúp lisp sử dụng đính kèm với file định đạng là .XLS  VÀ SỬ DỤNG ĐƯỢC TIẾNG VIỆT VỚI FONT  ARIAL

    File lisp đính kèm bên dưới ạ

    Cảm ơn.

     

    UpdateTitleblockV1-9 danh so tt ban ve ben layout voi excel.lsp


  2. Hiện em có tìm tòi được 2 lisp bên dưới để vẽ rẽ nhánh, giảm ống gió.

    Nhưng hiện mới thực hiện ở line, khi cho Pline thì không thực hiện được.

    nhờ các anh hỗ trợ cập nhật thêm .

    Cảm ơn

    3. 2019-11-25 Autolisp Ve re nhanh ong gio (RN1_RN2).LSP

    6. 2019-11-25 Autolisp Ve giam tang ong vuong (Taper)-giam vuong tron (S2R)-tang vuong tron (R2S).LSP


  3. Cảm ơn anh Đoàn Nguyễn Văn

    Mình đã sửa và chạy rất tốt


    (defun c:T2T ( / pt1 numrows numcolumns rowheight colwidth ent doc curspace obj objtable col) 
    (vl-load-com)
    (setq doc (vla-get-activedocument (vlax-get-acad-object)))
    (setq curspace (vla-get-modelspace doc))
    ; now do table 
    (setq pt1 (vlax-3d-point (getpoint "\nChon diem cho phia tren ben trai cua bang:  ")))
    (setq numcolumns (getint "Co bao nhieu cot:"))
    (setq txtsz (getreal "Chieu cao text:"))

    (setq numrows 2)
    (setq rowheight (* 1.5 txtsz))
    (setq colwidth (* 10 txtsz))
    (setq objtable (vla-addtable curspace pt1 numrows numcolumns rowheight colwidth))
    (vla-settext objtable 0 0 "TABLE")
    (setq x 1)
    (repeat numcolumns
        (vla-settext objtable 1 (- x 1) (strcat "COLUMN " (rtos x 2 0)))
        (setq x (+ x 1))
    )

    (setq objtable (vlax-ename->vla-object (entlast)))
    (vla-InsertRows objtable numrows txtsz 1)
    (setq col 0)
    (while (setq ent  (entsel "Chon Text:"))
        (setq obj (vlax-ename->vla-object (car ent)))
        (if (wcmatch (vla-get-objectname obj) "*Text")
            (progn
                (vla-settext objtable numrows col  (cdr (assoc 1 (entget (car ent)))))
                (setq col (+ col 1))
                (if (= col numcolumns)
                    (progn
                    (setq col 0)
                    (setq numrows (+ numrows 1))
                    (vla-InsertRows objtable numrows (* txtsz 1.5) 1)
                    )
                )
            )
        )
    )
    (vla-SetTextHeight objtable (+ acDataRow acHeaderRow acTitleRow) txtsz)
    (vla-SetAlignment objtable acDataRow acMiddleCenter)
    (vlax-release-object objtable)
    (princ)
    )

    (c:T2T)


  4. Mình có 1 autolisp tạo khung cho text:

    Nhưng khi sử dụng cho text là tiếng việt thì bị lỗi font, và không sử dung cho Mtext được.

    Nhờ mọi người kiểm tra và sửa giúp mình.

    Cảm ơn mọi người đã xem qua và hỗ trợ

    Nội dung Autolisp:

     


    (defun c:T2T ( / pt1 numrows numcolumns rowheight colwidth ent doc curspace obj objtable col) 
    (vl-load-com)
    (setq doc (vla-get-activedocument (vlax-get-acad-object)))
    (setq curspace (vla-get-modelspace doc))
    ; now do table 
    (setq pt1 (vlax-3d-point (getpoint "\nChon diem cho phia tren ben trai cua bang:  ")))
    (setq numcolumns (getint "Co bao nhieu cot:"))
    (setq txtsz (getreal "Chieu cao text:"))

    (setq numrows 2)
    (setq rowheight (* 1.5 txtsz))
    (setq colwidth (* 10 txtsz))
    (setq objtable (vla-addtable curspace pt1 numrows numcolumns rowheight colwidth))
    (vla-settext objtable 0 0 "TABLE")
    (setq x 1)
    (repeat numcolumns
        (vla-settext objtable 1 (- x 1) (strcat "COLUMN " (rtos x 2 0)))
        (setq x (+ x 1))
    )

    (setq objtable (vlax-ename->vla-object (entlast)))
    (vla-InsertRows objtable numrows txtsz 1)
    (setq col 0)
    (while (setq ent  (entsel "Chon Text:"))
        (setq obj (vlax-ename->vla-object (car ent)))
        (if (= (vla-get-objectname obj) "AcDbText")
            (progn
                (vla-settext objtable numrows col  (vla-get-textstring obj))
                (setq col (+ col 1))
                (if (= col numcolumns)
                    (progn
                    (setq col 0)
                    (setq numrows (+ numrows 1))
                    (vla-InsertRows objtable numrows (* txtsz 1.5) 1)
                    )
                )
            )
        )
    )
    (vla-SetTextHeight objtable (+ acDataRow acHeaderRow acTitleRow) txtsz)
    (vla-SetAlignment objtable acDataRow acMiddleCenter)
    (vlax-release-object objtable)
    (princ)
    )

    (c:T2T)

     

    Tao khung cho text (T2T).lsp


  5. Rất huy vọng mọi người giúp phát triển lisp theo bài đăng liên kết ở trên phù hợp với yêu cầu ( hiện tại dùng font vni xuất ra rồi xử lý cập nhật vào cad theo như anh ngokiet hướng dẫn đã xử lý được, nhưng em phải làm thêm bước xử lý lại block att sau khi cập nhật thành font unicode để phù hợp với bản vẽ của cty, em đang tìm phương án trong diễn đàn). Mong các anh hỗ trợ lisp để tiện dụng hơn ạ. Cảm ơn mọi người đã quan tâm!


  6. Vào lúc Ngày 08 tháng 8 năm 2019 tại 21:40, ngokiet đã nói:

     Nếu chỉ lỗi font tiếng việt unicode thì bạn có thể đổi qua vni rồi từ cad đổi ngược lại.

    Dạ cảm ơn. Mình đã thử biến att với font Vni-time xuất ra file .txt, sửa nội dung bằng excel, sau đó sử dụng công cụ chuyển mã của bộ gõ tiếng việt, rồi dán nội dung vào file .txt. Cập nhật vào cad bằng attin. Kết quả không bị lỗi font tiếng việt. Em đang tìm lisp chuyển mã vni sang unicode cho block att để phù hợp với font quy định của cty. 


  7. Vào lúc 22/4/2017 tại 23:07, quocmanh04tt đã nói:

    - Từ file từ điển là Excel (nội dung nằm ở sheet1, cột A: tiếng Việt, cột B: tiếng khác thì lệnh chuyển đổi là: TTA =>sang tiếng khác, chuyển ngược lại là TTV => Sang tiếng Việt).

    - Nếu cột A là tiếng khác, B là tiếng Việt thì lệnh TTV, TTA bị hoán đổi.

    - Sau khi có file Excel, dùng lệnh TAOTUDIEN để tạo từ điển cho CAD, chỉ cần tạo 1 lần cho đến thay đổi hoặc bổ sung...

    Đây là file chạy: https://drive.google.com/file/d/0B2LetfHDljPGc3BmaDlJX29lYTA/view?usp=sharing

     

    P/s: - Bảng mã phải tương ứng (Có nghĩa: Cad mã UNICODE thì bên Excel cũng UNICODE...)

           - Chuyển theo kiểu String by String (bởi vậy: CAD& Excel=>Chữ hoa thì cùng chữ hoa, thường thì cùng thường, gạch chân thì cùng gạch chân).

    Chào anh quocmanh04tt:

    Nhờ anh update giúp như yêu cầu bên dưới

    -Chọn nội các text cần chuyển ( hiện tại lisp tự động chọn tất cả)

    -Em muốn giữ lại nội dung tiếng việt/tiếng anh ( hiện tại lisp đang thay thế luôn)

    -Tạo thêm dòng text  tiếng anh/tiếng việt  lisp đã dịch ở dưới text gốc ạ.

    Cảm ơn!

    image.png.005a009bcaf3efea37cb83e8394f8a2c.png


  8. Em tạo ra block có biến ATT để phục vụ công việc nhập thông số ( nhập thủ công rất lâu do 1 hệ thống có rất nhiều phòng và nhiều thông số)

    -Em dùng lệnh ATTOUT xuất ra file .txt để thay đổi nội dung ( Sửa trên excel xong lưu lại với dạng .txt)

    -Dùng lệnh ATTIN lấy nội dung file .txt đã sửa để thay đổi nội dung BLOCK ATT trong cad ( nhưng bị lỗi font ở vị trí tên phòng Tiếng Việt)

    -Nhờ diễn đàn hướng dẫn cách để khắc phục giúp em.

    -Hoặc nhờ diễn đàn giúp em cái lisp sử dụng với thư viện chưa block att hoặc block att.

    +Gõ lệnh "SDNLG" quét chọn nhiều số thứ tự (STT)

    +Chọn file EXCEL với nội dung có trước như mẫu bên dưới .

    +Cad tự động cập nhật các thông sô ROOM-NAME-VN,ROOM-NAME-EN, ROOM-CODE,TEMP, HUMI.....

    Cảm ơn các anh đã quan tâm và hỗ trợ file em đính kèm bên dưới ạ

    image.png.1f05ea593fbb7fd8e707d4e12257d359.png

     

     

    SDNLG.rar

     


  9. image.thumb.png.676f1fc520a8009f0a3368acf36114ed.png

    Nhờ các anh trong diễn đàn viết giúp em lisp 

    Theo bản vẽ đính kèm, em có STT-NAME-KW-MCCB-AMPE-KA...... VÀ BẢNG DỮ LIỆU NHƯ HÌNH ĐÍNH KÈM.

    Nhờ các anh viết giúp em: Khi gõ lệnh chọn đối tượng là STT để cập nhật giá trị trong bảng dữ liệu vào bản vẽ cad theo vị trí trong bản vẽ cad, trong quá trình cập nhật lần sau sẽ xoá đi nội dung lần trước đó. ( Em đã có tìm trong diễn đàn, có 1 lisp cũng có yêu cầu tương tự như em, nhưng nội dung của em bao gồm số, text và ký hiệu, góc text 270 độ nên em không ứng dụng được). Mong các anh hỗ trợ giúp .

    Đây là lisp em tham khảo được

    ;; free lisp from cadviet.com
    ;;; this lisp was downloaded from https://www.cadviet.com/forum/topic/69623-yêu-cầu-lisp-up-nội-dung-từ-excel-vào-cad/
    ;=====LISP UPDATE SO LIEU TU FILE TXT VAO CAD - REV1==========
    ;================KANGKUNG 25/03/2013==========================
    (defun C:KK()
      (command "UNDO" "BE")
      (setq taphop(ssget '((0 . "TEXT"))) os(getvar "OSMODE"))
      (if (not Path) (setq Path(getvar "dwgprefix")))
      (setq file(getfiled "Select File:" Path "txt" 2) Path file index 0 TEXT_LIST (list))
      (while (< index (sslength taphop))
        (setq TEXT (entget (ssname taphop index)))
        (if (/= (read (cdr(assoc 1 TEXT))) (atof (cdr(assoc 1 TEXT))))
          (progn
        (setq String(cdr(assoc 1 TEXT)))
        (if (= (+ (cdr(assoc 72 TEXT)) (cdr(assoc 73 TEXT))) 0)
          (setq InsertPoint(cdr(assoc 10 TEXT)))
          (setq InsertPoint(cdr(assoc 11 TEXT))))
        (setq TEXT_LIST (append (list (list String InsertPoint)) TEXT_LIST))))
        (setq index (1+ index)))
      (setq file_in(open file "R") lst_solieu(list))
      (while(setq txt(read-line file_in))
        (if (/= txt nil) (setq lst (read (strcat "(" txt ")"  ))))
        (foreach dt TEXT_LIST
          (if (= (car dt) (vl-princ-to-string(car lst)))
        (progn
          (setq pt1(cadr dt) pt2(list (- (car pt1) 1.0757) (- (cadr pt1) 1.3762)) pt3(list (+ (car pt1) 1.2744) (- (cadr pt1) 1.3762)) pt4(list (car pt1) (- (cadr pt1) 2.7500)))
          (entmakex (list '(0 . "TEXT") (cons 8 "Main_DTOV") (cons 62 3) (cons 10 pt1) (cons 40 0.5) (cons 1 (vl-princ-to-string(car lst))) (cons 72 1) (cons 11 pt1) (cons 73 2)))
          (entmakex (list '(0 . "TEXT") (cons 8 "Main_CDTC") (cons 62 130) (cons 10 pt2) (cons 40 0.5) (cons 1 (rtos (cadr lst) 2 2)) (cons 72 1) (cons 11 pt2) (cons 73 2)))
          (entmakex (list '(0 . "TEXT") (cons 8 "Main_DTOV") (cons 62 2) (cons 10 pt3) (cons 40 0.5) (cons 1 (rtos (caddr lst) 2 2)) (cons 72 1) (cons 11 pt3) (cons 73 2)))
          (entmakex (list '(0 . "TEXT") (cons 8 "Main_KLOV") (cons 62 31) (cons 10 pt4) (cons 40 0.5) (cons 1 (rtos (cadddr lst) 2 2)) (cons 72 1) (cons 11 pt4) (cons 73 2)))
          )
        )
          )
        )
      (COMMAND "ERASE" TAPHOP "")
      (close file_in)
      (command "UNDO" "END")
      )
    (princ "\n                Written By KangKung - 25/03/2013\n")
    (princ "\n                  Nhap KK de chay chuong trinh\n")

     

    20190725 test.dwg

    20190725 TEST.txt

×