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

Sửa code lisp!

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

Nhờ các Anh trên diễn đàn kiểm tra giúp code này lỗi ở chỗ nào ạ?

(defun WTXT_M(TXT / STY D H1 H2 WF H)
(setq STY (GETVAR "textstyle"))
(setq D (TBLSEARCH "style" STY))
(setq H1 (CDR (ASSOC 40 D)))
(setq H2 (CDR (ASSOC 42 D)))
(setq WF (CDR (ASSOC 41 D)))
(setq H H1)
)

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
3 giờ trước, nhunhapro123 đã nói:

Nhờ các Anh trên diễn đàn kiểm tra giúp code này lỗi ở chỗ nào ạ?

(defun WTXT_M(TXT / STY D H1 H2 WF H)
(setq STY (GETVAR "textstyle"))
(setq D (TBLSEARCH "style" STY))
(setq H1 (CDR (ASSOC 40 D)))
(setq H2 (CDR (ASSOC 42 D)))
(setq WF (CDR (ASSOC 41 D)))
(setq H H1)
)

Biến này "TXT" đưa về hàm con làm gì??? không thấy sử dụng

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

Mình có sưu tầm được code lisp của Lee-mac về tính diện tích. Mình muốn thay đổi cách chọn đối tượng tính diện tích bằng cách pick vào trong hình cần tính diện tích. Các Anh em trên diễn đàn có thể sửa giùm được không ạ?

(defun c:A2F ( / *error* _startundo _endundo _objectid acdoc acsel count field format pt )

    (setq format "%lu2%pr3%ct8[1e-006]") ;; Field Formatting

    (defun *error* ( msg )
        (if acdoc (_endundo acdoc))
        (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
            (princ (strcat "\n** Error: " msg " **")))
        (princ)
    )

    (defun _startundo ( doc )
        (_endundo doc)
        (vla-StartUndoMark doc)
    );;;;

    (defun _endundo ( doc )
        (while (= 8 (logand 8 (getvar 'UNDOCTL)));;;Hoac (getvar "UNDOCTL")
            (vla-EndUndoMark doc)
        )
    );;;;;;;;het _endundo

    (setq acdoc (vla-get-activedocument (vlax-get-acad-object)))
    (setq _objectid
        (eval
            (list 'lambda '( obj )
                (if
                    (and
                        (vl-string-search "64" (getenv "PROCESSOR_ARCHITECTURE"))
                        (vlax-method-applicable-p (vla-get-utility acdoc) 'getobjectidstring)
                    )
                    (list 'vla-getobjectidstring (vla-get-utility acdoc) 'obj ':vlax-false)
                   '(itoa (vla-get-objectid obj))
                )
            )
        )
    )

    (if
        (and
            (ssget '((0 . "ARC,CIRCLE,ELLIPSE,HATCH,*POLYLINE,REGION,SPLINE")))
            (setq pt (getpoint "\nPick Point for Field: "))
        );;;het and
        (progn
            (setq acsel (vla-get-activeselectionset acdoc)
                  count (vla-get-count acsel)
                  field (if (< 1 count) "%<\\AcExpr " "")
            )
            (_startundo acdoc)
            (vlax-for obj acsel
                (setq field (strcat field "%<\\AcObjProp Object(%<\\_ObjId " (_objectid obj) ">%).Area>% + "))
            )
            (vla-delete acsel)
            (vla-AddmText
                (vlax-get-property acdoc (if (= 1 (getvar 'CVPORT)) 'paperspace 'modelspace))
                (vlax-3D-point (trans pt 1 0))
                0.0
                (strcat (substr field 1 (- (strlen field) (if (< 1 count) 3 5))) " \\f \"" format "\">%")
            );;;Het thiet dat Text
            (_endundo acdoc)
        )
    );;;;het if
    (princ)
)
(vl-load-com)
(princ)

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
Vào lúc 8/4/2019 tại 09:15, nhunhapro123 đã nói:

Mình có sưu tầm được code lisp của Lee-mac về tính diện tích. Mình muốn thay đổi cách chọn đối tượng tính diện tích bằng cách pick vào trong hình cần tính diện tích. Các Anh em trên diễn đàn có thể sửa giùm được không ạ?

+ Thay chọn đối tượng  ---> pick vào hình là 2 thủ thuật hoàn toàn khác nhau. Thay vì bạn mất thời gian đợi người sửa thì tại sao bạn không tìm kiếm trên diễn đàn, lisp loại này có cả mớ !

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  

×