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

Chỉnh sửa lisp

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

Nhờ các Pro giúp em chỉnh sửa lệnh Lisp sau

Lisp em đang sử dụng là dán nhãn (CAO ĐỘ/CHIỀU DÀI) của đường Pline

Nhờ các Pro giúp em chỉnh thành lệnh gán nhãn (CAO ĐỘ/ SỐ ĐỈNH PLINE)

Cảm ơn các Pro

 

 

 

(vl-load-com)
(defun c:DSH ( / js htx AcDoc Space n obj ename pr pt deriv rtx nw_obj)
  (princ "\nSelect polylines: ")
  (setq js
    (ssget
      (list
        '(0 . "*POLYLINE")
        (cons 67 (if (eq (getvar "CVPORT") 1) 1 0))
        (cons 410 (if (eq (getvar "CVPORT") 1) (getvar "CTAB") "Model"))
      )
    )
  )
  (cond
    (js
      (initget 6)
      (setq htx (getdist (getvar "VIEWCTR") (strcat "\nNhap chieu cao chu <" (rtos (getvar "TEXTSIZE")) ">: ")))
      (if htx (setvar "TEXTSIZE" htx))
      (setq
        AcDoc (vla-get-ActiveDocument (vlax-get-acad-object))
        Space
        (if (= 1 (getvar "CVPORT"))
          (vla-get-PaperSpace AcDoc)
          (vla-get-ModelSpace AcDoc)
        )
      )
      (cond
        ((null (tblsearch "LAYER" "Label Elevation"))
          (vlax-put (vla-add (vla-get-layers AcDoc) "Label Elevation") 'color 96)
        )
      )
      (repeat (setq n (sslength js))
        (setq
          obj (ssname js (setq n (1- n)))
          ename (vlax-ename->vla-object obj)
          pr (* 0.5 (vlax-curve-getEndParam ename))
          pt (vlax-curve-GetpointAtParam ename pr)
          deriv (vlax-curve-getFirstDeriv ename pr)
          rtx (- (atan (cadr deriv) (car deriv)) (angle '(0 0 0) (getvar "UCSXDIR")))
        )
        (if (or (> rtx (* pi 0.5)) (< rtx (- (* pi 0.5)))) (setq rtx (+ rtx pi)))
        (setq nw_obj
          (vla-addMtext Space
            (vlax-3d-point (setq pt (polar pt (+ rtx (* pi 0.5)) (getvar "TEXTSIZE"))))
            0.0
            (strcat
              "{\\fArial|b0|i0|c0|p34;"
              "%<\\AcObjProp Object(%<\\_ObjId "
              (itoa (vla-get-ObjectID (vlax-ename->vla-object obj)))
              ">%).Elevation \\f \"%lu2%pr0\">%""/" "%<\\AcObjProp Object(%<\\_ObjId "
              (itoa (vla-get-ObjectID (vlax-ename->vla-object obj)))
              ">%).Length \\f \"%lu2%pr2\">%"
            )
          )
        )
        (mapcar
          '(lambda (pr val)
            (vlax-put nw_obj pr val)
          )
          (list 'AttachmentPoint 'Height 'DrawingDirection 'InsertionPoint 'StyleName 'Layer 'Rotation 'BackgroundFill)
          (list 1 (getvar "TEXTSIZE") 1 pt "Standard" "Label Elevation" rtx 0)
        )
      )
    )
  )
  (prin1)
)

  • 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
6 phút trước, Minh Nghĩa đã nói:

Nhờ các Pro giúp em chỉnh sửa lệnh Lisp sau

Lisp em đang sử dụng là dán nhãn (CAO ĐỘ/CHIỀU DÀI) của đường Pline

Nhờ các Pro giúp em chỉnh thành lệnh gán nhãn (CAO ĐỘ/ SỐ ĐỈNH PLINE)

Cảm ơn các Pro

Bên topic kia bạn đã y/c rồi. Đừng nên rải nhiều như thế loảng forum

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

×