Tất cả hoạt động
Luồng cập nhật tự động luồng này
- Giờ trước
-
dhnoionggiopanasonic gia nhập cộng đồng
-
không gửi được tệp nên e xin phép để lisp ở đây ạ (defun c:OM ( / ss i obj dis actdoc curLay rad cen cenvar newRad before entnew sidept) (vl-load-com) (setq actdoc (vla-get-ActiveDocument (vlax-get-acad-object))) (setq curLay (getvar "clayer")) (setq ss (ssget '((0 . "LWPOLYLINE,CIRCLE")))) (if ss (progn (setq dis (getreal "\nNhập khoảng cách offset (âm = vào trong, dương = ra ngoài): ")) (if dis (progn (setq i 0) (repeat (sslength ss) (setq obj (ssname ss i)) (setq vobj (vlax-ename->vla-object obj)) (setq before (entlast)) (cond ;; --- Nếu là Polyline --- ((= (vla-get-ObjectName vobj) "AcDbPolyline") ;; điểm xác định hướng offset (setq sidept (if (>= dis 0) (polar (vlax-curve-getpointatparam vobj 0) pi (abs dis)) ; ra ngoài (polar (vlax-curve-getpointatparam vobj 0) 0 (abs dis)) ; vào trong ) ) (command "_.OFFSET" (abs dis) obj sidept "") ) ;; --- Nếu là Circle --- ((= (vla-get-ObjectName vobj) "AcDbCircle") (setq cen (vlax-get vobj 'Center)) (setq rad (vlax-get vobj 'Radius)) (setq newRad (+ rad dis)) (if (> newRad 0) (progn (setq cenvar (vlax-3d-point cen)) (setq newCircle (vla-addCircle (vla-get-ModelSpace actdoc) cenvar newRad)) (vla-put-Layer newCircle curLay) (vla-put-Color newCircle acByLayer) ) (prompt "\nBán kính mới không hợp lệ (<=0), bỏ qua.") ) ) ) ;; đổi layer & màu đối tượng mới về layer hiện hành + ByLayer (setq entnew (entlast)) (while (and entnew (/= entnew before)) (setq ed (entget entnew)) (setq ed (subst (cons 8 curLay) (assoc 8 ed) ed)) ; về layer hiện hành (setq ed (subst (cons 62 256) (assoc 62 ed) ed)) ; màu ByLayer (entmod ed) (setq entnew (entnext entnew)) ) (setq i (1+ i)) ) ) ) ) ) (princ) )
-
Htn02 bắt đầu sau lisp offset nhiều đối tượng
-
Chào các bác! Mong các bác chỉnh sửa hoặc giúp e lisp offset nhiều đối tượng với ạ. - Có thể chọn nhiều đối tượng bao gồm cả Pline, circle,... - nhập dương thì offset ra ngoài, âm thì offset vào trong - Sử dụng layer và màu theo layer hiện hành. Em cảm ơn ạ, e có nhờ thằng GPT viết nhưng với pline nó không xác định được bên ngoài và bên trong.
