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

vinh06102vt

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

    22
  • Đã tham gia

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

  • Ngày trúng

    1

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


  1. Vào lúc 7/12/2018 tại 08:22, hdb đã nói:
    Vào lúc 7/12/2018 tại 08:22, hdb đã nói:

    Chào cả nhà. tình hình là em thường xuyên nhận được các bản vẽ có chữ TQ nhưng các chữ toàn hiện thành đấu hỏi ????. Nhưng khi copy các chữ đó dán ra nơi khác thì vẫn hiện được nội dung. Nhờ bác nào cao tay chỉ giùm cách cho nó hiện thị nhanh chóng. Không cứ ngồi copy từng  chữ dán ra nơi khác thì quá quá lâu. Xin cảm ơn.

    image.thumb.png.c3012fb6448ab36cb926927d30baa7bf.png

     

     

    có anh em nào biết cách trị cái bệnh này ko nhỉ ? mặc dù mình cũng có bản vẽ bị như vậy, mình cũng đã tìm font chữ cho nó, bỏ vào mục font chữ của cad mà nó vẫn bị lỗi dấu ?, mà edit text rồi copy nội dung bên trong, rồi thoát lệnh, rồi paste vào màn hình cad thì nó ra chữ mtext lại hiện ok, hoặc là dung lênh Txt2Mtxt chuyển nó về Mtext thì lại hiển thị được là sao nhỉ ?
    Có anh em nào fix được lỗi trên thì làm ơn chia sẽ với ạ.


  2. Vào lúc 8/4/2020 tại 20:59, thiep đã nói:

    Tại bảng Properties, khi người dùng thay đổi thuộc tính từ TextOverwrite sang Measurement hoặc ngược lại của textDim thì biểu thức field đã gán cho text có sẵn sẽ không update được vì nó chỉ update giá trị của thuộc tính đã định sẵn trong biểu thức field, không update việc thay đổi thuộc tính.

    Lisp sau Thiep đã update, cho trường này. Tuy nhiên, sau khi thay đổi thuộc tính từ TextOverwrite sang Measurement hoặc ngược lại, các bạn phải đánh lệnh RE1 thay cho lệnh RE để tái tạo tạo màn hình. Sau đó, trên màn hình các bạn chỉnh sửa giá trị textDim (TextOverwrite)  hoặc co giản dim (Measurement) thì vẫn dùng lệnh RE để update giá trị thuộc tính thay đổi.

    Chú ý: Lệnh Re1, chỉ hoạt động khi bản vẽ dùng lệnh fdt1 của lisp, khi đó giá trị biến trong lisp chưa bị mất đi. Còn khi người dùng tắt bản vẽ và mở lại, lệnh Re1 không thực hiện được nữa, khi đó phải tải lisp dưới đây và dùng lệnh fdt1 trở lại.

     

    • fdt1_fdt2_fdt3_fdt4_fdt5_re1.lsp
      lisp help
    •  
    
    ;;; LISP  FIELD SUM DIMENSIONS, TEXTs, MTEXTs, LENGTHs, AREAs, CIRCUMFERENCEs TO A TEXT
    ;;          by TrânThiêp 04/2020
    ;;		09188411230
    ;;=======================================================
    ;; command         fdt1 : field sum DIMENSIONS                        
    ;; command         fdt2 : field sum TEXTs, MTEXTs                     
    ;; command         fdt3 : field sum LENGTHs                           
    ;; command         fdt4 : field sum AREAs                             
    ;; command         fdt5 : field sum CIRCUMFERENCEs
    ;; command         re1 :  update field sum DIMENSIONs when change properti TextOverride dim to Measurement dim or reverse 
    ;;                                                       
    (defun DXF (code en) (cdr (assoc code (entget en))))
    (vl-load-com)
    (defun *error* (msg)
            (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
                (princ (strcat "\n** Error: " msg " **"))
            )
            (acet-sysvar-restore)
            (command "undo" "en")
            (princ)
        )
    ;;;===========================================================================1: sum DIMENSIONs =========
    (defun c:fdt1 (/ ss ent_T)
        (command "undo" "be")
        (acet-sysvar-set '("cmdecho" 0 "osmode" 0))
        (acet-ui-status "Select DIMENSIONs FOR GET SUM" "Prompt")
        (setq ss (ssget '((0 . "DIMENSION"))))
        (acet-ui-status)
        (while (OR (NOT (setq ent_T
                                 (car (entsel
                                          "\nPick a Text object for set sum dimensions"
                                      )
                                 )
                        )
                   )
                   (NOT (eq (cdr (assoc 0 (entget ent_T))) "TEXT"))
               )
            (prompt "\nPick not right TEXT object, please pick again")
        )
        (setq Obj_Text_thiep (vlax-ename->vla-object ent_T))
        (if (null (setq prec_thiep
                           (getint (acet-str-format
                                       "\nEnter number of decimal places: <%1> "
                                       (itoa (getvar "useri1"))
                                   )
                           )
                  )
            )
            (setq prec_thiep (getvar "useri1"))
        )
        (setvar "useri1" prec_thiep)
        (if ss
            (progn (mapcar '(lambda (x)
                                (setq Lobj_dim_thiep (CONS (vlax-ename->vla-object x)
                                                           Lobj_dim_thiep
                                                     )
                                )
                            )
                           (acet-ss-to-list ss)
                   )
                   (setq ID_Dim_lst_thiep (mapcar 'vla-get-objectid Lobj_dim_thiep))
                   (Setq field_lst
                            (mapcar
                                '(lambda (ob id)
                                     (if (distof (vla-get-TextOverride ob))
                                         (acet-str-format
                                             "%<\\AcObjProp Object(%<\\_ObjId %1>%).%2>%+"
                                             (itoa id)
                                             "TextOverride"
                                         )
                                         (acet-str-format
                                             "%<\\AcObjProp Object(%<\\_ObjId %1>%).%3 \\f \"%lu2%pr%2\">%+"
                                             (itoa id)
                                             (itoa prec_thiep)
                                             "Measurement"
                                         )
                                     )
                                 )
                                Lobj_dim_thiep
                                ID_Dim_lst_thiep
                            )
                   )
                   (setq strThiep (acet-str-format
                                      "%<\\AcExpr (%1) \\f \"%lu2%pr%2\">%"
                                      (vl-string-right-trim "+"
                                                            (apply 'strcat field_lst)
                                      )
                                      (itoa prec_thiep)
                                  )
                   )
                   (vla-put-TextString Obj_Text_thiep strThiep)
            ) ;_PROGN
        ) ;_IF
        (ACET-SYSVAR-RESTORE)
        (command "undo" "en")
        (PRINC str)
        (princ "\nOK")
    )
    ;;;===========================================================================2: sum TEXTs, MTEXTs NUMBER=========
    (defun c:fdt2 (/ ss ent_T Obj_Text str prec Lobj_text ID_text_lst field_lst)
        (command "undo" "be")
        (acet-sysvar-set '("cmdecho" 0 "osmode" 0))
        (acet-ui-status "Select:  TEXT, MTEXT NUMBER FOR GET SUM" "Prompt")
        (setq ss (ssget '((0 . "*TEXT"))))
        (acet-ui-status)
        (if ss
            (progn (while (OR (NOT (setq ent_T
                                            (car
                                                (entsel
                                                    "\nPick a Text object for set sum text number"
                                                )
                                            )
                                   )
                              )
                              (NOT (eq (cdr (assoc 0 (entget ent_T))) "TEXT"))
                          )
                       (prompt "\nPick not right TEXT object, please pick again")
                   )
                   (setq Obj_Text (vlax-ename->vla-object ent_T))
                   (if (null (setq
                                 prec (getint
                                          (acet-str-format
                                              "\nEnter number of decimal places: <%1> "
                                              (itoa (getvar "useri2"))
                                          )
                                      )
                             )
                       )
                       (setq prec (getvar "useri2"))
                   )
                   (setvar "useri2" prec)
                   (mapcar '(lambda (x)
                                (if (Numberp (atof (dxf 1 x)))
                                    (setq Lobj_text (CONS (vlax-ename->vla-object x)
                                                          Lobj_text
                                                    )
                                    )
                                )
                            )
                           (acet-ss-to-list ss)
                   )
                   (setq ID_text_lst (mapcar 'vla-get-objectid Lobj_text))
                   (setq field_lst
                            (mapcar
                                '(lambda (x)
                                     (acet-str-format
                                         "%<\\AcObjProp Object(%<\\_ObjId %1>%).TextString>% +"
                                         (itoa x)
                                     )
                                 )
                                ID_text_lst
                            )
                   )
                   (setq str (acet-str-format
                                 "%<\\AcExpr (%1)>%"
                                 (vl-string-right-trim "+" (apply 'strcat field_lst))
                             )
                   )
                   (dos_clipboard str)
                   (vla-put-TextString Obj_Text str)
            ) ;_PROGN
        ) ;_IF
        (ACET-SYSVAR-RESTORE)
        (command "undo" "en")
        (princ "\nOK")
        (PRINC)
    )
    ;;;===========================================================================3: LENGTHs=========
    (defun c:fdt3 (/ ss ent_T Obj_Text str prec Lobj_leng ID_leng_lst field_lst)
        (command "undo" "be")
        (acet-sysvar-set '("cmdecho" 0 "osmode" 0))
        (acet-ui-status "Select:  LINE, POLYLINE, for GET SUM LENGTH" "Prompt")
        (setq ss (ssget '((0 . "LINE,*POLYLINE"))))
        (acet-ui-status)
        (if ss
            (progn
                (while (OR (NOT (setq ent_T
                                         (car
                                             (entsel
                                                 "\nPick a Text object for set sum length value"
                                             )
                                         )
                                )
                           )
                           (NOT (eq (cdr (assoc 0 (entget ent_T))) "TEXT"))
                       )
                    (prompt "\nPick not right TEXT object, please pick again")
                )
                (setq Obj_Text (vlax-ename->vla-object ent_T))
                (if (null (setq
                              prec (getint
                                       (acet-str-format
                                           "\nEnter number of decimal places: <%1> "
                                           (itoa (getvar "useri3"))
                                       )
                                   )
                          )
                    )
                    (setq prec (getvar "useri3"))
                )
                (setvar "useri3" prec)
                (mapcar
                    '(lambda (x)
                         (if (vlax-property-available-p (vlax-ename->vla-object x)
                                                        'length
                             )
                             (setq Lobj_leng (CONS (vlax-ename->vla-object x)
                                                   Lobj_leng
                                             )
                             )
                         )
                     )
                    (acet-ss-to-list ss)
                )
                (setq ID_leng_lst (mapcar 'vla-get-objectid Lobj_leng))
                (setq field_lst
                         (mapcar
                             '(lambda (id)
                                  (acet-str-format
                                      "%<\\AcObjProp Object(%<\\_ObjId %1>%).Length \\f \"%lu2%pr%2\">%+"
                                      (itoa id)
                                      (itoa prec)
                                  )
                              )
                             ID_leng_lst
                         )
                )
                (setq str (acet-str-format
                              "%<\\AcExpr (%1) \\f \"%lu2%pr%2\">%"
                              (vl-string-right-trim "+" (apply 'strcat field_lst))
                              (itoa prec)
                          )
                )
                (vla-put-TextString Obj_Text str)
            ) ;_PROGN
        ) ;_IF
        (ACET-SYSVAR-RESTORE)
        (command "undo" "en")
        (princ "\nOK")
        (PRINC)
    )
    ;;;===========================================================================4: AREAs=========
    (defun c:fdt4 (/ ss ent_T Obj_Text Lobj_area ID_area_lst str prec field_lst)
        (command "undo" "be")
        (acet-sysvar-set '("cmdecho" 0 "osmode" 0))
        (acet-ui-status
            "Select: POLYLINE, HATCH, ARC, CIRCLE, REGION, ELLIPSE for GET SUM AREA"
            "Prompt"
        )
        (setq ss (ssget '((0 . "*POLYLINE,HATCH,ARC,CIRCLE,ELLIPSE,REGION"))))
        (acet-ui-status)
        (if ss
            (progn
                (mapcar
                    '(lambda (x)
                         (if (vlax-property-available-p (vlax-ename->vla-object x)
                                                        'area
                             )
                             (setq Lobj_area (CONS (vlax-ename->vla-object x)
                                                   Lobj_area
                                             )
                             )
                         )
                     )
                    (acet-ss-to-list ss)
                )
                (if (null (setq
                              prec (getint
                                       (acet-str-format
                                           "\nEnter number of decimal places: <%1> "
                                           (itoa (getvar "useri4"))
                                       )
                                   )
                          )
                    )
                    (setq prec (getvar "useri4"))
                )
                (setvar "useri4" prec)
                (setq ID_area_lst (mapcar 'vla-get-objectid Lobj_area))
                (setq field_lst
                         (mapcar
                             '(lambda (id)
                                  (acet-str-format
                                      "%<\\AcObjProp Object(%<\\_ObjId %1>%).Area \\f \"%lu2%pr%2\">%+"
                                      (itoa id)
                                      (itoa prec)
                                  )
                              )
                             ID_area_lst
                         )
                )
                (setq str (acet-str-format
                              "%<\\AcExpr (%1) \\f \"%lu2%pr%2\">%"
                              (vl-string-right-trim "+" (apply 'strcat field_lst))
                              (itoa prec)
                          )
                )
                (while (OR (NOT (setq ent_T
                                         (car
                                             (entsel
                                                 "\nPick a Text object for set sum area value"
                                             )
                                         )
                                )
                           )
                           (NOT (eq (cdr (assoc 0 (entget ent_T))) "TEXT"))
                       )
                    (prompt "\nPick not right TEXT object, please pick again")
                )
                (setq Obj_Text (vlax-ename->vla-object ent_T))
                (vla-put-TextString Obj_Text str)
            ) ;_PROGN
        ) ;_IF
        (ACET-SYSVAR-RESTORE)
        (command "undo" "en")
        (princ "\nOK")
        (PRINC)
    )
    ;;;==================================================================    5: CIRCUMFERENCEs: CHU VI VÒNG TRÒN
    (defun c:fdt5 (/ ss ent_T Obj_Text Lobj_CIR ID_CIR_lst str prec field_lst)
        (command "undo" "be")
        (acet-sysvar-set '("cmdecho" 0 "osmode" 0))
        (acet-ui-status "Select: CIRCLE for GET SUM CIRCUMFERENCE" "Prompt")
        (setq ss (ssget '((0 . "CIRCLE"))))
        (acet-ui-status)
        (while (OR (NOT (setq ent_T
                                 (car
                                     (entsel
                                         "\nPick a Text object for set sum circumference value"
                                     )
                                 )
                        )
                   )
                   (NOT (eq (cdr (assoc 0 (entget ent_T))) "TEXT"))
               )
            (prompt "\nPick not right TEXT object, please pick again")
        )
        (setq Obj_Text (vlax-ename->vla-object ent_T))
        (if ss
            (progn
                (mapcar
                    '(lambda (x)
                         (setq Lobj_CIR (CONS (vlax-ename->vla-object x) Lobj_CIR))
                     )
                    (acet-ss-to-list ss)
                )
                (if (null (setq
                              prec (getint
                                       (acet-str-format
                                           "\nEnter number of decimal places: <%1> "
                                           (itoa (getvar "useri5"))
                                       )
                                   )
                          )
                    )
                    (setq prec (getvar "useri5"))
                )
                (setvar "useri5" prec)
                (setq ID_CIR_lst (mapcar 'vla-get-objectid Lobj_CIR))
                (setq field_lst
                         (mapcar
                             '(lambda (id)
                                  (acet-str-format
                                      "%<\\AcObjProp Object(%<\\_ObjId %1>%).Circumference \\f \"%lu2%pr%2\">%+"
                                      (itoa id)
                                      (itoa prec)
                                  )
                              )
                             ID_CIR_lst
                         )
                )
                (setq str (acet-str-format
                              "%<\\AcExpr (%1) \\f \"%lu2%pr%2\">%"
                              (vl-string-right-trim "+" (apply 'strcat field_lst))
                              (itoa prec)
                          )
                )
                (vla-put-TextString Obj_Text str)
            ) ;_PROGN
        ) ;_IF
        (ACET-SYSVAR-RESTORE)
        (command "undo" "en")
        (princ "\nOK")
        (PRINC)
    )
    ;;;===================update field sum DIMENSIONs when change properti TextOverride dim to Measurement dim or reverse =====
    (defun c:re1 (/)
        (command "undo" "be")
        (setq ID_Dim_lst_thiep (mapcar 'vla-get-objectid Lobj_dim_thiep))
        (Setq field_lst
                 (mapcar
                     '(lambda (ob id)
                          (if (distof (vla-get-TextOverride ob))
                              (acet-str-format
                                  "%<\\AcObjProp Object(%<\\_ObjId %1>%).%2>%+"
                                  (itoa id)
                                  "TextOverride"
                              )
                              (acet-str-format
                                  "%<\\AcObjProp Object(%<\\_ObjId %1>%).%3 \\f \"%lu2%pr%2\">%+"
                                  (itoa id)
                                  (itoa prec_thiep)
                                  "Measurement"
                              )
                          )
                      )
                     Lobj_dim_thiep
                     ID_Dim_lst_thiep
                 )
        )
        (setq strThiep (acet-str-format
                           "%<\\AcExpr (%1) \\f \"%lu2%pr%2\">%"
                           (vl-string-right-trim "+" (apply 'strcat field_lst))
                           (itoa prec_thiep)
                       )
        )
        (vla-put-TextString Obj_Text_thiep strThiep)
        (command "undo" "en")
        (princ "\nOK")
    )

     

    field-sumOBJ2TEXT.LSP

    Thật sự mình đọc bài viết tới trang 2 này, và nhìn vào các dòng code của bạn Thiep mình chả biết gì cả, nhưng mình thấy dc cái sự nhiệt tình "To lớn" trong con người bạn. Lisp này mình đọc đến đây nói thật mình cũng rối, và thấy nhức đầu luôn, có lẽ vì hiện tại mình chưa có nhu cầu với lisp này. Nhưng qua đây càng cho thấy được người viết ra cái lisp này đã có cái "Tâm" rất lớn rồi. Rất mừng vì diễn đàn có những người như bạn. Nếu bạn ở HCM co thể alo minh 0707 4668 41, mình mời cafe làm quen giao lưu.

    • Like 1

  3. Vào lúc 27/7/2012 tại 14:41, trungthanh050983 đã nói:

    M

     

    Mình đã ap lisp của bạn vào trong cad và dùng rất hay. Nhưng mình xin làm phiền bạn một lần nữa.

    Trong công thức mình muốn lấy giá trị làm tròn 2 chữ số làm tròn sau dấu phẩy có được không.

    Ví dụ dãy công thức trong lisp của bạn hiện xuất ra là "60.3354+405.3438+26.0255"

    Mình muốn nó chỉ đưa ra công thức : "60.34+405.34+26.03" .

    Cảm ơn rất nhiều.

    Trước tiên mình chân thành cảm ơn tác giả đã viết một cái lisp rất hay cho a em sử dụng, và mình mong là các bạn hỗ trợ giúp mình chút vấn đề thế này. Giá trị của Dim minh đang cần xuất hiện là số chẵn 5 đơn vị, nghĩa là các Dim bây giờ đã được chỉnh giá trị Dim Round off là 5, lúc này chẳng hạn 1 dim có giá trị thực là 3252.89 sẽ hiển thị thành 3255, hoặc 2122.2-->2120, hoặc 5114.12-->5115  vậy giờ mình mong muốn là lisp sẽ đưa ra công thức xuất hiện: 3255+2120+5115=10490. Vì nhu cầu của mình là: bản vẽ mình tiếp nhận có sẵn Dim đã được làm như cách trên, và giờ tính khối lượng ống nước WC phải ra con số theo con số đã được làm tròn đó. Mình mong các cao nhân giúp mình chỉnh lại lisp theo hướng này với ạ. 
    P/s: Nếu được thì có thể chỉnh cái giá trị làm tròn theo hướng người dùng được nữa thì quá hay ạ, giả sử nếu làm tròn là 10, hay số bất kì chỉ cần thay đổi giá trị thì quá tuyệt. Rất mong a Tuệ VN và các anh e giỏi lisp hô trợ viết giúp em với ạ !
    E xin chân thành cảm ơn !

    • Like 1

  4. Trước hết mình xin nói lời cảm ơn người đã viết ra cái lisp cad này cũng như những lời góp ý của các anh em để có được 1 cái lisp khá tốt mà chúng ta đang sử dụng. Mình đã dùng lisp và có 1 số chia sẻ cho các bạn như sau (kinh nghiệm bản thân thôi nhé):

    - các bạn muốn chuyển sang font gi ? thì các bạn làm ơn chuyển về font chuẩn trước cho mình (font chuẩn là font thuộc bảng mã VNI-WINDOWS, chẳng hạn font VNI-HELVE CONDENSER là 1 font mà mình thường hay dùng trong bản vẽ, gần như mình chưa gặp lỗi gì với font này - tiếng Việt cũng như tiếng Anh nhé các bạn). Ngày xưa mình đi học trong trường, các thầy cô hay nói là nếu font các bạn gõ tiếng việt bị lỗi, thì các bạn hãy đưa nó về bảng mã VNI-WINDOWS thì sẽ không bị lỗi, ngày đó mình hay dùng font VNI-TIMES, còn bi giờ mình dùng font VNI-HELVE CONDENSER là chính.

    - Sau khi các bạn chuyển về font thuộc bảng mã VNI-WINDOWS, sau đó cac bạn lưu ý, nếu cần chuyển chữ hoa hay chu thường, các bạn hãy chuyển lúc này nhé, vẫn giữ nguyên font vni và chuyển về hoa hay thường, xong rồi các bạn hãy chuyển nó sang font thuộc bảng mã unicode (arial, tahoma, time new romans,...), hoặc tcvn3 (.vnarial,....). Lúc nãy gần như là ok, cũng có 1 vài lỗi xuất hiện, nhưng giảm thiểu lỗi khá nhiều, sau đó kết hợp chỉnh tay, hoặc dùng lệnh find trong cad để thay thế các text lỗi đó bằng text mong muốn.

    *** LƯU Ý: trước khi chuyển font, cần xem xét kĩ font gốc của bạn có đúng với Tesxt style đang chọn ko ? chữ có bị lỗi ko ? noi chung la trước khi chuyển, fai kiểm tra trước kĩ càng, rồi hãy chuyển. Như vậy thì các bạn chuyển hầu như ko bị lỗi, 1 số trường hợp bị lỗi khi gặp mtext (text đôi), thi các bạn nên phá ( lệnh explode) nó thành text (text đơn), rồi hãy chuyển font nhé. Chúc các bạn chuyển font thành công nhé ! Ai có chiêu thức, mẹo gì hay khi chuyển, thì góp ý nhé. Học hỏi, chia sẻ lẫn nhau để cùng phát triển nhé anh em !!!


  5. Chào quocmanh04tt và các anh em trong forrum, mình có theo dõi topic này, mình thấy rất hay. Công việc của mình thì cũng có chút giống với topic này, nhưng mà chỉ khác là khi tách ra từng bản vẽ thì các bản vẽ này nằm trên model, chứ ko phải là layout. Mong quocmanh04tt  và các anh em cố gắng làm thêm chức năng này nữa thì tốt quá.

     


  6. Xóa bớt font trong máy:

    1) vào c: windows/font

    2) vào c: program files/autocad20xx/font

    (xx: version cad, như 07, 08....18. Luu ý cad doi thap vao c:/program files x86)0)

    Chỉ để lại 1 số font cần thiết hay sử dụng, còn khi nao thieu font thi tim chép vao sau. Đảm bảo cad mượt ngay va luôn. Thậm chí máy tính nói chung cũng mượt hơn luôn. Minh da từng bị va khắc phục như vạy dó. 


  7. Mình rất hoan nghênh và cảm ơn sự góp ý của bạn comeonnow, cũng như sự góp ý của các các anh em khác. Mình làm File bản vẽ bên điện, và gần như là nền kiến trúc mình cẩn chuyển về hết layer 0 màu số 8, để làm chi vậy ? lý do là khi mình vẽ phần cơ điện vô, mình cần bât tắt layer liên tục, việc khống chế layer cực cần thiết với mình. Giả sử khi mình cần tắt nền kiến trúc, nếu nền kt chỉ có 1 layer 0, thì mình tắt 1 layer 0 là tắt dc  cái nền rồi, còn nếu nền kiến trúc mà nhìu layer thi fai tắt nhìu layer mới tắt dc hết cái nền kiến trúc. Chính vì vậy ko hiệu quả trong lúc vẽ, tốn time, và đặc biệt rất có ích khi mình bốc khối lượng bản vẽ. Góp ý của các anh e mình xin ghi nhận để phát triển !!! các anh e có thể giao lưu với qua số dt 0978. 519. 205 (Mình là Vinh)


  8. 1 giờ} trướ}c, conghoa cho biết:

    Cái đó là họ dùng text filed, bạn chọn edit block rồi kích đúp vào text Count sẽ thấy

    Bạn ơi, cái mình cần là làm sao để tạo ra được, cái bạn nói là dùng field, hiển nhiên là mình biết field, nhưng cái vấn đề là mình tạo mới 1 cái block động và làm y chang theo như của họ, nhưng lại không được, nên mình post lên đây hỏi các anh em, nếu CongHoa làm được rồi thì làm ơn hãy quay lại video hướng dẫn các bước làm, hoặc là chỉ dẫn bằng bài viết có hình ảnh mình họa, như vậy minh sẽ nắm được và làm được, rất cảm ơn thông tin của bạn nhé !

    PS: mình đã nghiên cứu cái block này, nhưng minh khi minh xóa của họ đi, minh tạo 1 cái distance mới, va cung lam cái array mới, xong rồi trong biến cuont, mình cũng dẫn tới giống như họ, nhưng mà kết quả trả về là những dấu #, ko phải con số. Vì vậy mình rất cần 1 video hướng dẫn, hoặc là chỉ ra được cho mình tại sao bị lỗi ko ra được con số giống họ.

    Minh gửi cả file mình làm lên luôn nhé !

     

    E5 count block__tu lam.dwg


  9. Mình có 1 file tải trên mạng về được, file này là dynamic block, có tính năng là khi kéo dãn thì nó sẽ cập nhật số lượng đối tượng được array trong block, nếu kéo ra mà ko cập nhật thì gõ lệnh RE là sẽ cập nhật. nhưng mình mày mò mãi cũng ko làm được theo của họ. Mọi người hướng dẫn mình cách tạo ra block này với.

    Link file: https://drive.google.com/open?id=0BxlGrtr4maDMWFp0U0FxOUVGTlk

    E5 count block.dwg
     


  10. Bác Tú ơi! cho e hỏi tý

    Tại sao khi in bằng vnplot 2.1 của bác thì phần mềm lại tự động lấy đơn vị của cad là inches,mặc dù e đã dùng lệnh unit chỉnh lại đơn vị của bản vẽ cad là milimet rồi

    e muốn để dơn vị của bản vẽ là milimet khi in thi phải làm sao hả bác Tú Ơi

    Mình cũng đang gặp vấn đề giông như bạn HIEN05X2A, Mong nhận được câu trả lời từ a Tú ạ !!!!


  11. http://www.cadviet.com/upfiles/6/89470_norm.lsphttp://www.cadviet.com/upfiles/6/89470_norm_1.lsptrong bản vẽ của mình có rất nhiều block , mình muốn chuyển tất cả các đối tượng trong tất cả các block về cùng 1 layer thì làm thế nào mong các bác giúp em với, chỉ thực hiện 1 lệnh thui chứ làm từng cái thì lâu quá

    Mình thấy yêu cầu của bạn gần giống với tính chát công việc của mình, thông thường thì ben mình thiết điện, mình nhận được bản vẽ kiến trúc, rồi sau đó dọn dẹp bản vẽ,  xóa hết các dim va các thứ lung tung, rôi sau đó chuyển tất cả nền kiến trúc về layer 0, và màu số 8. Trong đó, nên kiến trúc có rất nhiều các đối tượng block trùng nhau, mà edit chỉnh màu mè từng cái thì rất lâu, nên mình tìm được cái lisp norm.lsp , bạn chỉ cần gõ lệnh norm, enter chờ máy chạy, rùi sau đó bạn chọn hết cac đối tượng, chọn layer0, màu số 8 là ok. minh đã dùng trên bản vẽ của mình thấy ok. Link mình tìm thấy nó đây: http://www.cadtutor.net/forum/showthread.php?19161-lisp-for-changing-all-objects-in-a-block-to-layer-quot-0-quot

    P/s: vì các công cụ lisp ở trên mình đã dùng mà ko thể chuyển được block lồng nhau.

     

    Lisp: norm.lsp

    Link: https://drive.google.com/open?id=0B4fKWatut_ZnNmxON3BsQ1lGUEE

    • Like 1

  12. Đơn giản hơn 1 chút bạn dùng thử LISP này coi

    ;; free lisp from CADViet.com - Code by Mathan;; Danh STT ban ve tu dong(defun c:STT()(command "undo" "be")(command "cmdecho" 0)(setq gtext (getstring 5"\nChuoi TEXT truoc :"))(setq gtext2 (getstring 5"\nChuoi TEXT Sau :"));(initget "D C");(setq ans (getkword "\n Buoc tiep theo (D) :"));(if (= ans "D");   (progn   (setq vitri (getint "\n STT bat dau :"))   (setq buoc (getint "\n buoc tang :"))   (prompt "\nChon chu muon chinh.")   (setq ss (ssget))   (setq n (sslength ss))   (setq i 0)   (setq vitri (- vitri buoc))   (while (< i n)   (setq e (entget(ssname ss i)))   (setq vitri (+ vitri buoc))   (setq a1 (rtos vitri 2 0))   (setq chunoi (strcat gtext a1 gtext2))   (setq e (subst (cons 1 chunoi) (assoc 1 e) e))   (entmod e)   (setq i (1+ i))   );  );  )(command "undo" "end")(princ));;;;;;;;;;;;;;;;;;;;;;;;;;;;

    Nhờ bác mathan giúp mình thêm chút xíu, lisp của bạn đã gần giống với nhu cầu của mình, nhưng mà mình muốn hiện ra các chữ kiểu G-01, G-02, G-03,..G-10,G-11. Hiện tại lisp của bạn chỉ hiện G-1, G-2, G-3,...G10,G-11,......Mong sớm nhận được hồi âm của bạn. mail mình: vinhdkc@gmail.com

    • Vote giảm 1

  13. mình thấy như thế này:

    Cái lisp o trên dùng để thay đổi độ dày nét. thực ra là nó chỉnh global width của polyline. mình đã dùng thử thấy vậy.

    vd: nếu bạn có vẽ 1 line chẳng hạn, rùi bạn dùng lisp wp trên thì nó làm 2 công đoạn: chuyển về polyline và hiệu chỉnh global width.

    Cuối cùng bạn dc là 1 polyline chứ ko fai line nữa.

    Nếu bạn để ý, bạn vẽ 1 line rùi chọn vào line đó, bấm ctrl+1, ra bảng thuoc tính và bạn thấy rang nếu đối tượng là line thì ko có mục global width. Còn bạn vẽ 1 đường Polyline thì có mục global width. và bạn hiệu chỉnh mục này thì bạn sẽ thấy nét vẽ trên màn hình dày hoac mỏng đình .

    Mình thì thực sự vẫn chưa bít làm sao để chỉnh cái độ dày của line lên. nếu bạn nào biết thì chỉ giáo với. chứ còn nếu vẽ Polyline thì sẽ chỉnh được độ dày ngay. Các bác cao thủ vào góp ý với.....!

×