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

Danh Cong

Moderator
  • Số lượng nội dung

    1.353
  • Đã tham gia

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

  • Ngày trúng

    113

Bài đăng được đăng bởi Danh Cong


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

    Chào các anh chị. Mình muốn xin 1 list CAD mà ta tính tổng các text( là số) được chọn. sau đó hiện thị ra bảng diễn giải để mình copy diễn giải đó vào excel. 

    Rất mong các anh chị trong diễn đàn giúp đỡ

    Cám ơn anh chị nhiều

    Em có thể liên hệ với bác này : Lisp mất 1 ít chi phí :))) 

     


  2. @ngokiet : Bạn có thể tham khảo code tôi viết sắp xếp Text :   :))

    
    
    

    (defun c:SXT ( / #HUONG_XEP_TEXT #TEXT_ALIGHT DXF DXF10_Y DXF11_X DXF11_Y OBJECT PT DXF10_ DXF10_X OBJECT-SELECT)
      (setq #HUONG_XEP_TEXT "Ver")
      (initget "Ver Hor")
      (setq #HUONG_XEP_TEXT (cond ((getkword (strcat "\nText Align : [Ver/Hor] <" #HUONG_XEP_TEXT ">"))) (#HUONG_XEP_TEXT)))

      (setq #TEXT_ALIGHT "L")
      (initget "L C R A M F TL TC TR ML MC MR BL BC BR")
      (setq #TEXT_ALIGHT (cond ((getkword (strcat "\nJustify Text : [L/C/R/A/M/F/TL/TC/TR/ML/MC/MR/BL/BC/BR] <" #TEXT_ALIGHT ">"))) (#TEXT_ALIGHT)))
      
      (setq object (acet-ss-to-list (ssget '((0 . "*TEXT"))))
        object-select (ACET-LIST-TO-SS object)
        pt (getpoint "\nPick Point"))

      (cond ((= #TEXT_ALIGHT "L") (command "JUSTIFYTEXT" object-select ""  "Left"))
        ((= #TEXT_ALIGHT "C") (command "JUSTIFYTEXT" object-select ""  "Center"))
        ((= #TEXT_ALIGHT "R") (command "JUSTIFYTEXT" object-select ""  "Right"))
        ((= #TEXT_ALIGHT "A") (command "JUSTIFYTEXT" object-select ""  "Aligned"))
        ((= #TEXT_ALIGHT "M") (command "JUSTIFYTEXT" object-select ""  "Middle"))
        ((= #TEXT_ALIGHT "F") (command "JUSTIFYTEXT" object-select ""  "Fit"))
        ((= #TEXT_ALIGHT "TL") (command "JUSTIFYTEXT" object-select "" "TL"))
        ((= #TEXT_ALIGHT "TC") (command "JUSTIFYTEXT" object-select "" "TC"))
        ((= #TEXT_ALIGHT "TR") (command "JUSTIFYTEXT" object-select "" "TR"))
        ((= #TEXT_ALIGHT "ML") (command "JUSTIFYTEXT" object-select "" "ML"))
        ((= #TEXT_ALIGHT "MC") (command "JUSTIFYTEXT" object-select "" "MC"))
        ((= #TEXT_ALIGHT "MR") (command "JUSTIFYTEXT" object-select "" "MR"))
        ((= #TEXT_ALIGHT "BL") (command "JUSTIFYTEXT" object-select "" "BL"))
        ((= #TEXT_ALIGHT "BC") (command "JUSTIFYTEXT" object-select "" "BC"))
        ((= #TEXT_ALIGHT "BR") (command "JUSTIFYTEXT" object-select "" "BR"))
        )
        
      (cond ((and (= #HUONG_XEP_TEXT "Ver") (= #TEXT_ALIGHT "L"))
           (foreach ss object
                (progn
                (setq dxf (entget ss)
                  dxf10_y (caddr (assoc 10 dxf)))
                (setq dxf (subst (cons 10 (list (car pt) dxf10_y )) (assoc 10 dxf) dxf))
                (entmod dxf)
                ); end progn
                ); end foreach
         )
        ((= #HUONG_XEP_TEXT "Ver")
           (foreach ss object
                (progn
                (setq dxf (entget ss)
                  dxf11_y (caddr (assoc 11 dxf)))
                (setq dxf (subst (cons 11 (list (car pt) dxf11_y )) (assoc 11 dxf) dxf))
                (entmod dxf)
                ); end progn
                ); end foreach
         )

          ((and (= #HUONG_XEP_TEXT "Hor")(= #TEXT_ALIGHT "L"))
           (foreach ss object
                (progn
                (setq dxf (entget ss)
                  dxf10_x (cadr (assoc 10 dxf)))
                (setq dxf (subst (cons 10 (list dxf10_x (cadr pt) )) (assoc 10 dxf) dxf))
                (entmod dxf)
                ); end progn
                ); end foreach
         )
        ((= #HUONG_XEP_TEXT "Hor")
           (foreach ss object
                (progn
                (setq dxf (entget ss)
                  dxf11_x (cadr (assoc 11 dxf)))
                (setq dxf (subst (cons 11 (list dxf11_x (cadr pt) )) (assoc 11 dxf) dxf))
                (entmod dxf)
                ); end progn
                ); end foreach
         )
        ); end cond
      (princ))
     

    • Vote tăng 1

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

    Nhờ các Bác hỗ trợ,  em muốn đổi Justify từng Text. em dùng Entmod mà ko như mong muốn.

    
    (defun AT:Justify ( / Justify)
    (setq Justify (cond (Justify) ("Left")))
    (initget "Leff  Right TOPLeft TOPRight BOTTOMLeft BOTTOMCenter BOTTOMRight")
    (setq Justify (cond ((getkword (strcat "\Ch\U+1ECDn T\U+1EF7 l\U+1EC7 b\U+1EA3n v\U+1EBD: [Leff/Right/TOPLeft/TOPRight/BOTTOMLeft/BOTTOMCenter/BOTTOMRight]<" Justify ">"))) (Justify)))
     )
    (defun c:00 ( / e1 en)
    (setq e1 (car(entsel "Ch\U+1ECDn Text c\U+1EA7n \U+0111\U+1ED5i Justify: "))) 
    (setq en (entget e1))
    (setq Justify (AT:Justify))    ;(princ Justify)
          (if(eq Justify "Leff")(entmod (subst (list (cons 72  0)(cons 73  0)) (list (assoc 72 en)(assoc 73 en)) en)))
    ;;;      (if(eq Justify "Center")       (progn  (entmod (subst (cons 72  1) (assoc 72 en) en))
    ;;                                (entmod (subst (cons 73  0) (assoc 73 en) en)) ) )
          (if(eq Justify "Right")        (entmod (subst (list (cons 72  2)(cons 73  0)) (list(assoc 72 en)(assoc 72 en)) en)))
    ;;;      (if(eq Justify "Aligned")      (entmod (subst (list (cons 72  3)(cons 73  0)) (list (assoc 72 en)(assoc 73 en)) en)))                                       
    ;;      (if(eq Justify "Middle")       (entmod (subst (list (cons 72  4)(cons 73  0)) (list (assoc 72 en)(assoc 73 en)) en)))
    ;;      (if(eq Justify "Fit")          (entmod (subst (list (cons 72  5)(cons 73  0)) (list (assoc 72 en)(assoc 73 en)) en)))
         (if(eq Justify "TOPLeft")      (entmod (subst (list (cons 72  0)(cons 73  3)) (list (assoc 72 en)(assoc 73 en)) en)))
    ;;;      (if(eq Justify "TOPCenter")    (entmod (subst (list (cons 72  1)(cons 73  3)) (list (assoc 72 en)(assoc 73 en)) en)))
          (if(eq Justify "TOPRight")     (entmod (subst (list (cons 72  2)(cons 73  3)) (list (assoc 72 en)(assoc 73 en)) en)))
    ;;;      (if(eq Justify "MIDDLELeft")   (entmod (subst (list (cons 72  0)(cons 73  2)) (list (assoc 72 en)(assoc 73 en)) en)))
    ;;      (if(eq Justify "MIDDLECenter") (entmod (subst (list (cons 72  1)(cons 73  2)) (list (assoc 72 en)(assoc 73 en)) en)))
    ;;      (if(eq Justify "MIDDLERight")  (entmod (subst (list (cons 72  2)(cons 73  2)) (list (assoc 72 en)(assoc 73 en)) en)))
          (if(eq Justify "BOTTOMLeft")   (entmod (subst (list (cons 72  0)(cons 73  1)) (list (assoc 72 en)(assoc 73 en)) en)))
          (if(eq Justify "BOTTOMCenter") (entmod (subst (list (cons 72  1)(cons 73  1)) (list (assoc 72 en)(assoc 73 en)) en)))
          (if(eq Justify "BOTTOMRight")  (entmod (subst (list (cons 72  2)(cons 73  0)) (list (assoc 72 en)(assoc 73 en)) en)))
          )
    

    + Lỗi ở (subst (list (cons 72  2)(cons 73  3)) (list (assoc 72 en)(assoc 73 en)) en) ??  Vì hàm Subst chỉ thay thế cho 1 phần tử chứ ko phải list nhiều phần tử.

    + Mà ở mục này bạn nên áp dụng Vlax cho đơn giản : Ví dụ: 

    (if(eq Justify "TOPLeft")      (entmod (vla-put-alignment (vlax-ename->vla-object e1) 6)))

    • Vote tăng 1

  4. 10 giờ trước, dinhle727 đã nói:

    Xin chào mọi người
    Mình muốn hỏi vấn đề liên quan tới lệnh Find and Replace
    Khi mình kích vào dòng Text thì Autocad không tự động xắp xếp theo thứ những đối tượng đã kiếm
    Các bạn đã gặp lỗi này chỉ giúp mình với ạ

    001.png

     

    Nó có sắp xếp đấy bạn . Tuy nhiên nó ko sắp xếp theo kiểu Excel, mà nó sắp xếp theo kiểu đối tượng được tạo trước, tạo sau trong Cad.

    Vậy nên đây ko dc coi là lỗi, thôi thì mình dùng phần mềm nào thì chấp nhận cách chơi của phần mềm đấy thôi :))))


  5. 31 phút trước, phạmnampt đã nói:

    @conghoabạn giỏi hơn tôi nhưng chưa chắc đã bằng người khác đâu. Tôi mới học nên chưa hiểu hình này vẽ như nào nhờ mọi người giúp đỡ để tôi biết cách làm, tôi không biết bạn không vẽ được hay như nào nhưng tôn trọng người khác tý bạn à. vậy nhé !

     

    + Tôi chưa thấy người ta nói câu nào là không tôn trọng bạn.

    • Like 1
    • Vote giảm 1

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

    Chào Anh Chị.

    Em đang gặp rắc rối bản vẽ cad của em tập hợp từ nhiều nơi nên font chứ VNI, arial ... Nhưng bên em muốn chuyển về chuyển duy nhất là Arial, anh chị pro giúp em với.

    Khó khắn là text trong file cad của e ở rất nhiều nơi trên bản vẽ nên việc chuyển bằng Ctrl Shift F6 rất lâu, anh chị có cách nào thực hiện anh không.

    Cảm Ơn nhiều.

    ARIAL.dwg

    + Không phải a làm video này, nên em liên hệ với tác giả nhé. ( Mật khẩu : Em biết qua a Danh Công  ^^ )

     


  7. 25 phút trước, sonhv đã nói:

    em làm bên đo bốc khối lượng.tính khối lượng từ các dim trong bảng vẽ cad rồi cộng lại với nhau.bác nào viết giúp em lisp xuất các dim từ cad sang excel trong cùng 1 ô. chi tiết xem tại hình ảnh đính kèm nhé.add zalo em. 0793664104 có trả phí cho anh em giúp đỡ nhé.image.thumb.png.4e62f62e0e89076353736387355685f3.png

    image.thumb.png.a829fbd8d6e38b4e89c8800bf4de12f0.png

     

    Bạn có thể tham khảo. Nhưng mất phí nhé :))

     

     


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

    cảm ơn 2 bác nhưng máy ở công ty em, bị ẩn hết thanh công cụ cái thanh mà có cái dòng đấy cũng bị ẩn luôn, giờ muốn lôi cái thanh đấy ra không biết phải dùng lệnh gì hay vào đâu để lôi ra

    Nếu ko có vấn đề gì về phiên bản cad thì em thử cài bản Cad khác xem sao. Nhiều khi lỗi trong Cad ko biết được nguyên nhân, nên cài bản cad khác cũng là 1 ý kiến chấp nhận được.


  9. 1. Lisp liên quan gì đến file bản vẽ nên bạn ko cần đăng lên, bởi đăng lên cũng không ai làm gì .

    2. Nguyên nhân "Mất lệnh" có hàng tá nguyên nhân: 1 Số ví dụ:

    a. Lisp bị lỗi ---> Cad không load được lệnh ---> Không dùng được lisp. ( Ví dụ lisp không được đặt tên tiếng việt, đường dẫn có chứa tiếng việt... )

    b. Lisp bị lỗi ---> Cad load được nhưng không dùng được. ( Lỗi từ trong code lisp)

    c. Lỗi do virut... ( acad.fas , acaddoc.lsp ngăn cản việc load lisp).

    ---> Tùy vào từng trường hợp mà người dùng sẽ biết cách sử lý. Dĩ nhiên, muốn xử lý cũng cần có kinh nghiệm.

     


  10. + Em chào các bác. 

    Em đang gặp khó ở vấn đề xác định Text Style như sau, mong các bác cho ý kiến:

    Trong bảng Text Style em có 2 font name :

     1.  Font Name : "Arial CE"   ---> Đặt Name Text Style là "Arial_CE"

     2. Font Name : "Arial CYR "  ---> Đặt Name Text Style  là "Arial_CYR"

    ---->  Sau đó em kiểm tra DXF của 2 Text Style này bằng hàm TBLSEARCH  thì kết quả thu được mã 3 DXF đều là (3 . "arial.ttf").

    Vậy câu hỏi của em là:

    + Nếu mã 3 DXF trùng nhau, thì Cad phân biệt 2 font này kiểu gì?

    + Giả sử có 1 bản vẽ mà có Font Name = "Arial CE"  , nhưng bị đặt Name Text Style = abc..xyz   ----> Em muốn lấy tên "Arial CE" thì em phải làm thế nào ạ.

    Mong các bác giúp đỡ :)))))

     

    image.png


  11. 27 phút trước, vcdichoi đã nói:

    Em sử dụng lệnh LI trong cad 2020

    Khi chọn đối tượng và dùng lệnh LI thì hiện lên bảng như hình dưới

    Các anh/chị giúp em cách khắc phục lỗi đó ạ!

    em cảm ơn!

    + Bạn này học ở đâu được cái món đổi màu nền Command trong Cad = Black đây mà. Nghịch dại chưa, lúc lỗi rồi lại lôi lên để hỏi.

    + Từ khóa để tìm thì vào "OPtion >> Display >> Color  >> Commandline". 

    Ko sửa được nữa thì bạn nên cài lại Cad vài lần cho nhớ, lần sau đừng nghịch dại. 

    • Like 1

  12. 15 phút trước, Quốc Hữu đã nói:

    Chào các bậc cao nhân tiền bối trong Diễn đàn Autocad,

    Em tên là Quốc Hữu, hôm nay vào diễn đàn thấy các A/e trong diễn đàn chao đổi các lênh thấy hay quá em bon chen vào xem có hiểu biết được cái gì không, em năm nay 40 mua bánh chưng rồi mà chưa biết vẽ Autocad mà thấy Autocad rất phù hợp mới cv của em ngày nay.

    - Thực ra trước đây em có học AutoCad 200 nhưng lâu qua không sài quên hết, hôm nay thấy các A/e nói lệnh (PL) tọa nét đậm và lệnh vuông góc mới đường thẳng gì đấy cái này e chưa biết luôn, vậy cũng đang mầy mò tự học mong các A/e trong diễn đàn có gì gỉ giúp, hihihih.

    Thanks And you

     

    Mời bác lên Youtube gõ từ khóa : "Học Auto Cad của Hưng Del" gì gì đó. Video dạy cũng khá ổn , bác lên đấy học cho vững kiến thức cơ bản đã... KHi có kiến thức cơ bản rồi, bác

     muốn đào sâu thêm thì lên diễn đàn này trao đổi.


  13. 33 phút trước, hasonhai đã nói:

    Cám ơn bạn.

    Tôi đã đặt lolerance lại nhưng vẫn không được.

    Tôi phát hiện ra bản vẽ này các đối tượng là bản copy của 1 bản khác. rồi các bản đè chồng lên nhau. chắc là vậy nên overkill không có tác dụng phải không bạn. các object text không có tác dụng khi sử dụng overkill

    Không biết có cách nào không bạn

     

    + Nói không quá. Chứ không biết ông nào gửi cho bạn bản vẽ này !

    Nếu vẽ 1 HCN bao trọn toàn bộ bản vẽ thì nó sẽ là : (900 triệu * 1 tỷ 300 ) đơn vị.   Chiều cao 1 chữ lên đến 7 triệu đơn vị.

    ----> Muốn Overkill được thằng này. Phải đặt hệ số Tolerace = 1 triệu mới xử lý ổn thỏa.


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

    Xin chào các bạn!

    Tôi có 1 bản vẽ mà các object bị trùng lên nhau. Tôi đã thử sử dụng lệnh overkill nhưng không được

    Mong các bạn chỉ giáo giúp tôi

    Capture.PNG

    thunghiem.dwg

    + Bạn hãy tìm hiểu Tolerace là gì.

    +Link Tham khảo:  https://knowledge.autodesk.com/support/civil-3d/learn-explore/caas/CloudHelp/cloudhelp/2016/ENU/3PP-CIV-MAS-Wiley/files/GUID-A58FF4BD-2B6F-48CF-850A-7F17768F1454-htm.html

    + Chữa lỗi: Đặt Tolerace = 1000 rồi thử lại . ( Mỗi bản vẽ có con số này khác nhau , tùy theo nhu cầu người dùng )

×