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

vcdichoi

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

    63
  • Đã tham gia

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

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


  1. 45 phút trước, vietduc147258 đã nói:

    Xin lỗi bạn. Vì đã bỏ bảng mã này lâu nên có sự nhầm lẫn.

    Không cần phải phức tạp như đã hướng dẫn từ trước. Bạn cứ gõ từ tìm kiếm và thay thế bình thường thôi.

    Như chữ

    CHỐNG NÓNG BẰNG GẠCH 6 LỖ khi bạn gõ vào ô tìm kiếm hoặc ô thay thế nó sẽ hiện như sau:

    CHOÁNG NOÙNG BAÈNG GAÏCH 6 LOÃ --> Nếu là bảng mã VNI

    CHèNG NãNG B»NG G¹CH 6 Lç   ---> Nếu là bảng mã .TCVN3

    Nói chung chọn đúng bảng mã khi tìm kiếm thay thế là được

    dạ em cảm ơn anh!


  2. Vào lúc 12/3/2023 tại 04:54, vietduc147258 đã nói:

    Ghét nhất cái vụ tìm kiếm này của các bảng mã không thuộc Unicode. Lỗi này sảy ra ở cả Word, excel hay bất cứ phần mềm nào.

    Cách khắc phục là bạn phải viết nội dung chữ cần tìm kiếm ra cad rồi copy nội dung nó trong Ctrl 1, dán chữ đó vào hộp thoại Find.

    Làm tương tự với nội dung cần thay thế.

    Mẹo: cứ gõ bình thường vào ô tìm kiếm, copy> Convert Clipboard (chức năng của unikey). Rồi paste ngược trở lại. Nguồn là Unicode, đích là bảng mã trùng với bảng mã của text

    P/S: Chia sẻ của người cực gét bảng mã .vni vào vni windows

    Em cảm ơn anh, anh có hướng dẫn chỗ "Mẹo" em làm theo lại không được, phiền anh có thể gửi clip qua youtube cho em rõ hơn với được không ạ? em cảm ơn anh nhiều!


  3. Xin chào các anh/chị!

    Em dùng cad 2007 bị giật lác.

    Em đã vào -> OP -> System -> Perfomance Settings -> và chọn Manual Tune -> Enable Performance Tuning .

    Nhưng vẫn bị giật lác. Sau đó em gỡ cad 2007 ra và cài lại nhưng vẫn bị vậy.

    Em dùng máy Dell Precision 7510.

    Rất mong anh/chị giúp em khắc phụ lỗi trên.

    Em xin chân thành cảm ơn!

     

     


  4. Xin chào anh/chị và các bạn!

    Em có dùng cad 2020 khi mở chương trình Cad 2020 và một ứng dụng bất kỳ, em sử dụng tổ hợp phím (Alt +Tab) để qua lại nhưng không được.

    Nghĩa là khỉ mở Cad 2020 lên thì không thể sử dụng tổ hợp phím Alt + Tab để đến được chương trình kia.

    Nhưng trong cad 2007 thì tổ hợp phím này vẫn có tác dụng.

    Em không hiểu tại sao? và làm cách nào để khắc phục. Em xin cảm ơn!

     


  5. 2 giờ trước, Danh Cong đã nói:

    Chữ bạn đang nhìn thấy thực chất là 1 khung tên đã được XREF vào trong bản vẽ, vì không còn fie nguồn của khung tên nên file XREF này bị lỗi.

    Việc xóa lỗi này có 2 cách:

    1. Bạn có được file nguồn để XREF lại vào trong bản vẽ ( Cách này chắc bạn ko làm được rồi ).

    2. Xóa file XREF trong bản vẽ. ( Gõ lệnh XREF  ---> chọn file khung tên bị lỗi  ---> Detach )

    Cảm ơn anh!


  6. Em có sưu tầm được một Lisp cad dùng để hợp các hình lại với nhau:

    Sử dụng như Video:

    Nhưng khi em load lisp vào và sử dụng thì thấy báo lỗi, Em có tham khảo thì thấy bảo là do trùng biến gì đó trong quá trình lập trình, và biến đó được ghi vào bộ nhớ Ram (em cũng không hiểu cho lắm, hỳ).

    Báo lỗi như hình dưới

     

    Nhờ các anh/chị giúp em chỉnh sửa để Lisp có thể sử dụng được

    ;;-----------------------=={ Outline Objects  }==-----------------------;;
    ;;                                                                      ;;
    ;;  This program enables the user to generate one or more closed        ;;
    ;;  polylines or regions outlining all objects in a selection.          ;;
    ;;                                                                      ;;
    ;;  Following a valid selection, the program calculates the overall     ;;
    ;;  rectangular extents of all selected objects and constructs a        ;;
    ;;  temporary rectangular polyline offset outside of such extents.      ;;
    ;;                                                                      ;;
    ;;  Using a point located within the offset margin between the extents  ;;
    ;;  of the selection and temporary rectangular frame, the program then  ;;
    ;;  leverages the standard AutoCAD BOUNDARY command to construct        ;;
    ;;  polylines and/or regions surrounding all 'islands' within the       ;;
    ;;  temporary bounding frame.                                           ;;
    ;;                                                                      ;;
    ;;----------------------------------------------------------------------;;
    ;;  Author:  Lee Mac, Copyright © 2014  -  www.lee-mac.com              ;;
    ;;----------------------------------------------------------------------;;
    ;;  Version 1.0    -    2014-11-30                                      ;;
    ;;                                                                      ;;
    ;;  - First release.                                                    ;;
    ;;----------------------------------------------------------------------;;
    ;;  Version 1.1    -    2016-01-23                                      ;;
    ;;                                                                      ;;
    ;;  - Added option to erase original objects.                           ;;
    ;;----------------------------------------------------------------------;;
    
    (defun c:LH ( / *error* idx sel )
    
        (defun *error* ( msg )
            (LM:endundo (LM:acdoc))
            (if (not (wcmatch (strcase msg t) "*break,*cancel*,*exit*"))
                (princ (strcat "\nError: " msg))
            )
            (princ)
        )
        
        (if (setq sel (ssget))
            (progn
                (LM:startundo (LM:acdoc))
                (LM:outline sel)
                (initget "Yes No")
                (if (/= "No" (getkword "\nErase original objects? [Yes/No] <Yes>: "))
                    (repeat  (setq idx (sslength sel))
                        (entdel (ssname sel (setq idx (1- idx))))
                    )
                )
                (LM:endundo (LM:acdoc))
            )
        )
        (princ)
    )
    
    ;; Outline Objects  -  Lee Mac
    ;; Attempts to generate a polyline outlining the selected objects.
    ;; sel - [sel] Selection Set to outline
    ;; Returns: [sel] A selection set of all objects created
    
    (defun LM:outline ( sel / app are box cmd dis enl ent lst obj rtn tmp )
        (if (setq box (LM:ssboundingbox sel))
            (progn
                (setq app (vlax-get-acad-object)
                      dis (/ (apply 'distance box) 20.0)
                      lst (mapcar '(lambda ( a o ) (mapcar o a (list dis dis))) box '(- +))
                      are (apply '* (apply 'mapcar (cons '- (reverse lst))))
                      dis (* dis 1.5)
                      ent
                    (entmakex
                        (append
                           '(   (000 . "LWPOLYLINE")
                                (100 . "AcDbEntity")
                                (100 . "AcDbPolyline")
                                (090 . 4)
                                (070 . 1)
                            )
                            (mapcar '(lambda ( x ) (cons 10 (mapcar '(lambda ( y ) ((eval y) lst)) x)))
                               '(   (caar   cadar)
                                    (caadr  cadar)
                                    (caadr cadadr)
                                    (caar  cadadr)
                                )
                            )
                        )
                    )
                )
                (apply 'vlax-invoke
                    (vl-list* app 'zoomwindow
                        (mapcar '(lambda ( a o ) (mapcar o a (list dis dis 0.0))) box '(- +))
                    )
                )
                (setq cmd (getvar 'cmdecho)
                      enl (entlast)
                      rtn (ssadd)
                )
                (while (setq tmp (entnext enl)) (setq enl tmp))
                (setvar 'cmdecho 0)
                (command
                    "_.-boundary" "_a" "_b" "_n" sel ent "" "_i" "_y" "_o" "_p" "" "_non"
                    (trans (mapcar '- (car box) (list (/ dis 3.0) (/ dis 3.0))) 0 1) ""
                )
                (while (< 0 (getvar 'cmdactive)) (command ""))
                (entdel ent)
                (while (setq enl (entnext enl))
                    (if (and (vlax-property-available-p (setq obj (vlax-ename->vla-object enl)) 'area)
                             (equal (vla-get-area obj) are 1e-4)
                        )
                        (entdel enl)
                        (ssadd  enl rtn)
                    )
                )
                (vla-zoomprevious app)
                (setvar 'cmdecho cmd)
                rtn
            )
        )
    )
    
    ;; Selection Set Bounding Box  -  Lee Mac
    ;; Returns a list of the lower-left and upper-right WCS coordinates of a
    ;; rectangular frame bounding all objects in a supplied selection set.
    ;; s - [sel] Selection set for which to return bounding box
    
    (defun LM:ssboundingbox ( s / a b i m n o )
        (repeat (setq i (sslength s))
            (if
                (and
                    (setq o (vlax-ename->vla-object (ssname s (setq i (1- i)))))
                    (vlax-method-applicable-p o 'getboundingbox)
                    (not (vl-catch-all-error-p (vl-catch-all-apply 'vla-getboundingbox (list o 'a 'b))))
                )
                (setq m (cons (vlax-safearray->list a) m)
                      n (cons (vlax-safearray->list b) n)
                )
            )
        )
        (if (and m n)
            (mapcar '(lambda ( a b ) (apply 'mapcar (cons a b))) '(min max) (list m n))
        )
    )
    
    ;; Start Undo  -  Lee Mac
    ;; Opens an Undo Group.
    
    (defun LM:startundo ( doc )
        (LM:endundo doc)
        (vla-startundomark doc)
    )
    
    ;; End Undo  -  Lee Mac
    ;; Closes an Undo Group.
    
    (defun LM:endundo ( doc )
        (while (= 8 (logand 8 (getvar 'undoctl)))
            (vla-endundomark doc)
        )
    )
    
    ;; Active Document  -  Lee Mac
    ;; Returns the VLA Active Document Object
    
    (defun LM:acdoc nil
        (eval (list 'defun 'LM:acdoc 'nil (vla-get-activedocument (vlax-get-acad-object))))
        (LM:acdoc)
    )
    
    (vl-load-com) (princ)
    
    ;;----------------------------------------------------------------------;;
    ;;                             End of File                              ;;
    ;;----------------------------------------------------------------------;;

     

    lllll.png

    Lisp Lay hop cac hinh_LH.lsp


  7. Em dùng cad 2020, có sẵn expres.
    Em dùng lệnh Burst báo lỗi, em load lisp có tên Burst (như file đính kèm) để phá text thuộc tính thành text bình thường thì cũng báo lỗi.
    Các anh/chị giúp em khắc phục lỗi trên để em có thể sử dụng được lệnh burst hoặc load lisp Burst vào để sử dụng được.
    Em xin cảm ơn.


     

    OOO.png

    burst.lsp


  8. 22 giờ trước, Doan Van Ha đã nói:

    1. Hàm vlax-ename->vla-object không cần dùng (vl-load-com)

    2. Cad đôi lúc lỗi rất kỳ quặc: chính các hàm của cad sinh ra nhưng nó vẫn báo nil, ví dụ như hàm trên. Nhưng mở file cad khác và cũng chạy lisp đó thì hàm đó lại ok. Tôi đã gặp trường hợp này rồi. Trên mạng có cách xử tôi đọc rồi nhưng giờ tìm lại chưa ra.  

    Vâng, em cảm ơn anh, mong được anh giúp đỡ!


  9. Em chào các anh/chị trên diễn đàn.

    Em có sử dụng một lisp để thống kê block, khi thống kế tạo ra dạng kiểu bảng .

    Sử dụng Lisp em thấy báo lỗi (như hình)

    Không hiểu vì sao lỗi vậy.

    Xin được các anh/chị  khắc phục lỗi này giúp em.

    Em xin cảm ơn

    Em, có tải file bản vẽ, Lips kèm theo.

     

     

    111111.png

    cad.dwg

    TIENG VIET.LSP

    • Vote giảm 1

  10. Vào lúc 2/7/2020 tại 12:18, tien2005 đã nói:

    @vcdichoi Máy của Bạn không có font viet buddy.shx. Bạn đổi qua font unicode là được

    Cảm ơn anh! em tưởng nếu không có font viet buddy.shx  thì sẽ báo dấu chấm than chứ ạ! của em không thấy báo

     

    Vào lúc 13/6/2020 tại 16:16, thiep đã nói:

    bạn tìm đoạn mã này:

    • cadvietlisp.lsp
      lisp help
    •  
    
        (if (= tl nil)
            (progn (setq tl (getreal "\nDrawing scale : ")) ;    (setq ntl (/ 1 tl))
                                                      ;    (setq tl2 (* ntl ntl))
            )
        )

    và thay bằng duy nhất 1 dòng mã:   (setq tl (getreal "\nDrawing scale : "))

    Tuy nhiên, nhìn chung lisp này viết không hay.

     

    Vào lúc 2/7/2020 tại 12:18, tien2005 đã nói:

    @vcdichoi Máy của Bạn không có font viet buddy.shx. Bạn đổi qua font unicode là được

     


  11. Vào lúc 10/5/2012 tại 22:31, redsea_tq đã nói:

    Xin Lỗi bạn vì hôm qua vào rồi nhưng lại phải out ngay nên không nhận được phản hồi của bạn. Mình sẽ gửi cho bạn file đó:

    yêu cầu:

    Load 2 file HL.dvb và HL.lsp lên rồi dùng lệnh HL, chú ý làm theo yêu cầu của dòng command nhé.

    http://www.mediafire.com/?d3svaq9coxkxdm9

     

    Em chào anh. 

    Em dùng lisp của anh thì thấy báo như hình đăng

    Mong anh chỉ cách khắc phục để có thể sử dụng được lisp ạ!

     

     

    lllll.png


  12. Xin chào các anh/chị và các bạn trên diễn đàn.

    Em có vấn đề sau xin được giúp đỡ.

    Em làm hoàn công vỉa hè, tại mặt cắt ngang của cọc bề rộng vỉa hè thay đổi so với thiết kế.

    Em phải co lại (hoặc giãn ) bề mặt vỉa hè  dùng lệnh stretch  trong cad.

    Sau đó điền tay các cao độ tự nhiên và cao độ thiết kế, khoảng cách mia (để hợp lý hồ sơ). và tính ra khối lượng đào đắp tại vị trí mặt cắt đó bằng cách tích diện tích mặt cắt ngang

    Như vậy sẽ rất lâu và có thể bị nhầm lẫn.

    Vậy cho em được hỏi:

    Có thể có cách nào để điền nhanh các cao độ tự nhiên và cao độ thiết kế (thay vì điền tay)

    Em xin cảm ơn.

    qqqqq.jpg

    Hoi.dwg


  13. 2 giờ trước, duy782006 đã nói:

    Thêm 1 lệnh ddvt. khi nào ưng đổi thì gỏ lệnh DDVT rồi nhập số mới vào.

    (defun c:ddvt ()

    (setq tl (getreal "\nDrawing scale : ")

    (princ))

    Cháu cảm ơn chú!

    Cháu thêm dòng lệnh chú viết giúp, nhưng không biết đã thêm đúng vị trí hay còn sai ở chỗ nào mà khi gọi lệnh "ddvt" chưa thấy có tác dụng

    Nhờ Chú xem giúp lại cháu với ạ!

    Code của lisp sau khi cháu đã thêm vào :

    Quote


    (princ "\nBAN DANG DUNG CHUONG TRINH AUTOLISP CUA CTY NAM DO")
    (princ "\nCHUONG TRINH TINH DIEN TICH HINH KIN - CAU LENH SU DUNG CHUONG TRINH LA: TDT - WRITE BY NGUYEN THANH TAM - KSCD")
    (defun DXF (code elist)
      (cdr (assoc code elist))
    );dxf
    (defun DXF (code elist)
      (cdr (assoc code elist))
    );dxf
    (defun c:ddvt ()
    (setq tl (getreal "\nDrawing scale : ")
    (princ))
    (defun c:tdt(/ dtl dtcon pt1 pt2 ss et oslast vsize)
      (if (= tl nil) (progn
        (setq tl (getreal "\nDrawing scale : "))
    ;    (setq ntl (/ 1 tl))
    ;    (setq tl2 (* ntl ntl))
        )
      )
      (setq dtl 0)
      (setq ss (ssadd))
      (setq oslast (getvar "OSMODE"))
      (command "osnap" "")
       (setq ntl (/ 1 tl))
       (setq tl2 (* ntl ntl))

      (print)
      (print)
      (setq pt1 (getpoint "\nPick internal point : "))
      (while (/= pt1 nil)
        (command "-boundary" pt1 "")
        (setq et (entlast))
        (ssadd et ss)
        (command "area" "e" "last")
        (setq vsize ( /(getvar "VIEWSIZE") 50))
        (command "hatch" "ANSI31" vsize "0" "last" "")
        (setq et (entlast))
        (ssadd et ss)
        (setq dtcon (/ (getvar "AREA") tl2))
        (setq dtl (+ dtcon dtl))
        (prompt (strcat "\nComponent area : " (rtos dtcon 2 4)))
        (print)
        (print)
        (command "layer" "n" "Dientich20" "c" "6" "Dientich20" "")
        (command "layer" "s"  "Dientich20" "" "")
        (setq pt1 (getpoint "\nPick internal point : "))
      )
      (command "setvar" "OSMODE" oslast)
      (command "erase" ss "")
      (setq ss nil)
      (command "redraw")
      (print)
      (prompt (strcat "\nTotal area : " (rtos dtl 2 4)))
      (print)
      (setq pt2 (getpoint "\nPoint to write: "))
      (if (/= 0 (DXF 40 (tblsearch "STYLE" (getvar "TEXTSTYLE"))))
         
        (command "text" "m" pt2  "0" (rtos dtl 2 (getvar "luprec")))
        (command "text" "m" pt2 "1.5" "0" (strcat (rtos dtl  2 (getvar "luprec")) "m2"))

      );if
      (princ)
    );defun q
    ;------------------------------------------------------------------------

      

    (defun c:zz(/ dtl dtcon pt1 pt2 ss et oslast vsize)
      (if (= tl nil) (progn
        (setq tl (getreal "\nDrawing scale : "))
    ;    (setq ntl (/ 1 tl))
    ;    (setq tl2 (* ntl ntl))
        )
      )
      (setq dtl 0)
      (setq ss (ssadd))
      (setq oslast (getvar "OSMODE"))
      (command "osnap" "")
       (setq ntl (/ 1 tl))
       (setq tl2 (* ntl ntl))

      (print)
      (print)
      (setq pt1 (getpoint "\nPick internal point : "))
      (while (/= pt1 nil)
        (command "-boundary" pt1 "")
        (setq et (entlast))
        (ssadd et ss)
        (command "area" "e" "last")
        (setq vsize ( /(getvar "VIEWSIZE") 50))
        (command "hatch" "ANSI31" vsize "0" "last" "")
        (setq et (entlast))
        (ssadd et ss)
        (setq dtcon (/ (getvar "AREA") tl2))
        (setq dtl (+ dtcon dtl))
          (setq dtl2 (/ dtl 40))
    (prompt (strcat "\nComponent area : " (rtos dtcon 2 4)))
        (print)
        (print)
        (setq pt1 (getpoint "\nPick internal point : "))
      )
      (command "setvar" "OSMODE" oslast)
      (command "erase" ss "")
      (setq ss nil)
      (command "redraw")
      (print)
      (prompt (strcat "\nTotal area : " (rtos dtl 2 4)))
      (print)
      (setq pt2 (getpoint "\nPoint to write: "))
      (if (/= 0 (DXF 40 (tblsearch "STYLE" (getvar "TEXTSTYLE"))))
        (command "text" pt2  "90" (rtos dtl2 2 (getvar "luprec")))
        (command "text" pt2 "2" "0" (strcat (rtos dtl2  2 (getvar "luprec")) ))

      );if
      (princ)
    );defun zz
    ;----------
    (defun c:xx(/ dtl dtcon pt1 pt2 ss et oslast vsize)
      (if (= tl nil) (progn
        (setq tl (getreal "\nDrawing scale : "))
    ;    (setq ntl (/ 1 tl))
    ;    (setq tl2 (* ntl ntl))
        )
      )
      (setq dtl 0)
      (setq ss (ssadd))
      (setq oslast (getvar "OSMODE"))
      (command "osnap" "")
       (setq ntl (/ 1 tl))
       (setq tl2 (* ntl ntl))

      (print)
      (print)
      (setq pt1 (getpoint "\nPick internal point : "))
      (while (/= pt1 nil)
        (command "-boundary" pt1 "")
        (setq et (entlast))
        (ssadd et ss)
        (command "area" "e" "last")
        (setq vsize ( /(getvar "VIEWSIZE") 50))
        (command "hatch" "ANSI31" vsize "0" "last" "")
        (setq et (entlast))
        (ssadd et ss)
        (setq dtcon (/ (getvar "AREA") tl2))
        (setq dtl (+ dtcon dtl))
          (setq dtl2 (/ dtl 70))
      (setq dtl3 (+ dtl2 0))
    (prompt (strcat "\nComponent area : " (rtos dtcon 2 4)))
        (print)
        (print)
        (setq pt1 (getpoint "\nPick internal point : "))
      )
      (command "setvar" "OSMODE" oslast)
      (command "erase" ss "")
      (setq ss nil)
      (command "redraw")
      (print)
      (prompt (strcat "\nTotal area : " (rtos dtl 2 4)))
      (print)
      (setq pt2 (getpoint "\nPoint to write: "))
      (if (/= 0 (DXF 40 (tblsearch "STYLE" (getvar "TEXTSTYLE"))))
        (command "text" pt2  "90" (rtos dtl3 2 (getvar "luprec")))
        (command "text" pt2 "1" "90" (strcat (rtos dtl3  2 (getvar "luprec")) ))

      );if
      (princ)
    );defun xx
    ;--
     

     

    Dạ! được rồi chú ạ!

    cháu cảm ơn chú nhiều!

     

×