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

Lệnh offset đặc biệt

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

Bạn hỏi hay xin. Nên học - hỏi, học trước, không hiểu thì mới hỏi. Nếu chịu khó học các code ở CV khoảng 1 tuần, yêu cầu này chỉ cần sửa trong 5',

Yêu cầu đối tượng mới ở 1 layer mới không trùng với layer gốc cũng đã có trong nhiều bài khác, nếu tìm sẽ thấy

còn không thì : Xin, xin nữa, xin mã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

Bạn hỏi hay xin. Nên học - hỏi, học trước, không hiểu thì mới hỏi. Nếu chịu khó học các code ở CV khoảng 1 tuần, yêu cầu này chỉ cần sửa trong 5',

Yêu cầu đối tượng mới ở 1 layer mới không trùng với layer gốc cũng đã có trong nhiều bài khác, nếu tìm sẽ thấy

còn không thì : Xin, xin nữa, xin mãi

mong bác giúp em 1 lầ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

Mấy bác cho em hỏi có bác nào có cái list OFFSET nào có thể nhân 2 giá trị OFFSET  ko ạ. Ví Dụ OFFSET 2000 thì nó tự OFFSET 4000. Nếu được thì có thể nhập giá trị OFFSET là nhân 2, 3, ... bất kì được ko ạ. Thank mấy bác nhiều

Chúc ngày mới tốt là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
Vào lúc 2/8/2011 tại 15:36, ketxu đã nói:

Của bạn đây :

 


(defun c:oo (/ ss objlst dist entlst1 entlst2 kwrd)
(grtext -1 "Free from CADviet @ketxu")
(or #dist(setq #dist 110))
(setq dist (getdist (strcat "\nKho\U+1EA3ng c\U+00E1ch Offset : < " (rtos #dist 2 1) " >: ")))
(if dist (setq #dist dist))
(princ "\nCh\U+1ECDn c\U+00E1c \U+0111\U+1ED1i t\U+01B0\U+1EE3ng Offset :")
(setq ss (ssget '((0 . "LWPOLYLINE,LINE,ARC,CIRCLE,ELLIPSE,SPLINE"))))
(if ss
(progn
(setq objlst (mapcar 'vlax-ename->vla-object(vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))))
(initget (+ 2 4) "c k")
(setq kwrd  (getkword "\nXoa doi tuong goc hay khong [C/K] : "))
(if (null kwrd)
(setq kwrd "k")
)
(foreach obj objlst
(vla-offset obj #dist)
(setq entlst1 (cons (vlax-ename->vla-object (entlast)) entlst1)) 
(vla-offset obj (* #dist -1))
(setq entlst2 (cons (vlax-ename->vla-object (entlast)) entlst2))
(mapcar '(lambda (x) (vla-put-layer x (getvar "clayer"))) entlst1)
(mapcar '(lambda (x) (vla-put-layer x (getvar "clayer"))) entlst2)
(if (eq kwrd "c")
(vla-erase obj)
)
)
)
)
(princ)
)
 

 

 

Chú ý là nếu bước hỏi có xóa đối tượng gốc hay không, bạn có thể ấn Space (mặc định là không )

Tùng cho mình hỏi lisp này có lúc mình dùng được, có lúc cad báo Select objects:  ; error: no function definition: nil nghĩa là bị lỗi gì vậy, chỉ hộ mình được ko?
image.thumb.png.0bbe104eac98c88cfd44ff46f88afa5d.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
Vào lúc 28/8/2007 tại 08:28, ssg đã nói:

Chương trình "mini" này chắc hợp ý bạn:

 

 


(defun C:OO(/ kc kc1 e msg)
(if (<= (setq kc (getvar "OFFSETDIST")) 0) (setq kc 20))
(setq msg (strcat "\nSpecial offset command\nOffset distance <" (rtos kc) ">:"))
(if (setq kc1 (getreal msg)) (setq kc kc1))
(while (setq e (car (entsel)))
(command "offset" kc e pause "")
(command "change" "L" "" "P" "LA" (getvar "clayer") "LT" (getvar "celtype") "")
)
)
 

 

Bác có sửa giúp em sửa lại lisp lúc chọn đối tượng muốn offset thành quét một lúc chọn được nhiều đối 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
Vào lúc 2/8/2011 tại 19:46, leejang đã nói:

Em thì chỉ dùng trong khi vẽ thép. Vậy bác chỉnh giúp em để đối tượng mới sinh ra thuộc layer "THEP", và đối tượng có màu 4 được ko ạ ?

 

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

×