Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Đăng nhập để thực hiện theo  
pdhuyxn2

[Yeucau] Lisp Chỉnh Nét Đứt Trong Cad

Các bài được khuyến nghị

Nhờ Các Bác Trên Diễn Đàn Viết giúp cho

lisp Thay đổi giá trị khoảng cách của nét đứt (linetype) :

 

a) Thay đổi giá trị với nét đứt được chọn.

b) Thay đổi giá trị khoảng cách nét đứt của toàn bản vẽ mà ta chọn vào nó (VD chọn vào nét hiddn  khi thay đổi K/C thì toàn bộ nét hiddn của toàn bản vẽ được thay đổi K/C và các nét khác vần giữ nguyên) .

Cám Ơn Các Bác!

Chỉnh sửa theo pdhuyxn2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

 

 

  • Members
  • bullet_black.pngbullet_black.png
  • 28 Bài viết
Điểm đánh giá: -2(bình thường)

 

 

Đã gửi Hôm qua, 10:04 AM

 

Nhờ Các Bác Trên Diễn Đàn Viết Giúp Cho Em

lisp Thay đổi giá trị khoảng cách của nét đứt (linetype) :[/size]

Lisp sử dụng như sau:

a) Thay đổi giá trị với nét đứt được chọn thì nét đứt có thể co hoặc giãn khoảng cách nét đứt được chọn đó.[/size]

B) Thay đổi giá trị khoảng cách nét đứt của 1 nét chọn thì toàn bản vẽ mà có nét đó [/size] có thể có hoặc giãn khoảng cách[/size]  (VD chọn vào nét hiddn  khi thay đổi K/C thì toàn bộ nét hiddn của toàn bản vẽ được thay đổi K/C và các nét khác vần giữ nguyên) .[/size]

Cám Ơn Các Bác![/size]

 

Thử cái này xem:

 

(defun c:cls  (/ ent i lsc lty obj ss)

 (vl-load-com)

 (if (setq ss (ssget "_+.:E:S" '((0 . "*LINE,ARC,CIRCLE,ELLIPSE"))))

  (progn (setq ent (ssname ss 0)

               obj (vlax-ename->vla-object ent)

               lty (vla-get-linetype obj)

               lsc (vla-get-linetypescale obj))

         (setq lsc (cond ((getreal (strcat "\nLinetype-Scale <" (rtos lsc 2 2) ">: ")))

                         (lsc)))

         (if (setq ss (ssget "_X" (list (cons 0 "*LINE,ARC,CIRCLE,ELLIPSE") (cons 6 lty))))

          (repeat (setq i (sslength ss))

           (setq ent (ssname ss (setq i (1- i)))

                 obj (vlax-ename->vla-object ent))

           (vla-put-linetypescale obj lsc)))))

 (princ))

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Cám ơn Bác đã giúp đỡ.


phần   B) oke rồi Bác ạ


Bác bổ sung cho em thêm 1 lệnh nữa 


Trong bản vẽ có nhiều đượng hiddln 


a) Thay đổi giá trị với nét đứt được chọn (được qét) thì nét đứt có thể co hoặc giãn khoảng cách nét đứt được chọn đó.


Em hay dùng Ctrl +1 sau đó chọn nét cần chỉnh và vào lineType cale để chỉnh co giãn khoảng cách nhưng nó nhiều thao tác quá. Nhờ Các Bác giúp đỡ bằng Lisp để đơn giản hóa và cũng thuận tiện hơn trong công Việc Mong các bác Giúp đỡ với...


Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Có rất nhiều cách để thực hiện theo yêu cầu của bạn mà ko cần sự hỗ trợ của lisp  chứ nhỉ. Mình đa số dùng cách này.

1. Chọn nhiều đối tượng bằng cách sử dụng lệnh "Fi" ... Dựa và lệnh này, bạn lọc ra được loại đường cần thay đổi Scale nét .

 

2. Nếu bạn đa số vẽ trên Model và in trên Layout thì nên chỉnh thông số qua hộp thoại "Line Type". Gõ lệnh LineType là ra. Chỉnh thông số Global Scale Factor , cho giá trị 5. bạn in ra thì tất cả các nét thuộc loại nào đều in ra ngon lành hết :)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Cám ơn Bạn! Có nhiều cách giãn khoảng cách nét đứt, nhưng dùng lisp sẽ giảm bớt được các thao tác và nhanh hơn Bạn Ạ.


Như vậy Mình mới nhờ Các Bác giỏi về Lisp giúp đỡ Mình.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Thấy bạn mất công cả tuần xóa đi, post lại mấy lần. Sao không bỏ thời gian nghiên cứu 1 tý về LISP (nhanh thì 1h lâu thì 1 ngày) có thể làm được lệnh thế này: (defun c:tt nil (command "_.change" (ssget) "" "P" "S"))

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

Đăng nhập để thực hiện theo  

×