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

Xuân Lộc

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

    21
  • Đã tham gia

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

  • Ngày trúng

    1

Bài đăng được đăng bởi Xuân Lộc


  1. 21 giờ trước, Duong Nhat Duy đã nói:

    Bạn hỏi cụ thể hơn được không ?

    1. Tolerance là gì ?

    2. Text trong Table thì ok mình sẽ nghiên cứu bổ sung

    3. Gộp lisp là như thế nào ?

    4. Lỗi hàm con là như thế nào ?

    Bạn hỏi như 1 coder chuyên nghiệp vậy, mình chỉ là thằng code dạo nghiệp dư nên không thể hiểu được !

    1. Tolerance là cái được tạo bằng lệnh TOL (TOLERANCE)

    2. Bảng Table

    3. Em dán 2 lisp vào 1 file .txt rồi đổi đuôi .lsp

    4. Khi thực hiện 1 lệnh của lisp đã gộp nó báo lỗi, em nghĩ do trùng hàm con của 2 lisp trên

     

    image.thumb.png.3043dd6db2e0e990f739007cfafbaf4a.png


  2. Vào lúc 28/3/2024 tại 10:23, tannguyen291 đã nói:

    bác test chưa. Em nhìn cái txt nó khác lắm. Có crack được k ạ

    https://we. tl/t-Q9m2Ur10wN

    chưa test ai cần sử dụng máy ảo kiểm tra. Nhưng trên 4rum xác nhận chạy đc. dùng cái này nhé, ổn định. Nhưng khuyên bác nếu đang dùng fonst tcvn3 hay vni thì ko lên cài bản 2025 do bị lỗi fonts. nên đợi bản 2025.1 xem thế nào

    image.png.e8e27560a3688851d8e3c861f65142e8.png

    • Like 1

  3. 57 phút trước, Duong Nhat Duy đã nói:

    Lisp đã có option nhập Lý trình + thêm rồi bạn (chỉ cộng vào Text, lý trình thực tế không ảnh hưởng)

    Hay ý bạn đang nói khi muốn insert text lý trình ví dụ Km20+150 nhưng lại lười nhập 20150 mà chỉ muốn nhập 150 ?

    Không ạ, anh hiểu nhầm ý em rồi.Vd: khi em dùng lệnh ME2, khi thực hiện lệnh nó hỏi chọn điểm đầu tiên để inset block tại vị trí điểm đầu tiên đó, em muốn nó cách điểm đầu tiên ấy 1 khoản cho trước. vì em áp vào đề bài vẽ tường rào, chèn cột tường rào thì cách 20m có 1 khe lún rộng 50mm


  4. 1 giờ} trướ}c, tannguyen291 đã nói:

    Sửa lisp của lee mac là cái gì đó rất mệt. Bạn nên đặt tên thống nhất số phía sau thì oke hơn. ví dụ thay vì S1 thì đặt là S01

    tuy nhiên muốn sửa lisp thì cũng có thể nhưng nó sẽ không hoạt động ổn định với những String quá đặc biệt

    tìm dòng 180 có đoạn (function (lambda ( a b ) (< (car a) (car b))))

    thay bằng 

    (function

      (lambda ( a b / a1 a2 b1 b2)

        (setq

          a1 (vl-string-right-trim "0123456789" a)

          a2 (atoi (substr a (1+ (strlen a1))))

          b1 (vl-string-right-trim "0123456789" b)

          b2 (atoi (substr b (1+ (strlen b1))))

        )

        (if (= a1 b1) (< a2 b2) (< a1 b1))

      )

    )

    (defun c:tCount

       ( /

        *error*
        _StartUndo
        _EndUndo
        _Assoc++
        _SumAttributes
        _GetTextString
        _ApplyFooToSelSet

        acdoc
        acspc
        alist
        data
        pt

      )

    ;;------------------------------------------------------------;;
      
      (defun *error* ( msg )
        (if acdoc (_EndUndo acdoc))
        (if (not (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*"))
          (princ (strcat "\n** Error: " msg " **"))
        )
        (princ)
      )

    ;;------------------------------------------------------------;;

      (defun _StartUndo ( doc ) (_EndUndo doc)
        (vla-StartUndoMark doc)
      )
      
    ;;------------------------------------------------------------;;

      (defun _EndUndo ( doc )
        (if (= 8 (logand 8 (getvar 'UNDOCTL)))
          (vla-EndUndoMark doc)
        )
      )

    ;;------------------------------------------------------------;;

      (defun _Assoc++ ( key alist )
        (
          (lambda ( pair )
            (if pair
              (subst (list key (1+ (cadr pair))) pair alist)
              (cons  (list key 1) alist)
            )
          )
          (assoc key alist)
        )
      )

    ;;------------------------------------------------------------;;

      (defun _SumAttributes ( entity alist )
        (while
          (not
            (eq "SEQEND"
              (cdr
                (assoc 0
                  (entget
                    (setq entity (entnext entity))
                  )
                )
              )
            )
          )
          (setq alist (_Assoc++ (_GetTextString entity) alist))
        )
      )

    ;;------------------------------------------------------------;;
      
      (defun _GetTextString ( entity )    
        (
          (lambda ( string )
            (mapcar
              (function
                (lambda ( pair )
                  (if (member (car pair) '(1 3))
                    (setq string (strcat string (cdr pair)))
                  )
                )
              )
              (entget entity)
            )
            string
          )
          ""
        )
      )

    ;;------------------------------------------------------------;;

      (defun _ApplyFooToSelSet ( foo ss / i )
        (if ss (repeat (setq i (sslength ss)) (foo (ssname ss (setq i (1- i))))))
      )

    ;;------------------------------------------------------------;;

      (setq acdoc (vla-get-activedocument (vlax-get-acad-object))
            acspc (vlax-get-property acdoc (if (= 1 (getvar 'CVPORT)) 'Paperspace 'Modelspace))
      )
      (cond
        ( (= 4 (logand 4 (cdr (assoc 70 (tblsearch "LAYER" (getvar 'CLAYER))))))
          (princ "\nCurrent Layer Locked.")
        )
        ( (not (vlax-method-applicable-p acspc 'AddTable))
          (princ "\nTable Object not Available in this version.")
        )
        ( (and
            (setq data
              (_ApplyFooToSelSet
                (lambda ( entity / typ )
                  (setq alist
                    (cond
                      ( (eq "INSERT" (setq typ (cdr (assoc 0 (entget entity)))))
                        (_SumAttributes entity alist)
                      )
                      ( (eq "MULTILEADER" typ)
                        (_Assoc++ (cdr (assoc 304 (entget entity))) alist)
                      )
                      ( (wcmatch typ "*DIMENSION")
                        (_Assoc++ (cdr (assoc 1 (entget entity))) alist)
                      )
                      ( (_Assoc++ (_GetTextString entity) alist) )
                    )
                  )
                )
                (ssget
                 '(
                    (-4 . "<OR")
                      (0 . "TEXT,MTEXT,MULTILEADER")
                      (-4 . "<AND")
                        (0 . "INSERT")
                        (66 . 1)
                      (-4 . "AND>")
                      (-4 . "<AND")
                        (0 . "*DIMENSION")
                        (1 . "*?*")
                      (-4 . "AND>")
                    (-4 . "OR>")
                  )
                )
              )
            )
            (setq pt (getpoint "\nSpecify Point for Table: "))
          )
          (_StartUndo acdoc)
          (LM:AddTable acspc (trans pt 1 0) "String Count"
            (cons (list "String" "Instances")
              (vl-sort
                (mapcar
                  (function

      (lambda ( a b / a1 a2 b1 b2)

        (setq

          a1 (vl-string-right-trim "0123456789" a)

          a2 (atoi (substr a (1+ (strlen a1))))

          b1 (vl-string-right-trim "0123456789" b)

          b2 (atoi (substr b (1+ (strlen b1))))

        )

        (if (= a1 b1) (< a2 b2) (< a1 b1))

      )

    )
              )            
            )
          )
          (_EndUndo acdoc)
        )
      )
      (princ)
    )

    ;;---------------------=={ Add Table }==----------------------;;
    ;;                                                            ;;
    ;;  Creates a VLA Table Object at the specified point,        ;;
    ;;  populated with title and data                             ;;
    ;;------------------------------------------------------------;;
    ;;  Author: Lee Mac, Copyright © 2011 - www.lee-mac.com       ;;
    ;;------------------------------------------------------------;;
    ;;  Arguments:                                                ;;
    ;;  space - VLA Block Object                                  ;;
    ;;  pt    - Insertion Point for Table                         ;;
    ;;  title - Table title                                       ;;
    ;;  data  - List of data to populate the table                ;;
    ;;------------------------------------------------------------;;
    ;;  Returns:  VLA Table Object                                ;;
    ;;------------------------------------------------------------;;

    (defun LM:AddTable ( space pt title data / _isAnnotative textheight style )

      (defun _isAnnotative ( style / object annotx )
        (and
          (setq object (tblobjname "STYLE" style))
          (setq annotx (cadr (assoc -3 (entget object '("AcadAnnotative")))))
          (= 1 (cdr (assoc 1070 (reverse annotx))))
        )
      )

      (
        (lambda ( table ) (vla-put-StyleName table (getvar 'CTABLESTYLE)) (vla-SetText table 0 0 title)
          (
            (lambda ( row )
              (mapcar
                (function
                  (lambda ( rowitem ) (setq row (1+ row))
                    (
                      (lambda ( column )
                        (mapcar
                          (function
                            (lambda ( item )
                              (vla-SetText table row (setq column (1+ column)) item)
                            )
                          )
                          rowitem
                        )
                      )
                      -1
                    )
                  )
                )
                data
              )
            )
            0
          )
          table
        )
        (
          (lambda ( textheight )
            (vla-AddTable space (vlax-3D-point pt) (1+ (length data)) (length (car data)) textheight
              (* 0.8 textheight
                (apply 'max
                  (cons (/ (strlen title) (length (car data)))
                    (mapcar 'strlen (apply 'append data))
                  )
                )
              )
            )
          )
          (* 2.
            (/
              (setq textheight
                (vla-gettextheight
                  (setq style
                    (vla-item
                      (vla-item
                        (vla-get-dictionaries (vla-get-document space)) "ACAD_TABLESTYLE"
                      )
                      (getvar 'CTABLESTYLE)
                    )
                  )
                  acdatarow
                )
              )
              (if (_isAnnotative (vla-gettextstyle style acdatarow))
                (cond ( (getvar 'CANNOSCALEVALUE) ) ( 1.0 ))
                1.0
              )
            )
          )
        )
      )
    )

    ;;------------------------------------------------------------;;
    ;;                         End of File                        ;;
    ;;------------------------------------------------------------;;

    em thay nhưng lisp ko hoạt động anh ạ, nếu ko đc anh giúp em cho cái chọn text chữ trước khi chèn cũng đc ạ, tại cứ phải scan chữ lên mà ko phải lúc nào cũng cùng 1 cỡ chữ


  5. 5 giờ trước, NTHAHT đã nói:

    nthaht_autodimxy Lisp này mình đã gỡ các lệnh Dx, Dy, Dxy. Nó chỉ còn hàm: nthaht_autodimxy

    Bạn muốn sửa tên lệnh thì làm như sau: tạo 1 file .lsp mới copy 3 dòng dưới vào sau đó đổi tên lệnh (hoặc copy vào 1 lisp nào đó).
    Load đồng thời lisp các lisp là được.

     

    (defun c:DX () (nthaht_autodimxy "X"))
    (defun c:DY () (nthaht_autodimxy "Y"))
    (defun c:DXY () (nthaht_autodimxy "XY"))

     

    Tiện cho em hỏi anh cho lisp dim được các đối tượng trong block không anh


  6. 18 giờ trước, NTH2024 đã nói:

    Giới thiệu với các bạn Tool in bản vẽ Autocad hàng loạt ATP Plotter, bản cập nhật ATP Plotter 4.2.

    Tính năng:

    Hỗ trợ chọn cùng lúc nhiều khung in mẫu là Block và Polyline kết hợp.

    Hỗ trợ nhiều chế độ in theo hàng hoặc cột từ trên xuống dưới, dưới lên trên, trái sang phải, phải sang trái...

    Hỗ trợ in cả bản vẽ hoặc nhiều file bản vẽ Autocad với chỉ 1 click chuột.

    Tự động load ATP Plotter khi khởi động Autocad, lưu cấu hình in, khung mẫu cho các lần in sau...

    Phiên bản pro có chi phí kích hoạt chỉ 90k/PC.

    Download bản free: ATP Plotter free

    ********************************************************************************************************************************************************

    Mình miễn phí kích hoạt ATP Plotter 4.2 pro cho ACE Cadviet từ nay cho đến hết T7 (Hết ngày 3/2/2024). Các bạn tải bản free về lấy mã đăng ký post lên đây để mình gửi bản pro kèm file kích hoạt nhé. Chúc ACE Cadviet năm mới phát triển.

    ********************************************************************************************************************************************************

     

    Cho em xin key ạ. Thanks anh đã cho cộng đồng CADVIET xài free của anh C931-2386-E41E-79F8-86A0 

     


  7. 1 giờ trước, thanhduan2407 đã nói:

    Bạn có thể Share cho mng dùng để thay đổi thói quen nhé!

    Be Vietnam Pro  gõ cụm này lên google nó ở top đầu luôn ạ, còn link thì đây anh:

    https:// fonts . google . com / specimen / Be+Vietnam+Pro

    anh chịu khó bỏ dấu cách, dùng loại thin in ra ko khác gì fonts mảnh vntimeh.shx luôn ạ

    • Like 1

  8. Vào lúc 19/11/2023 tại 01:02, cuongtk2 đã nói:

    Google fonts nhé. Font.google.com . Có mấy chục font unicode full tiếng Việt. Trong mỗi font lại có 7 cấp độ mảnh đến đậm . Từ thin, medium thin, light, medium, demi bold, bold , black. Web có dòng để test font.

    thanks anh nhiều. em đã tìm được fonts: Be Vietnam Pro khá đẹp. hỗ trợ thin 50 đến thin 900


  9. 8 phút trước, monavamonava đã nói:

    Bản vẽ kỹ thuật thì phải xài font kỹ thuật chứ bạn. VNI, ABC, VIETWAREX, SHX... có nhiều mẫu kỹ thuật đẹp của các tiền bối tạo ra nên mình cứ xài thôi.
    UNICODE thì thấy xài office gì thôi. TOHAMA, ARIAL... gõ lệnh ST rồi tìm font thấy đẹp, ưa nhìn theo ý mình thôi bạn à.

    Ôi bạn ơi. Ngày xưa các cụ dùng win xp, win 7 ko có fonts unicode lên dùng vậy thôi. Sau này nhà nước ra quy chuẩn yêu cầu thống nhất dùng fonts time new roman. Do khi in ra ko ai soi sét lên kệ. Bây giờ win 10, win 11 phổ biến. Revit, sketchup, 3dsmax phổ cập hơn thì sao dùng được mấy fonts cũ của AutoCad ấy nữa. Giờ mình đang tìm fonts unicode để thống nhất toàn bộ phần mềm về 1 loại luôn

×