Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
vietduc147258

Nhờ sửa Lisp chuyển Layer khi DIM

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

Em có lisp chuyển layer khi Dim. Nhưng khi Dim góc thì có 2 trường hợp chọn đối tượng line với trường hợp là chọn point. Với 2 lệnh tương ứng là DAN và DAN2.

Các bác giúp em gộp 2 lệnh đó thành một với. Cảm ơn các bác đã quan tâm.

(defun c:DLI ()(Command ".DIMLINEAR"	pause pause pause)	(command "._chprop"  "L" "" "LA" "DIM" "") (princ))
(defun c:DAl ()(Command ".DIMALIGNED" 	pause pause pause)	(command "._chprop"  "L" "" "LA" "DIM" "") (princ))
(defun c:DDI ()(Command ".DIMDIAMETER" 	pause pause)		(command "._chprop"  "L" "" "LA" "DIM" "") (princ))
(defun c:DRA ()(Command ".DIMRADIUS" 	pause pause)		(command "._chprop"  "L" "" "LA" "DIM" "") (princ))
(defun c:DAR ()(Command ".DIMARC" 		pause pause)		(command "._chprop"  "L" "" "LA" "DIM" "") (princ))
(defun c:DAN ()(Command ".DIMANGULAR" 	pause pause pause)	(command "._chprop"  "L" "" "LA" "DIM" "") (princ))
(defun c:DAN2()(Command ".DIMANGULAR" "" pause pause pause pause)	(command "._chprop"  "L" "" "LA" "DIM" "") (princ)) ; Dim goc lon hon 180 do
(Defun c:QD  ()(Setvar "clayer" "DIM")(Prompt "\nChon doi tuong can Dim")(Setq ch (Ssget))(command "QDIM" ch "" Pause)(command "_LayerP")(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
1 giờ trước, vietduc147258 đã nói:

Em có lisp chuyển layer khi Dim. Nhưng khi Dim góc thì có 2 trường hợp chọn đối tượng line với trường hợp là chọn point. Với 2 lệnh tương ứng là DAN và DAN2.

Các bác giúp em gộp 2 lệnh đó thành một với. Cảm ơn các bác đã quan tâm.


(defun c:DLI ()(Command ".DIMLINEAR"	pause pause pause)	(command "._chprop"  "L" "" "LA" "DIM" "") (princ))
(defun c:DAl ()(Command ".DIMALIGNED" 	pause pause pause)	(command "._chprop"  "L" "" "LA" "DIM" "") (princ))
(defun c:DDI ()(Command ".DIMDIAMETER" 	pause pause)		(command "._chprop"  "L" "" "LA" "DIM" "") (princ))
(defun c:DRA ()(Command ".DIMRADIUS" 	pause pause)		(command "._chprop"  "L" "" "LA" "DIM" "") (princ))
(defun c:DAR ()(Command ".DIMARC" 		pause pause)		(command "._chprop"  "L" "" "LA" "DIM" "") (princ))
(defun c:DAN ()(Command ".DIMANGULAR" 	pause pause pause)	(command "._chprop"  "L" "" "LA" "DIM" "") (princ))
(defun c:DAN2()(Command ".DIMANGULAR" "" pause pause pause pause)	(command "._chprop"  "L" "" "LA" "DIM" "") (princ)) ; Dim goc lon hon 180 do
(Defun c:QD  ()(Setvar "clayer" "DIM")(Prompt "\nChon doi tuong can Dim")(Setq ch (Ssget))(command "QDIM" ch "" Pause)(command "_LayerP")(Princ))

 

Bạn thử cái này xem, Nếu góc <=180 độ thì đo bình thường, lớn hơn 180 độ thì Enter thêm cái nữa.

-----------------

(defun c:DAN ( / old )
    (setq old (getvar 'clayer))
    (setvar 'clayer "DIM")
    (command ".DIMANGULAR")
    (while (= 1 (logand 1 (getvar 'cmdactive)))
        (command "\\")
    )
    (setvar 'clayer old)
    (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
1 giờ} trướ}c, tien2005 đã nói:

Bạn sử dụng lisp này, áp dụng được cho DIM, TEXT,...

http://www.lee-mac.com/layerdirector.html

Thank! Đã dùng Lisp này rồi. khá là nặng nề. Cái kia sử dụng nhẹ nhàng, đơn giản hơn. Với lại lisp của lee-mac không hỗ trợ Qick dim

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
5 phút trước, namds86 đã nói:

Bạn thử cái này xem, Nếu góc <=180 độ thì đo bình thường, lớn hơn 180 độ thì Enter thêm cái nữa.

-----------------

(defun c:DAN ( / old )
    (setq old (getvar 'clayer))
    (setvar 'clayer "DIM")
    (command ".DIMANGULAR")
    (while (= 1 (logand 1 (getvar 'cmdactive)))
        (command "\\")
    )
    (setvar 'clayer old)
    (princ)
)

Tuyệt. Cảm ơn bạn đã giúp.

  • Like 1

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

 

14 phút trước, vietduc147258 đã nói:

Thank! Đã dùng Lisp này rồi. khá là nặng nề. Cái kia sử dụng nhẹ nhàng, đơn giản hơn. Với lại lisp của lee-mac không hỗ trợ Qick dim

do Bạn chưa khai báo lệnh QuickDim cho lisp thôi

image.png.51f8d57856daa372d5ac1cbfef6419fe.png

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
5 phút trước, tien2005 đã nói:

 

do Bạn chưa khai báo lệnh QuickDim cho lisp thôi

image.png.51f8d57856daa372d5ac1cbfef6419fe.png

Đúng Lisp lee-mac có khác. Là do mình không tìm hiểu. Thank bạn đã khai sáng thêm

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
Vào lúc 6/10/2022 tại 15:22, tien2005 đã nói:

Bạn sử dụng lisp này, áp dụng được cho DIM, TEXT,...

http://www.lee-mac.com/layerdirector.html

cho em hỏi nguyên lý hoạt động, cách sửa dụng lisp này với ạ, gõ lệnh lm, ldon vs ldoff mà ko biết sử dụng sao nữa

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
26 phút trước, Nguyễn Hà Huy đã nói:

cho em hỏi nguyên lý hoạt động, cách sửa dụng lisp này với ạ, gõ lệnh lm, ldon vs ldoff mà ko biết sử dụng sao nữa

Bạn cứ gõ lệnh tạo text và tạo dim bình thường nhé. Lisp nó tự chuyển layer cho bạn

  • Vote tăng 1

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
1 giờ} trướ}c, Nguyễn Hà Huy đã nói:

cho em hỏi nguyên lý hoạt động, cách sửa dụng lisp này với ạ, gõ lệnh lm, ldon vs ldoff mà ko biết sử dụng sao nữa

Lisp này hỗ trợ text, dim, view port, xline. Hatch. Tự đổi layer theo các lệnh và layer tương ứng. Trong lisp hướng dẫn khai báo bằng tiếng anh. 

Bạn thêm dòng (c:ldon) vào cuối lisp để khi load vào dùng luôn cho tiện

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
5 giờ trước, Nguyễn Hà Huy đã nói:

Cho em hỏi khai báo như nào để nó tự động chuyển layer ạ

 

 

Vào lúc 6/10/2022 tại 16:38, tien2005 đã nói:

 

do Bạn chưa khai báo lệnh QuickDim cho lisp thôi

image.png.51f8d57856daa372d5ac1cbfef6419fe.png

 

- Bạn phải đảm bảo là lisp đã được load

- Bạn mở file lisp bằng notepad và tìm đến dòng tương ứng giống như hình rồi thêm các lệnh của Bạn vào, khai báo tên layer cần chuyển (màu, linestyle, plot,...). Mặc định là đủ dùng rồi không cần thêm. Như hình mình có thêm các lệnh về dim "[Q]DIM*,DIM*,*LEADER,HO,VE,CON,D1,DPL,HOC,VEC" và tạo ở layer "_DIM". Khi thay đổi xong thì lưu file lại và load lisp và dùng thô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
6 giờ trước, tien2005 đã nói:

 

 

- Bạn phải đảm bảo là lisp đã được load

- Bạn mở file lisp bằng notepad và tìm đến dòng tương ứng giống như hình rồi thêm các lệnh của Bạn vào, khai báo tên layer cần chuyển (màu, linestyle, plot,...). Mặc định là đủ dùng rồi không cần thêm. Như hình mình có thêm các lệnh về dim "[Q]DIM*,DIM*,*LEADER,HO,VE,CON,D1,DPL,HOC,VEC" và tạo ở layer "_DIM". Khi thay đổi xong thì lưu file lại và load lisp và dùng thôi

em cảm ơn nhiều đã khai sáng lisp này cho em

 

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ái này mình dùng lệnh:
- TEXTLAYER: gán layer "text" sau này khi tạo text mới (dtext. mtext) sẽ tự động gán sang layer "text"
- DIMLAYER" gán layer "dim" sau này dim (tất cả các lệnh dim) sẽ tự động gán sang layer "dim"

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
21 giờ trước, nh0cxip0 đã nói:

Cái này mình dùng lệnh:
- TEXTLAYER: gán layer "text" sau này khi tạo text mới (dtext. mtext) sẽ tự động gán sang layer "text"
- DIMLAYER" gán layer "dim" sau này dim (tất cả các lệnh dim) sẽ tự động gán sang layer "dim"

Có xem Thân Lê lện DIMLAYER. Nhưng thử không có tác dụng. Mình đang dùng 2016, không thấy có lệnh TEXTLAYER. Lệnh DIMLAYER có thiết lập nhưng không thấy hoạt động

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  

×