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

Tất cả hoạt động

Luồng cập nhật tự động luồng này     

  1. Giờ trước
  2. Htn02

    lisp offset nhiều đối tượ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) )
  3. Htn02

    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.
  1. Tải thêm hoạt động


  • Newsletter

    Want to keep up to date with all our latest news and information?

    Sign Up
×