Nguyễn Lộc 2k 2 1 Báo cáo bài đăng Đã đăng Tháng 11 21 Do nhu cầu cháu hay phải lặp đi lặp lại cái tạo field trong autocad trong công việc mà mấy anh trên công ty giao cho nên cháu mong các bác, các chú hỗ trợ để đỡ mất công sức trong công việc ạ. Hiện tại là cháu hay tạo field cad từ block att, text, mtext như đối tượng trong hình mong các bác các chú có thể tạo 1 lisp có thể tạo field từ những đối tượng này, dạng nhập lệnh -> enter->chọn đối tượng->chọn 1 vùng chống trên màn hình-> tạo ra text có field đối tượng đó ạ Drawing1.dwg 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
quangcda 7 Báo cáo bài đăng Đã đăng Tháng 11 22 Đây cháu nhé! ;=========link gia tri text toi text== (defun C:lgt (/ obn Tkq Lob) (setq o (vlax-ename->vla-object (car (nentsel "\nChon doi tuong nguon"))) Tkq (strcat "%<\\AcObjProp Object(%<\\_ObjId " (itoa (vla-get-objectid o)) ">%).TextString>%") ) (while (setq obd (car (nentsel "\nChon text dich"))) (vla-put-textstring (vlax-ename->vla-object obd) Tkq) ) (vl-cmdf "regen") (princ) ) 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
Nguyễn Lộc 2k 2 1 Báo cáo bài đăng Đã đăng Tháng 11 23 17 giờ trước, quangcda đã nói: Đây cháu nhé! ;=========link gia tri text toi text== (defun C:lgt (/ obn Tkq Lob) (setq o (vlax-ename->vla-object (car (nentsel "\nChon doi tuong nguon"))) Tkq (strcat "%<\\AcObjProp Object(%<\\_ObjId " (itoa (vla-get-objectid o)) ">%).TextString>%") ) (while (setq obd (car (nentsel "\nChon text dich"))) (vla-put-textstring (vlax-ename->vla-object obd) Tkq) ) (vl-cmdf "regen") (princ) ) cháu cảm ơn bác đã viết lisp cho cháu, bác có thể thêm cho cháu cái tạo text tự động khi mình pick vào khoảng chống bên ngoài ko phải là text được khô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
NTHAHT 103 Báo cáo bài đăng Đã đăng Tháng 11 23 Gửi cháu lisp này: https://drive.google.com/file/d/10jrJecv1cTAlUTfScYwRBOrlGp-3QAkH/view?usp=sharing Lệnh đầy đủ: FieldTextStringFromObject Trong quá trình xác định điểm đặt, có thể thay đổi chiều cao text. 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
conghoa 136 Báo cáo bài đăng Đã đăng Tháng 11 25 (defun C:t2f (/ obj obj-type tkq text-style text-height rotation insertion-point) ;; Chon doi tuong nguon (setq obj (car (nentsel "\nChon doi tuong text, mtext, attribute, hoac dimension: "))) (if obj (progn (setq obj (vlax-ename->vla-object obj) obj-type (vla-get-ObjectName obj)) ;; Xu ly thong tin tu TEXT, MTEXT, ATTRIB, ATTDEF, hoac DIMENSION (cond ;; Doi tuong TEXT ((equal obj-type "AcDbText") (setq tkq (strcat "%<\\AcObjProp Object(%<\\_ObjId " (itoa (vla-get-objectid obj)) ">%).TextString>%") text-style (vla-get-StyleName obj) text-height (vla-get-Height obj) rotation (if (vlax-property-available-p obj 'Rotation) (vla-get-Rotation obj) 0.0) insertion-point (vlax-safearray->list (vlax-variant-value (vla-get-InsertionPoint obj))))) ;; Doi tuong MTEXT ((equal obj-type "AcDbMText") (setq tkq (strcat "%<\\AcObjProp Object(%<\\_ObjId " (itoa (vla-get-objectid obj)) ">%).Text>%") text-style (vla-get-StyleName obj) text-height (vla-get-Height obj) ;; Đúng rotation (vla-get-Rotation obj) insertion-point (vlax-safearray->list (vlax-variant-value (vla-get-InsertionPoint obj))))) ;; Doi tuong ATTDEF hoac ATTRIB ((or (equal obj-type "AcDbAttributeDefinition") (equal obj-type "AcDbAttribute")) (setq tkq (strcat "%<\\AcObjProp Object(%<\\_ObjId " (itoa (vla-get-objectid obj)) ">%).TextString>%") text-style (if (vlax-property-available-p obj 'StyleName) (vla-get-StyleName obj) "") text-height (if (vlax-property-available-p obj 'Height) (vla-get-Height obj) 0.0) rotation (if (vlax-property-available-p obj 'Rotation) (vla-get-Rotation obj) 0.0) insertion-point (vlax-safearray->list (vlax-variant-value (vla-get-InsertionPoint obj))))) ;; Doi tuong DIMENSION ((equal obj-type "AcDbDimension") ;; Lay gia tri cua Text trong Dimension (setq tkq (strcat "%<\\AcObjProp Object(%<\\_ObjId " (itoa (vla-get-objectid obj)) ">%).Measurement>%") text-style (vla-get-StyleName obj) text-height (vla-get-TextHeight obj) rotation (if (vlax-property-available-p obj 'Rotation) (vla-get-Rotation obj) 0.0) insertion-point (vlax-safearray->list (vlax-variant-value (vla-get-TextPosition obj))))) ;; Doi tuong khong duoc ho tro (T (princ "\nDoi tuong chon khong phai TEXT, MTEXT, ATTRIBUTE hoac DIMENSION.") (setq obj nil))) ;; Neu doi tuong hop le, yeu cau nguoi dung chon vi tri tao TEXT moi (if obj (progn (setq insertion-point (getpoint "\nChon vi tri tao text moi: ")) (if insertion-point (progn ;; Tao mot TEXT moi voi Field tai vi tri duoc chon (entmake (list (cons 0 "TEXT") ; Doi tuong la TEXT (cons 8 (vla-get-Layer obj)) ; Lop giong voi doi tuong nguon (cons 7 text-style) ; Kieu TEXT giong voi doi tuong nguon (cons 40 text-height) ; Chieu cao TEXT (cons 10 insertion-point) ; Diem chen (cons 1 tkq) ; Noi dung la Field (cons 50 rotation) ; Goc xoay ) ) (vl-cmdf "regen") (princ "\nText moi da duoc tao thanh cong.") ) (princ "\nKhong chon vi tri tao TEXT moi.") ) ) ) ) (princ "\nKhong chon doi tuong hop le.") ) (princ) ) Đây là lisp cho AI viết, thực hiện được nội dung bạn mong muốn đối với : Text, Mtext, Att, Dim. Lisp sẽ lấy đúng thông số của đối tượng gốc để tạo text field mới (bao gồm kiểu chữ, góc, chiều cao .v.v.) Tuy nhiên với file cad nặng thì sẽ chạy khá chậm, bạn có thể dùng tạ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
Nguyễn Lộc 2k 2 1 Báo cáo bài đăng Đã đăng Tháng 11 25 Vào lúc 23/11/2024 tại 12:48, NTHAHT đã nói: Gửi cháu lisp này: https://drive.google.com/file/d/10jrJecv1cTAlUTfScYwRBOrlGp-3QAkH/view?usp=sharing Lệnh đầy đủ: FieldTextStringFromObject Trong quá trình xác định điểm đặt, có thể thay đổi chiều cao text. Cháu cảm ơn bác 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
Nguyễn Lộc 2k 2 1 Báo cáo bài đăng Đã đăng Tháng 11 25 2 giờ trước, conghoa đã nói: (defun C:t2f (/ obj obj-type tkq text-style text-height rotation insertion-point) ;; Chon doi tuong nguon (setq obj (car (nentsel "\nChon doi tuong text, mtext, attribute, hoac dimension: "))) (if obj (progn (setq obj (vlax-ename->vla-object obj) obj-type (vla-get-ObjectName obj)) ;; Xu ly thong tin tu TEXT, MTEXT, ATTRIB, ATTDEF, hoac DIMENSION (cond ;; Doi tuong TEXT ((equal obj-type "AcDbText") (setq tkq (strcat "%<\\AcObjProp Object(%<\\_ObjId " (itoa (vla-get-objectid obj)) ">%).TextString>%") text-style (vla-get-StyleName obj) text-height (vla-get-Height obj) rotation (if (vlax-property-available-p obj 'Rotation) (vla-get-Rotation obj) 0.0) insertion-point (vlax-safearray->list (vlax-variant-value (vla-get-InsertionPoint obj))))) ;; Doi tuong MTEXT ((equal obj-type "AcDbMText") (setq tkq (strcat "%<\\AcObjProp Object(%<\\_ObjId " (itoa (vla-get-objectid obj)) ">%).Text>%") text-style (vla-get-StyleName obj) text-height (vla-get-Height obj) ;; Đúng rotation (vla-get-Rotation obj) insertion-point (vlax-safearray->list (vlax-variant-value (vla-get-InsertionPoint obj))))) ;; Doi tuong ATTDEF hoac ATTRIB ((or (equal obj-type "AcDbAttributeDefinition") (equal obj-type "AcDbAttribute")) (setq tkq (strcat "%<\\AcObjProp Object(%<\\_ObjId " (itoa (vla-get-objectid obj)) ">%).TextString>%") text-style (if (vlax-property-available-p obj 'StyleName) (vla-get-StyleName obj) "") text-height (if (vlax-property-available-p obj 'Height) (vla-get-Height obj) 0.0) rotation (if (vlax-property-available-p obj 'Rotation) (vla-get-Rotation obj) 0.0) insertion-point (vlax-safearray->list (vlax-variant-value (vla-get-InsertionPoint obj))))) ;; Doi tuong DIMENSION ((equal obj-type "AcDbDimension") ;; Lay gia tri cua Text trong Dimension (setq tkq (strcat "%<\\AcObjProp Object(%<\\_ObjId " (itoa (vla-get-objectid obj)) ">%).Measurement>%") text-style (vla-get-StyleName obj) text-height (vla-get-TextHeight obj) rotation (if (vlax-property-available-p obj 'Rotation) (vla-get-Rotation obj) 0.0) insertion-point (vlax-safearray->list (vlax-variant-value (vla-get-TextPosition obj))))) ;; Doi tuong khong duoc ho tro (T (princ "\nDoi tuong chon khong phai TEXT, MTEXT, ATTRIBUTE hoac DIMENSION.") (setq obj nil))) ;; Neu doi tuong hop le, yeu cau nguoi dung chon vi tri tao TEXT moi (if obj (progn (setq insertion-point (getpoint "\nChon vi tri tao text moi: ")) (if insertion-point (progn ;; Tao mot TEXT moi voi Field tai vi tri duoc chon (entmake (list (cons 0 "TEXT") ; Doi tuong la TEXT (cons 8 (vla-get-Layer obj)) ; Lop giong voi doi tuong nguon (cons 7 text-style) ; Kieu TEXT giong voi doi tuong nguon (cons 40 text-height) ; Chieu cao TEXT (cons 10 insertion-point) ; Diem chen (cons 1 tkq) ; Noi dung la Field (cons 50 rotation) ; Goc xoay ) ) (vl-cmdf "regen") (princ "\nText moi da duoc tao thanh cong.") ) (princ "\nKhong chon vi tri tao TEXT moi.") ) ) ) ) (princ "\nKhong chon doi tuong hop le.") ) (princ) ) Đây là lisp cho AI viết, thực hiện được nội dung bạn mong muốn đối với : Text, Mtext, Att, Dim. Lisp sẽ lấy đúng thông số của đối tượng gốc để tạo text field mới (bao gồm kiểu chữ, góc, chiều cao .v.v.) Tuy nhiên với file cad nặng thì sẽ chạy khá chậm, bạn có thể dùng tạm. Cháu cảm ơn bác, lisp dùng thấy mượt chưa thấy lag gì ạ, có thể để AI truyền nội dụng vào text nữa đc ko ạ và thêm các đối tượng là hatch, line, poliline, arc, crices,... nữa do lúc đầu cháu sợ viết nhiều đối tượng khó quá không ai giúp cháu ạ, cháu xin cảm ơn các bác, các chú đã hỗ trợ 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
conghoa 136 Báo cáo bài đăng Đã đăng Tháng 11 25 "truyền nội dụng vào text nữa đc ko ạ và thêm các đối tượng là hatch, line, poliline, arc, crices" <--- đoạn này là như nào nhỉ, mình đọc mà không hiểu 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
Nguyễn Lộc 2k 2 1 Báo cáo bài đăng Đã đăng Tháng 11 25 27 phút trước, conghoa đã nói: "truyền nội dụng vào text nữa đc ko ạ và thêm các đối tượng là hatch, line, poliline, arc, crices" <--- đoạn này là như nào nhỉ, mình đọc mà không hiểu dạ, là tức có text sẵn thì chọn vào text đó sẽ thành field ạ, còn cái hatch, line, poliline, arc, crices là các đối tượng đó cũng xuất ra field đc thay vì giới hạn ở TEXT, MTEXT, ATTRIBUTE, DIMENSION hiện tại. cháu cảm ơn vì bác đã dành thời gian ạ 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
NTHAHT 103 Báo cáo bài đăng Đã đăng Tháng 11 25 Vấn đề là lấy Property nào của các đối tượng (hatch, line, polyline, arc, cricle)? Chiều dài, diện tích ... hay là cái gì đó! 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
Nguyễn Lộc 2k 2 1 Báo cáo bài đăng Đã đăng Tháng 11 25 13 phút trước, NTHAHT đã nói: Vấn đề là lấy Property nào của các đối tượng (hatch, line, polyline, arc, cricle)? Chiều dài, diện tích ... hay là cái gì đó! dạ, hatch thì lấy diện tích, còn line, polilien, arc, cricle lấy chiều dài ạ 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
NTHAHT 103 Báo cáo bài đăng Đã đăng Tháng 11 25 1 giờ} trướ}c, Nguyễn Lộc 2k 2 đã nói: dạ, hatch thì lấy diện tích, còn line, polilien, arc, cricle lấy chiều dài ạ Bạn tải lại ở link cũ ở trên. 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
Nguyễn Lộc 2k 2 1 Báo cáo bài đăng Đã đăng Tháng 11 25 cháu ap vào lisp báo .nill bác ạ, cháu xài cad2024 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
NTHAHT 103 Báo cáo bài đăng Đã đăng Tháng 11 25 10 giờ trước, Nguyễn Lộc 2k 2 đã nói: cháu ap vào lisp báo .nill bác ạ, cháu xài cad2024 Kệ nó đi cháu! https://www.youtube.com/watch?v=5MnCAkKb2NU 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