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

duongdinhdbp

Thành viên
  • Số lượng nội dung

    16
  • Đã tham gia

  • Lần ghé thăm cuối

Bài đăng được đăng bởi duongdinhdbp


  1. Hiện em đang sử dụng autocad để tạo vùng các khu vực thi công, bình thường dùng hatch nhưng sử dụng quá nhiều hatch dẫn đến bản vẽ rất nặng, em sử dụng Mpolygon để thay thế hatch nhưng có 1 vấn đề là để khoét vùng lõi cho Mpolygon thì em đang phải sử dụng phần mềm mapinfo nên công việc tương đối thủ công mất nhiều thao tác. . Rất mong được sự giúp đỡ của mọi người. em cảm ơn

     

    khoét vùng1.dwg


  2. Em sửa tay cái Mtext thì cho về bottom left nhưng trong bản vẽ có đến gần 100.000 điểm text như vậy thì vẫn phải move gốc text của 2 nhãn vào nhau  và các pl nó không chỉ hoàn toàn là đường thẳng song song, ngoài ra còn RO nhãn cho nó không che Polyline..., rơi vào khoảng 400.000 cú nhấp chuột + 400.000 lần ấn phím tắt để điều chỉnh, cực quá bác ạ, nhờ các bác chỉnh sửa lại lips giúp em với :D


  3. Em có 2 lips được bạn chia sẻ để sử dụng để đánh nhãn cho PL nhưng sau khi đánh nhãn xong thì sử dụng chỉnh sửa thủ công để gán 2 nhãn vào cùng 1 gốc, duỗi thẳng nhãn để nhãn k chạm vào pl mất quá nhiều thời gian. Vậy em đăng lên đây để phiền các bác rút gọn lại giúp em để đạt được kết quả như mong muốn ạ. Kết quả em xin gửi link ảnh và file dwg. Cảm ơn các bác
    <img src="https://i.upanh.org/2022/12/28/1111111111111111111.png" alt="1111111111111111111.png" border="0">
    https://upanh.org/image/3KhTLL
    1. code lips dsh:
    (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;"
                  "H ""%<\\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%pr1\">%"" m"
                )
              )
            )
            (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)
    )
    2. code DSH2:
    (defun c:DSH2  (/ ent par poi ss len pt)
       (if (setq ss (ssget '((0 . "LWPOLYLINE"))))
          (while (and (setq ent (ssname ss 0)) (ssdel ent ss))
             (setq par (vlax-curve-getEndParam ent)
                   poi (vlax-curve-getpointatparam ent par))
            (setq len (vlax-curve-getDistAtParam ent (vlax-curve-getEndParam ent)))
            (setq pt (vlax-curve-getPointAtDist ent (/ len 2)))
             (entmake
                (list (cons 0 "TEXT")
                      (cons 10 pt)
                      (cons 7 (getvar 'TEXTSTYLE))
                      (cons 40 (* (getvar 'DIMTXT) (getvar 'DIMSCALE)))
                      (cons 1 (strcat (rtos (caddr poi) 2 0) "/" (itoa (1+ (fix par)))))))))
       (princ))

    rut gon lips.dwg


  4. Em có sưu tầm được lips đánh cao độ, đỉnh polyline ở trên mạng nhưng text ghi ở cuối hàng, nhờ các bác giúp đỡ chỉnh lại lips giúp em để giá trị text nằm ở giữa polyline. Cảm ơn các bác
    code:

    (defun c:DSH2  (/ ent par poi ss)
       (if (setq ss (ssget '((0 . "LWPOLYLINE"))))
          (while (and (setq ent (ssname ss 0)) (ssdel ent ss))
             (setq par (vlax-curve-getEndParam ent)
                   poi (vlax-curve-getpointatparam ent par))
             (entmake
                (list (cons 0 "TEXT")
                      (cons 10 poi)
                      (cons 7 (getvar 'TEXTSTYLE))
                      (cons 40 (* (getvar 'DIMTXT) (getvar 'DIMSCALE)))
                      (cons 1 (strcat (rtos (caddr poi) 2 0) "/" (itoa (1+ (fix par)))))))))
       (princ))

    danh so hang.dwg

×