Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
Dinh Tu Nguyen

Nhờ tạo lisp tự động vẽ pline theo điểm, block, text có sẵn

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

Chào các bác!

Bản vẽ của em đã có sẵn block (hoặc text) nhờ các bác làm lisp tự động vẽ đường pline nối các đối tượng theo tùy chọn của mình: trái-phải, phải-trái, trên-dưới, dưới-trên

Em xin cảm ơn!

2.PNG

1.PNG

  • Vote giảm 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
2 giờ trước, Dinh Tu Nguyen đã nói:

Chào các bác!

Bản vẽ của em đã có sẵn block (hoặc text) nhờ các bác làm lisp tự động vẽ đường pline nối các đối tượng theo tùy chọn của mình: trái-phải, phải-trái, trên-dưới, dưới-trên

Em xin cảm ơn!

2.PNG

1.PNG

Inbox zalo 0976379894 nhé bạ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

Lisp của bạn đây, lệnh là AL9

;;; Lisp add lwpolyline promt insertpoint of texts blocks === by Trân Thiêp 05/2020
(defun DXF (code en) (cdr (assoc code (entget en))))
(defun TD:Text (ent / X11)
    (setq Ma10 (dxf 10 ent))
    (setq Ma11 (dxf 11 ent))
    (setq X11 (car Ma11))
    (setq Ma71 (dxf 71 ent))
    (setq Ma72 (dxf 72 ent))
    (if (or (and (= Ma71 0) (= Ma72 0) (= X11 0))
            (and (= Ma71 0) (= Ma72 3))
            (and (= Ma71 0) (= Ma72 5))
        )
        Ma10
        Ma11
    )
)
;;;=================================================
(defun c:al9 (/ doc ss entlst lstpo po)
    (defun *error* (msg)
        (and doc (_EndUndo doc))
        (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
            (princ (strcat "\n** Error: " msg " **"))
        )
        (princ)
    )
    (defun _EndUndo (doc)
        (if (= 8 (logand 8 (getvar 'UNDOCTL)))
            (vla-EndUndomark doc)
        )
    )
    (acet-sysvar-set '("cmdecho" 0 "osmode" 0))
    (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
    (vla-StartUndoMark doc)
    (command "_ucs" "w")
    (prompt
        "\nCh\U+1ECDn t\U+1EADp h\U+1EE3p các text, block b\U+1EB1ng ph\U+01B0\U+01A1ng th\U+1EE9c FENC:"
    )
    (setq lstpo nil)
    (if (setq ss (ssget "F" (ACET-UI-FENCE-SELECT) '((0 . "TEXT,INSERT"))))
        (progn (setq entlst (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
               (foreach ent entlst
                   (cond ((= (dxf 0 ent) "TEXT") (setq po (TD:Text ent)))
                         ((= (dxf 0 ent) "INSERT") (setq po (dxf 10 ent)))
                   )
                   (setq lstpo (cons po lstpo))
               )
               (acet-lwpline-make (list lstpo))
        )
        (prompt "\nCh\U+01B0a ch\U+1ECDn t\U+1EADp h\U+1EE3p texts, blocks")
    )
    (acet-sysvar-restore)
    (command "_ucs" "P")
    (_EndUndo doc)
    (princ "\nOk")
)

Chúc bạn vui.

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
Đăng nhập để thực hiện theo  

×