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

SẮP XẾP CÁC POINTS THÀNH ĐƯỜNG THẲNG

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

 

Nhờ ACE diễn đàn giúp đỡ

Tình hình là mình có các điểm Points đang có các tung độ y khác nhau, nhờ ACE giúp làm sao quét chọn tập hợp các điểm đó thì các Points đó sắp xếp thành đường thẳng. Hoành độ của các điểm points đó không thay đổi. Xin cảm ơn!

SAP XEP CAC POINTS.dwg

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

Lisp có sẵn chỉ chỉnh lại 1 chút. Lisp gửi đến bạn, lệnh là GID

(defun c:gid (/ ss acadobj doc ent_lst ss po_og Y_og po_10 po_n eng)
    (defun *error* (msg)
        (and doc (_EndUndo doc))
        (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
            (princ (strcat "\n** Error: " msg " **"))
        )
        (princ)
    )
    (defun _StartUndo (doc) (vla-StartUndoMark doc))
    (defun _EndUndo (doc)
        (if (= 8 (logand 8 (getvar 'UNDOCTL)))
            (vla-EndUndomark doc)
        )
    )
    (setq acadobj (vlax-get-acad-object)
          doc     (vla-get-ActiveDocument acadobj)
    )
    (_StartUndo doc)
    (acet-sysvar-set (list "cmdecho" 0 "osmode" 0))
    (command "_ucs" "w")
    (setq ss (ssget '((0 . "POINT"))))
    (if (null ss)
        (progn (princ "\nNo objects selected.") (exit))
    )
    (setq ent_lst (acet-ss-to-list ss))
    (setq po_og (getpoint "\nPick 1 \U+0111i\U+1EC3m \U+0111\U+1EC3 l\U+1EA5y tung \U+0111\U+1ED9 Y:"))
    (setq Y_og (caDr po_og)) 
    (foreach x ent_lst
        (setq eng   (entget x)
              po_10 (acet-dxf 10 eng)
              po_n  (list (car po_10) Y_og (caddr po_10))
        )
        (entmod (subst (cons 10 po_n) (assoc 10 eng) eng))
        (entupd x)
    )   
    (ACET-SYSVAR-RESTORE)
    (command "_ucs" "P")
    (_EndUndo doc)
    (princ)
    (princ "\nOk")    
)

 

  • 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

Đây nhé:

(defun c:xep_point ( / E  e1 P1 P10 SS Y)
  (setq ss (acet-ss-to-list(ssget '((0 . "POINT"))))
        ss (mapcar '(lambda (e) (entget e)) ss)
        e1 (car ss)
        p1 (cdr (assoc 10 e1))
        y (nth 1 p1)
        )
  (foreach e ss
    (progn
      (setq p10 (cdr (assoc 10 e))
            p10 (list (nth 0 p10) y (nth 2 p10))
            )
      (setq e (subst (cons 10 p10) (assoc 10 e) e))
      (entmod e)
      )
    )
  )
 

  • 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

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

×