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

bkhn_2011

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

    69
  • Đã tham gia

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

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


  1. Cứ để bạn Tue viết mà ngồi ngoài nói hoài trông có vẻ thọc gậy bánh xe quá nên mình mạn phép sửa cái lisp thành như sau:

    -Tên lệnh: DBL.

    -Chọn block.

    -Chọn điểm chèn mới.

    *Đúng với block quay mọi góc độ nhưng chưa không đúng khi block bị scale (Có cách nếu tỉ lệ giửa trục x và trục y là bằng nhau). Mình chưa đưa phần tỉ lệ vào vì bị vướng như trên không nghỉ ra cách. Nhờ các bạn test giúp nếu đạt yêu cầu và chấp nhận áp dụng cho tỉ lệ điều giữa 2 phương thì mình bổ sung 1 đoạn.

     

    http://www.cadviet.com/upfiles/doiblockduy.lsp

    Bạn ơi, lisp này của bạn link bị die rồi bạn cho mình xin lại với. Mình cũng đang rất cần lisp này 


  2. Cứ đi theo đường mòn hoài mà không tới đích nên mình bỏ toàn bộ và đi theo hướng mới kết quả rất tốt, đúng cả với trường hợp block bị mirror, tỉ lệ x và y khác nhau, góc quay.

    -Tên lệnh: DBL.

    -Chọn Block cần chỉnh.

    -Chọn điểm chèn mới.

    => Lisp báo ra tên block và số lượng của block vừa chỉnh (tất nhiên là đã làm công việc chỉnh xong rồi)

    -Ưu điểm không thay đổi tên block sau khi hoàn tất công việc và không có block rác.

    -Nhược điểm: nếu block lựa chọn còn nằm trong 1 block khác nửa thì quá trình thay đổi sẽ không hoàn tất dẩn đến việc song song tồn tại block cũ và block trung gian lúc này các block đã dời điểm chèn sẽ mang tên block trung gian bao gồm tên cũ + taothem.

    -Mình đã chạy thử trên bản quy hoạch với dưới 100 block thấy ổn các bạn test thử giúp.

    http://www.cadviet.com/upfiles/doiblockok.lsp

    Mình cũng đang rất cần lisp này bạn cho mình xin nhé. Cái link kia die rồi bạn ạ. 


  3. Nếu bạn k thích kiểu Old - New thì dùng tạm cái này < search nhanh cho bạn trên mạng - K có copyright - không viết >

     

    (defun c:DLP ( / p x n ) (vl-load-com)
      (if (< 1 (setq x (strlen (setq p (strcat (strcase (getstring t "\nSpecify Prefix: ")) "*")))))
        (vlax-for l (vla-get-layers (vla-get-activedocument (vlax-get-acad-object)))
          (if (wcmatch (strcase (setq n (vla-get-name l))) p)
            (vl-catch-all-apply 'vla-put-name (list l (substr n x)))
          )
        )
      )
      (princ)
    )
    
    (defun c:DLS ( / s x n ) (vl-load-com)
      (if (< 1 (setq x (strlen (setq s (strcat "*" (strcase (getstring t "\nSpecify Suffix: ")))))))
        (vlax-for l (vla-get-layers (vla-get-activedocument (vlax-get-acad-object)))
          (if (wcmatch (strcase (setq n (vla-get-name l))) s)
            (vl-catch-all-apply 'vla-put-name (list l (substr n 1 (- (strlen n) x -1))))
          )
        )
      )
      (princ)
    )
    
    (defun c:ALP ( / p w n ) (vl-load-com)
      (setq p (getstring t "\nSpecify Prefix: ") w (strcat (strcase p) "*"))
      (vlax-for l (vla-get-layers (vla-get-activedocument (vlax-get-acad-object)))
        (if (not (wcmatch (strcase (setq n (vla-get-name l))) w))
          (vl-catch-all-apply 'vla-put-name (list l (strcat p n)))
        )
      )
      (princ)
    )
    
    (defun c:ALS ( / s w n ) (vl-load-com)
      (setq s (getstring t "\nSpecify Suffix: ") w (strcat "*" (strcase s)))
      (vlax-for l (vla-get-layers (vla-get-activedocument (vlax-get-acad-object)))
        (if (not (wcmatch (strcase (setq n (vla-get-name l))) w))
          (vl-catch-all-apply 'vla-put-name (list l (strcat n s)))
        )
      )
      (princ)
    )
    

    Có 4 thằng : thêm trước (ALP), thêm sau (ALS), xóa trước (DLP), xóa sau (D

    Anh Ketxu có gì giúp em với. Cái lisp của anh em dùng đã ngon rồi tuy nhiên không hiểu sao khi load lisp đó vào thì mỗi khi mình regen thì các chân đim nó hiện to tướng lên. http://www.cadviet.com/upfiles/3/103590_e0101031.dwg


  4. Nếu bạn k thích kiểu Old - New thì dùng tạm cái này < search nhanh cho bạn trên mạng - K có copyright - không viết >

     

    (defun c:DLP ( / p x n ) (vl-load-com)
      (if (< 1 (setq x (strlen (setq p (strcat (strcase (getstring t "\nSpecify Prefix: ")) "*")))))
        (vlax-for l (vla-get-layers (vla-get-activedocument (vlax-get-acad-object)))
          (if (wcmatch (strcase (setq n (vla-get-name l))) p)
            (vl-catch-all-apply 'vla-put-name (list l (substr n x)))
          )
        )
      )
      (princ)
    )
    
    (defun c:DLS ( / s x n ) (vl-load-com)
      (if (< 1 (setq x (strlen (setq s (strcat "*" (strcase (getstring t "\nSpecify Suffix: ")))))))
        (vlax-for l (vla-get-layers (vla-get-activedocument (vlax-get-acad-object)))
          (if (wcmatch (strcase (setq n (vla-get-name l))) s)
            (vl-catch-all-apply 'vla-put-name (list l (substr n 1 (- (strlen n) x -1))))
          )
        )
      )
      (princ)
    )
    
    (defun c:ALP ( / p w n ) (vl-load-com)
      (setq p (getstring t "\nSpecify Prefix: ") w (strcat (strcase p) "*"))
      (vlax-for l (vla-get-layers (vla-get-activedocument (vlax-get-acad-object)))
        (if (not (wcmatch (strcase (setq n (vla-get-name l))) w))
          (vl-catch-all-apply 'vla-put-name (list l (strcat p n)))
        )
      )
      (princ)
    )
    
    (defun c:ALS ( / s w n ) (vl-load-com)
      (setq s (getstring t "\nSpecify Suffix: ") w (strcat "*" (strcase s)))
      (vlax-for l (vla-get-layers (vla-get-activedocument (vlax-get-acad-object)))
        (if (not (wcmatch (strcase (setq n (vla-get-name l))) w))
          (vl-catch-all-apply 'vla-put-name (list l (strcat n s)))
        )
      )
      (princ)
    )
    

    Có 4 thằng : thêm trước (ALP), thêm sau (ALS), xóa trước (DLP), xóa sau (DLS)

     

    Đã chuẩn với những gì em cần. Cám ơn anh Ketxu nhé. Chúc anh công tác tốt và nhiệt tình giúp những anh em còn bỡ ngỡ trên diễn đàn nữa.


  5.  

    Bạn có thể dùng chính cái rename để xóa hàng loạt được mà.

     

    Ví dụ mình có các layer sau:

    ABC_Layer1

    ABC_Layer2

    ABC_Layer3

    ABC_Layer4

     

    Muốn xóa "ABC_" đi thì bạn viết như sau

    Old:ABC_*

    New:*

     

    Thì các layer trên sẽ biến thành

    Layer1

    Layer2

    Layer3

    Layer4

          ABC_LAYER_1
          ABC_LAYER_2
          ABC_LAYER_3
          ABC_LAYER_1
          ABC_LAYER_2
     
          ABC_LAYER_1
          ABC_LAYER_2
          ABC_LAYER_3
          ABC_LAYER_1
          ABC_LAYER_2
     
          ABC_LAYER_1
          ABC_LAYER_2
          ABC_LAYER_3

     

    Mình biết cách này rồi. Tuy nhiên trong một số bản vẽ còn có các layer của các Xref sẽ không xoá, hay thay tên bằng cách rename được. Nhưng nó lại đổi tên được bằng cái lisp kia của bạn. Tuy nhiên sau khi đổi tên muốn đổi lại thì lại không biết đổi kiểu gì. Vì cái lisp kia chỉ biết thêm kí tự, không biết xoá ký tự kiểu gì


  6. Mình nói rồi mà ?

    Old : A-*

    New : *

     

    Không nói là Old : A-Wall >"<

     

    Ký tự * trong cả Old và New có nghĩa là ở đấy là thằng gì cũng được

    Em đã làm được rồi cảm ơn anh. Tuy nhiên cái cách rename chỉ đổi tên được những layer có thể sử dụng. Còn các layer không thể dùng (cái layer mà nó bị mờ mờ của xref thì không thể đổi tên được). 

    Cái lisp của bạn Conghoa trên thì đổi tên được cả những layer mờ mờ đó. Bạn conghoa cho mình cách để xóa bớt những kí tự sau khi ta đã thêm vào tên của Layer nhé. 

    Cảm ơn tất cả các anh và các bạn đã giải đáp thắc mắc của mình. 


  7. Đúng rồi :)

     

     

    Bạn tham khảo link conghoa gửi kìa, nó là các ký tự đại diện. Đây cũng là lý do đặt tên trong CAD thường kèm theo tiền tố/hậu tố để xử lý hàng loạt đơn giản hơn

     

    Ví dụ của bạn, cần thêm tiền tố ABC vào tất cả tên layer :

    Old name : *

    New name :ABC *

     

    Hay cần thêm Chữ A vào tất cả layer bắt đầu bằng KT thì :

    Old name :KT*

    New name :A KT*

     

    Hay cần xóa tiền tố A- như bạn hỏi bên trên :

    Old : A-*

    New : *

     

    Ngoài ra còn nhiều áp dụng khác nếu bạn đọc kỹ ^^

     

    Và nếu  cần viết lisp thì dùng ngay lệnh -Rename sẽ đơn giản rất nhiều

     

    Tuyệt vời. Mẹo nhỏ mà công dụng thì ảo diệu thật. Cảm ơn các anh. 

    Tuy nhiên cái lệnh bỏ ký tự đi em vẫn chưa thực hiện được. 

    Ví dụ: Em có tên layer là "A-Wall" mà muốn bỏ chữ "A-" đi 

    Khi đánh : * cơ mà nó không mất đi. 

     

    Old: A-wall 

    => rename * ok. Nhưng không được. Anh hướng dẫn lại giùm em với aj


  8. ko thấy file của bạn đâu

    Cám ơn mình dùng được rồi. Lệnh này không dùng được với font Vn thì phải mình đặt tên đường là "đường tim" thi không đổi được nhưng khi đặt là "duong tim" thì lại được. 

    p/s: Nhưng đổi tên nó cứ thêm vào nên hơi bất tiện.

    Ví dụ: 

    Mình có layer là "wall" sau đó thay đổi thành "A-wall" giờ muốn thay đổi lại như ban đầu thì lại không được(Vì nó cứ thêm mãi vào đầu thôi). Đấy là giả sử mình có một layer còn nếu nhiều thì không kiểm xoát được. Có cách nào không hả bạn


  9. Vì sao không xem xét ý kiến của Ketxu nhỉ? Đơn giản, tường minh, nhanh gọn lẹ thế thì còn cần lisp làm gì?

     

    Cũng đồng ý với bạn là đơn giản tường minh thì không cần lisp nữa. Nhưng mình rename xong chỉ đổi tên từng layer một. 

    Và mình không hiểu cái wild card là gì nữa mong các bạn am hiểu giải thích rõ giúp với. 

     

    Vấn đề là mình chỉ cần thêm tiền tố hoặc hậu tố vào tên layer thôi nhé. Không cần phải thay đổi cả tên layer đâu. 


  10. Tặng bạn 2 Lisp để chỉnh sửa tên Layer (cái này mình sưu tầm được)

     

    1969_rl2.jpg

    http://www.cadviet.com/upfiles/3/1969_rl_edit_ten_layer_nhanh.lsp

     

    1969_rl2_edit_ten_layer_nhanh.jpg

    http://www.cadviet.com/upfiles/3/1969_rl2_edit_ten_layer_nhanh.lsp

    Mình đã down về mà không sử dụng được. Bạn hướng dẫn cụ thể giúp mình với nhé. 

    Sau khi gõ lệnh RL: lệnh yêu cầu thêm tiền tố. Mình thêm rồi sau đó enter thì nó chỉ báo ; "error: Automation Error. Invalid input" 

    Của bạn thì bạn thao tác thế nào. Cảm ơn

    • Vote giảm 1

  11. Để thuận tiện cho việc quản lý các layer em cần một lisp như sau mong các anh trên diễn đàn có thể viết và chỉ giáo dùm. 

    Lisp này dùng để thay đổi tên của hàng loạt các layer có trong bản vẽ. 

    Ví dụ: Trong một bản vẽ em có 20 layer khác nhau với tên là : a,b,c,d,e ................... giở em muốn đổi tên hàng loạt thành. *a, *b, *c, *d........

    - Bước một: Nhập lệnh => hỏi  cần thêm chữ gì vào các layer 

    - Bước hai: quét các layer muốn thay đổi tên. Và kết thúc lệnh. 

     

    Mong các anh nghiên cứu giúp, em rất cảm ơn.


  12. Dear all

    Có lệnh nào có thể làm thế này được không?

    Mình muốn copy cho một đối tác nào đó một phần nhỏ hay một chi tiết nào đó trong bản vẽ của mình mà mình không muốn cho họ cả bản vẽ. Giờ mình muốn chọn một nhóm đối tượng đó và chuyển nó thành một bản vẽ mới thì có thể dùng lệnh gì được nhỉ ! Mình có xem một anh ở công ty thao tác mà thấy thích quá mà không mò được lệnh đó thế nào. Anh em giúp mình với


  13. Cám ơn bác nhiều nhé, rất chi tiết, em đã làm được rồi. lúc đầu thì cái chữ CN đó nó quay ngoắt xuống dưới, nhưng theo cấu trúc bác đưa ra, em sửa A=0 thành R=0. thế là nó chạy dọc theo đường thằng.

    Một lần nữa cám ơn bác nhé.

     

    ANh cho em hỏi chút nhé. Giờ em muón cái chữ text của mình nó to lên hay chiều dài nét nó dài ra thì làm thế nào. Vì vẽ mỗi một bản vẽ mình sẽ phải vẽ ở nhiều tỉ lện khác nhau. Nếu vậy có phải là em sẽ phải tạo từng đó loại đường phải không.


  14. Các bạn rành về vấn đề này xin chỉ giáo cho mình.

    - Chẳng là mấy hôm nay mình Xref hoài mà không được, Bản vẽ mình muốn xref vào nó load được 99% sau đó thì đứng im lại rồi đơ luôn không xref được nữa. Mình có hỏi vài người thì có nhiều ý kiến trái chiều nhau: người thì cho là bản vẽ nặng quá, người thì bảo bị lỗi. Vậy mong bạn nào đã gặp trường hợp giống của mình chỉ giáo cho mình với.

    - Cái này là ý kiến chủ quan của mình thôi nhé, có thể là không đúng, hình như là bản vẽ nào mà cái tham biến "use overall scale of" mà lớn thì bản vẽ nó bị nặng lên thì phải, một bản vẽ của mình không hiểu sao nặng tới 7Mb (cái use overall scale of đặt ở 300) nhưng khi mình điều chỉnh cái "use overall scale of" về 15 hoặc 50 thì bản vẽ chỉ còn không dưới 1Mb thế mới lạ. Và khi đó mình xref ngon lành, các bạn cho ý kiến nhé.


  15. Cảm ơn bạn đã quan tâm. Mình cũng đã thử lại với Cad2004. Đúng là Xref bình thường. Trước mắt chắc lại phải xài tạm 2004 vậy vì tiến độ gấp quá.

    Tuy nhiên, nếu bạn nào quan tâm giúp cho mình tại sao Cad2008 hoặc 2010 lại không Xref được thì tốt quá! Mình dùng 2008 quen rồi nên quay lại 2004 hơi lạ lẫm.

    Thanks!

     

    Cad của mình giờ cũng bị hiện tượng giống của bạn. Mình không biết phải làm sao, bạn đã fix được lỗi kia chưa có gì chỉ giúp mình với.


  16. Không phải các bạn ah. Mình mô tả lại khó khăn của mình nhé! Ví dụ khi mình gõ lệnh "line" chẳng hạn. Khi vẽ thì tay trái mình gõ lệnh tay phải di chuột tới vị trí cần vẽ. (làm đồng thời) nhưng do bị lỗi đó nên là gõ xong phát di dấu cộng thì nó không di. Nên khó chịu lắm.


  17. Mình bị một cái lỗi này khá khó chịu mỗi khi thực hiện vẽ cad, anh em nào gặp rồi chỉ giúp mình nhé. Mỗi khi mình gõ một lệnh xong thì chuột bị dừng một tẹo, khoảng chưa tới 1s đâu. Nhưng nó làm mình chiển khai vẽ chậm đi một nhịp. Ví dụ bình thường mình vừa gõ lệnh line thì mình đã vừa di chuột tới điểm cần bắt rồi. Nhưng mình bị lỗi này nên mình không làm thế được nữa, lại phải đợi một tý, nếu không thì bị lỡ nhịp gây ra sự khó chịu. Lỗi này có khi hiếm gặp, nhưng anh em nào gặp rồi chỉnh mình cái nhé. !


  18. dEAR ALL MEMBER AND ANHVANYEU EM

    - Tình hình là mình đã khắc phục được rồi nhé! Chắc là tại máy mình bị lỗi cad nên mới vậy, mình cài lại thì ok rồi. Không còn hiện tượng nó bắt yêu cầu recover nữa. Thanks

    - Thứ 2 file duôi bka đúng là mỗi lần mở cad nó đều xuất hiện. Nó vô hại và có ích. Tuy hơi mất diện tích tý


  19. Hiện tại mình đang vẽ bản vẽ về mạch điện (1 người gửi cho mình làm). Nhưng trong lúc mình làm thì nó làm sao mà cứ yêu cầu mình recover lại. Thế là phải recover và làm tiếp, nhưng nó vẫn cứ bắt recover tiếp và thế là mình có tới cả chục cái bản vẽ Recover như vậy. Ví dụ như a.dwg-_ecover(01), a.dwg_recover(02) ... rất khó chịu và mất thời gian. Mọi người cho mình hỏi là thế là lỗi do bản cad đó hay do card của mình bị lỗi vậy.

    Còn một cái nữa là khi mình vẽ thì nó luôn tạo ra một file có đuối bak, file này mình chỉnh thành dwg thì ok, nhưng khi chỉnh xong vẽ nó lại tạo ra bản vẽ có đuôi như thế. Nguyên nhân do đâu, anh em giúp mình nhé


  20. Em lên diễn đàn đọc thì thấy các anh các chị cứ bàn thảo về thanh công cụ EXPRESS rất nhiều, nhưng tìm mãi trong list thanh công cụ của mình mà không thấy.

    http://www.mediafire.com/i/?4z2r2b5r4854s83

    Các anh các chị chỉ dẫn giúp em là cad em bị làm sao hay thanh này nó ẩn ở đâu với ạ. Em dùng cad2007 ah. Cảm ơn các anh các chị trước.

×