divine kai
-
Số lượng nội dung
83 -
Đã tham gia
-
Lần ghé thăm cuối
Bài đăng được đăng bởi divine kai
-
-
2 phút trước, Duong Nhat Duy đã nói:Text luôn ở tâm hatch mà bạn, còn tâm hatch nó ở bên ngoài hatch là do hatch ko phải là đa giác lồi, cái này chấp nhận thôi.
Còn hatch ko có điểm đặt và lisp ko tạo ra text thì mình ko rõ, bạn thử gửi trường hợp cụ thể lên mình xem.
cái kia thì em sửa tay đc ạ còn cái trường hợp nhiều mảng hatch chung một điểm point ntn này anh thì nó chỉ tạo 1 text trong khi đó có rất nhiều mảng hatch có trường hợp : 3-7 mảng
-
mình cảm ơn bạn rất nhiều, có vài trường hợp mà text nó tạo ra ngoài vùng tại vì tâm của hatch nó nằm ngoài và một vài trường hợp nó không có điểm đặt hatch thì không tạo text có cách nào khắc phục không ạ...
-
2 phút trước, Duong Nhat Duy đã nói:Cái này mình đoán là bạn dùng text đó để phân loại đất, nữa là đỡ đc 1 bước rải text thủ công khi cần điền diện tích.
Thôi thì mình cứ gửi lisp điền diện tích lên hatch luôn, còn mục đích bạn lấy text đó làm gì thì làm.
bạn có thể sửa giúp mình là điền tên layer lên hatch không vì cái mình cần là tên layer ý...mình xin cảm ơn
-
5 phút trước, divine kai đã nói:Lisp em mong muốn có được là em hiện từng loại quy hoạch, nhập mã lệnh sau đó quyets chọn nhiều đối tượng >> enter kết quả sẽ tạo ra các text là tên của layer hatch đó, nằm trên vùng quy hoạch, điểm đặt text ở giữa vùng quy hoạch ạ
-
22 phút trước, duy782006 đã nói:Câu hỏi chưa có rỏ nên có gấp cũng chờ tới tết.
-Bảng cad đưa kèm theo chưa có đủ các loại ký hiệu đất. Nếu gặp hatch khác thì làm nào?
-Có 2 loại đất có cùng ký hiệu hatch, dựa vào gì để biết cái nào là chữ gì.
-Dựa theo layer thì có chắc là bản nào cũng đúng layer không?
Khi nào trả lời đủ hết mà không còn yếu tố bí ẩn thì may ra có người sẽ viết lisp cho bạn.
cảm ơn anh đã góp ý
- em sẽ đổi tên layer của từng hatch theo bảng layer kí hiệu phía bên phải, ví dụ như hatch giáo dục thì em sẽ đổi tên layer theo tên bẻng mô tả
nên gặp hatch khác thì em cũng sẽ đổi tên lại ạ.
-text em tạo sẽ dựa vào tên layer nên dù loại hatch có cùng kí hiêu như nhau thì tên layer sẽ khác nhau
-bản cad nào em cũng sẽ đổi tên tất cả loại hatch theo đúng bảng mô tả của nó
vì em không hiểu nhiều về lisp nên k biết nhân tố bí ẩn là gì ạ mong anh chỉ bảo
-
Em có sưu tầm một lisp trên diễn đàn xin các anh giúp em sửa lại một tý ạ:
là lisp chọn vùng hatch rồi tạo text trên vùng hatch đó như yêu cầu trên của em ạ, mong các anh giúp thật sự thì em rất cần ạ....( kết quả cho ra không cần có diện tích ạ, em chỉ cần có các text đặt trên từng mảng quy hoạch là đc )
-
em cảm ơn
-
16 phút trước, Biet ve CAD đã nói:Block của bạn là block thuôc tính, giờ chỉ cần viết lisp nối 2 thuộc tính I "." GDx với nhau rồi chèn ra các text là được
Mình có lisp tạo danh mục bản vẽ này, trong trường hợp của bạn coi như 2 thuộc tính block bạn cần tạo danh mục
Sau đó dùng tiếp chức năng nối text của lisp
video:
Link diễn đàn:
https://www.cadviet.com/forum/topic/176725-lisp-tạo-nhanh-danh-mục-bản-vẽ/
em không hiểu y lắm
-
1 phút trước, congviet đã nói:Nối trong excel được ko bạn hay nhất thiết phải nối trong cad?
cái mình cần là dữ liệu cad nên nếu bên excel thì không được bạn
-
9 phút trước, Doan Nguyen Van đã nói:Có 1 cách là sau khi burst thì sử dụng lisp nối text, lọc text trong vòng tròn và nối với nhau
Em lọc ra được như thế này rồi anh, có cách nào nôi chúng lại với nhau không, kết quả em cần là i.gdx... giữa hai cái này có dấu . ạ
-
hello mọi người, em làm quy hoạch xây dựng có các block như trong file cad giờ em muốn phá block này là lấy thông tin bên trong là I.GDx
em đã thử dùng lệnh burst nhưng text lại bị phá là thành riêng lẻ là I vs GDx riêng lẻ, có cách nào hoặc lisp nào có thể giúp em lấy đc cả hai thông tin này cùng một text không ạ, ví dụ là I.20, i.03... em xin cảm ơn
em gửi file: Drawing3_2007.dwg
-
1 phút trước, congviet đã nói:Có thể do Excel hoặc Autocad.
cho mình hỏi bạn sài cad vs excel bao nhiêu vậy ạ
-
-
Xin chào mọi người, hiện tại em muốn lấy file excel của thuộc tính OLE trong autocad, bình thường thì em đều lấy được nhưng có vài file nó lại báo lỗi này và không thể mở file excel, cho em hỏi sửa bằng cách nào ạ
em gửi file cad ạ
-
có ai có thể sửa giúp em không
-
Mọi người ơi, có thể giúp em sửa cái lisp thêm trường hợp các đường polyline khép kín được không ạ, có nhưng trường hợp thì nó khép bao quanh nhưng có vài trường hợp nó lại thành từng khúc, em xin cảm ơn
Em xin gửi lại lisp, bản vẽ ạ
-
59 phút trước, huunhantvxdts đã nói:Mình có viết mấy lisp về quy hoạch (theo đặt hàng) nếu bạn cần có thể trao đổi cụ thể để được lisp phục vụ tốt cho công việc liên hệ mình
em là sinh viên thực tập nên không có điều kiện đó đâu anh, dù sao em cũng cảm ơn..
-
3 giờ trước, Doan Nguyen Van đã nói:Bạn dùng thử lisp này xem, chưa test hết các trường hợp, mới đầu dùng ok
(vl-load-com) (defun c:xt (/ ss lstl ent ss1 lst lst2 en en2 en3 str) (setq ss (ssget '((0 . "MTEXT")))) (command "_-OVERKILL" ss "" "D") (setq ss1 (ssadd) ent (entlast)) (setq qa (getvar "QAFLAGS")) (setvar "QAFLAGS" 1) (command "._explode" ss "" ) (setvar "QAFLAGS" qa) (while (setq ent (entnext ent)) (setq ss1 (ssadd ent ss1))) (setq ss1 (acet-ss-to-list ss1)) (setq ss1 (vl-sort ss1 '(lambda (x y) (cond ( (= (cadr (cdr (assoc 10 (entget x)))) (cadr (cdr (assoc 10 (entget y)))) ) (< (car (cdr (assoc 10 (entget x)))) (car (cdr (assoc 10 (entget y)))))) ((> (cadr (cdr (assoc 10 (entget x)))) (cadr (cdr (assoc 10 (entget y)))))) )))) (while (setq en (car ss1)) (setq ss1 (cdr ss1)) (setq lst2 (list en)) (while (and (setq en2 (car ss1)) (= (cadr (cdr (assoc 10 (entget en)))) (cadr (cdr (assoc 10 (entget en2)))) ) ) (setq ss1 (cdr ss1)) (setq lst2 (append lst2 (list en2))) ) (if (> (length lst2) 1) (progn (setq str "") (mapcar '(lambda (x) (setq str (strcat str (cdr (assoc 1 (entget x)))))) lst2) (setq en3 (car lst2)) (mapcar '(lambda (x) (entdel x) ) (cdr lst2)) (entmod (subst (cons 1 str) (assoc 1 (entget en3)) (entget en3))) ) ) ) (princ) )
em cảm ơn anh nhiều, lisp sài rất tốt
-
Em xin chào mấy anh, hiện tại em có bản cad quy hoạch, có rất nhiều loại quy hoạch, giờ em muốn tạo thông tin cho từng loại quy hoạch, ví dụ như nếu vùng hatch là loại quy hoạch nào thì sẽ gán loại quy hoạch đó như ví dụ em có tạo trong file, vì nó nhiều vùng và sợ bị sót nên làm thủ công không khả thi lắm ạ, mong mọi người giúp em, em cảm ơn ......(đây là file ạ)
-
3 giờ trước, Duong Nhat Duy đã nói:Lisp của cụ Lê Mác đúng là không dùng cho Mtext có xuống dòng (vẫn dùng được mà dùng xong bị thành 1 dòng). Bạn thông cảm, ko phải lisp của mình hề hề.
Vậy bạn còn ví dụ nào mà Mtext 1 dòng, dùng lisp UFMT, sau đó X mà text bị rời rạc ko đưa mình xem.
mình không có trường hợp đó....
-
Vào lúc 12/9/2019 tại 15:17, divine kai đã nói:Vào lúc 17/9/2019 tại 13:57, Duong Nhat Duy đã nói:Bạn đưa bản vẽ cụ thể lên đây mình xem, lisp mình lấy của cụ Lê Mác nên cũng ko rõ lắm :)
em gửi anh dữ liệu
em có gửi ở phiá trên đó anh
-
Vào lúc 10/9/2019 tại 09:16, Doan Nguyen Van đã nói:nó bị như vầy nè anh....
(defun c:te (/ ss lstl ent ss1 lst lst2 en en2 en3 str pref) (vl-load-com) (setq ss (acet-ss-to-list (ssget (list (cons 0 "MTEXT"))))) (setvar 'cmdecho 0) (setq lstl (list "layer1" "layer2" "layer3" "layer4" "layer5")) (setq i 0) (mapcar '(lambda (x)(if (not (tblsearch "layer" x)) (progn (setq i (1+ i)) (command "-LAYER" "M" x "C" (itoa i) "" ""))) ) lstl) (foreach ent ss (setq lst (list)) (setq str (cdr (assoc 1 (entget ent)))) (while (vl-string-search "\\P" str) (setq stri (substr str 1 (vl-string-search "\\P" str))) (setq lst (append lst (list stri))) (setq str (substr str (+ (vl-string-search "\\P" str) 3))) ) (if (/= str "") (setq lst (append lst (list str)))) (if (or (= (length lst) 4) (= (length lst) 5) )(progn (setq pt (cdr (assoc 10 (entget ent)))) (setq pref (vl-string-right-trim "1234567890" (car lst))) (mapcar '(lambda (str lay) (if (and (/= str (car lst)) (/= pref "")) (setq str (strcat pref str))) (maketext pt str lay ent ) (setq pt (polar pt (* 1.5 pi) (vla-get-linespacingdistance (vlax-ename->vla-object ent) )) ) ) lst lstl) (entdel ent) ) ) ) (setvar 'cmdecho 1) (princ) ) (defun maketext (point noidungtext lay entg / oldla) (vla-move (vla-copy (vlax-ename->vla-object entg)) (vlax-3d-point (cdr (assoc 10 (entget entg)))) (vlax-3d-point point)) (vla-put-textstring (vlax-ename->vla-object (entlast)) noidungtext) (vla-put-layer (vlax-ename->vla-object (entlast)) lay) (vla-put-color (vlax-ename->vla-object (entlast)) 256))
-
23 giờ trước, Duong Nhat Duy đã nói:Bạn dùng cái này để chữa: UFMT, chọn hết Mtext, enter, sau đó X ra bình thường.
có nhiều trường hợp vẫn bị bạn ơi, hay là do mình chưa làm đúng
-
Vào lúc 10/9/2019 tại 09:16, Doan Nguyen Van đã nói:Đã giải quyết vấn đề 4-5 hàng cho bạn, chọn 3 hay 4 hay 5 hàng đều được
(defun c:te (/ ss lstl ent ss1 lst lst2 en en2 en3 str pref) (vl-load-com) (setq ss (acet-ss-to-list (ssget (list (cons 0 "MTEXT"))))) (setvar 'cmdecho 0) (setq lstl (list "layer1" "layer2" "layer3" "layer4" "layer5")) (setq i 0) (mapcar '(lambda (x)(if (not (tblsearch "layer" x)) (progn (setq i (1+ i)) (command "-LAYER" "M" x "C" (itoa i) "" ""))) ) lstl) (foreach ent ss (setq lst (list)) (setq str (cdr (assoc 1 (entget ent)))) (while (vl-string-search "\\P" str) (setq stri (substr str 1 (vl-string-search "\\P" str))) (setq lst (append lst (list stri))) (setq str (substr str (+ (vl-string-search "\\P" str) 3))) ) (if (/= str "") (setq lst (append lst (list str)))) (if (or (= (length lst) 4) (= (length lst) 5) )(progn (setq pt (cdr (assoc 10 (entget ent)))) (setq pref (vl-string-right-trim "1234567890" (car lst))) (mapcar '(lambda (str lay) (if (and (/= str (car lst)) (/= pref "")) (setq str (strcat pref str))) (maketext pt str lay ent ) (setq pt (polar pt (* 1.5 pi) (vla-get-linespacingdistance (vlax-ename->vla-object ent) )) ) ) lst lstl) (entdel ent) ) ) ) (setvar 'cmdecho 1) (princ) ) (defun maketext (point noidungtext lay entg / oldla) (vla-move (vla-copy (vlax-ename->vla-object entg)) (vlax-3d-point (cdr (assoc 10 (entget entg)))) (vlax-3d-point point)) (vla-put-textstring (vlax-ename->vla-object (entlast)) noidungtext) (vla-put-layer (vlax-ename->vla-object (entlast)) lay) (vla-put-color (vlax-ename->vla-object (entlast)) 256))
anh ơi, anh có thể chỉnh lisp này cho ra đối tượng là text như lisp cũ, được không anh vì khi là đối tượng mtext khi em X ra thì nó bị vỡ đối tượng, em muốn X ra để sửa lỗi font
tạo đối tượng text nằm trong vùng hatch
trong AutoLisp
Đã đăng · Trả lời báo cáo
cảm ơn bạn nhiều, chúc bạn sức khỏe nha