duongdinhdbp
-
Số lượng nội dung
16 -
Đã tham gia
-
Lần ghé thăm cuối
Bài đăng được đăng bởi duongdinhdbp
-
-
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
-
Em chạy đc rồi ạ, vẫn phải chỉnh tay nhiều do các đường PL nó xiên xẹo nhưng không đòi hỏi được thêm gì nữa rồi. Cảm ơn bác đã giúp đỡ
-
À chỉnh tay đc bác ạ, nó khớp rồi. Xin cảm ơn bác rất nhiều ạ
-
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
-
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)) -
Cảm ơn bác nhiều. Chúc bác ngày tốt lành.
-
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))
Xin lisp tạo vũng lõi của vùng Mpolygon.
trong AutoLisp
Đã đăng · Trả lời báo cáo
em đã điều chỉnh bản vẽ về cad 2007, anh xem giúp em. cảm ơn anh