Đến nội dung


Hình ảnh
- - - - -

nhờ các bác viết hộ em lisp offset đặc biệt này ạ


  • Please log in to reply
1 reply to this topic

#1 vuvanviet

vuvanviet

    Chưa sử dụng CAD

  • Members
  • Pip
  • 4 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 26 January 2015 - 01:43 AM

nhờ các bác viết hộ em cái lisp offset đặc biệt này ạ

em làm bên giao thông nên có yêu cầu sau:

offset từ tim đường ra 2 bên, mỗi bên 2 đường( 1 đường mép đường và 1 đường mép hè). câu lệnh đại ý như sau:

lệnh:

chọn đường cần offset:

chọn khoảng cách 1, chọn khoảng cách 2:

kết thúc lệnh(không có lựa chọn 1 hay 2 bên, mặc định là 2 bên luôn). câu lệnh có lưu giá trị để lần sau lặp lại đỡ phải nhập ạ


  • 0

#2 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5678 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 26 January 2015 - 08:46 AM

Quick code cho bạn :
;Double Double Offset 26-1-2015
(defun c:odo (/ ss)
	(grtext -1 "Free double double offset from CADviet @ketxu")
	(or #d1 (setq #d1 10))
	(or #d2 (setq #d2 20))
	(setq #d1 (cond ((getreal (strcat "D1 <" (rtos #d1) "> : ")))(#d1)))
	(setq #d2 (cond ((getreal (strcat "D2 <" (rtos #d2) "> : ")))(#d2)))
	(princ "\nSelect Objects : ")	
	(if (setq ss (ssget '((0 . "LWPOLYLINE,LINE,ARC,CIRCLE,ELLIPSE,SPLINE"))))
		(mapcar '(lambda(o)(mapcar '(lambda(s)(vla-offset o s)) (list #d1 (- #d1) #d2 (- #d2))))
			(mapcar 'vlax-ename->vla-object(vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
		)		
	)
(princ)
)
(vl-load-com)

  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC