Nguyen Hoanh
-
Số lượng nội dung
4246 -
Đã tham gia
-
Lần ghé thăm cuối
-
Ngày trúng
260
Bài đăng được đăng bởi Nguyen Hoanh
-
-
-
18 giờ trước, anh327 đã nói:bác nào cho em xin lisp vẽ biểu đồ nhân lực với ạ
lisp đó như thế nào bạn?
-
Mình đã viết lisp cho bạn như bên dưới.
Cách dùng:
1- Download file lisp về
2- Mở file lisp, Sửa chữ chỗ ("DESC3"."S"..... theo nguyên tắc: Phía bên trái dấu chấm là tên tag, phía bên phải dấu chấm là giá trị default value. Mỗi dòng là 1 lần thay. Lưu lại.
3- Add file lisp này vào mục chạy tự động, bằng lệnh Appload > Contents > Add
4- Dùng một chức năng nào đó để mở 3500 file của bạn, mỗi lần file được mở lên, lisp sẽ tự động chạy, sửa, lưu lại và tự động close bản vẽ.
Sau khi dùng xong, thì xóa hoặc rename file lisp thành tên khác, rồi remove file lisp ra khỏi việc chạy tự động.
(setq cv:thay '( ("DESC3" . "S") ("DESC1" . "XY") ) ) (defun c:thayattr( / dt ss ent tt find repl) (foreach dt cv:thay (setq ss (ssget "X" (list (cons 0 "ATTDEF") (cons 2 (car dt))))) (foreach ent (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))) (setq tt (entget ent) find (assoc 1 tt) repl (cons 1 (cdr dt)) tt (if find (subst repl find tt) (cons repl find) ) ) (entmod tt) ) ) (command ".qsave" "y") (command ".close") ) (c:thayattr) -
Mình đã hiểu.
Lỗi này do driver của cạc màn hình của bạn không tương thích, dẫn đến AutoCAD khi sử dụng drive hiển thị sai.
Bạn thử:
1- Cài lại driver cho card màn hình của bạn
2- Tắt chức năng Harware Accceleration của AutoCAD.
Bạn xem thêm ở đây:
-
Thao tác này hiếm gặp, nên viết lisp sẽ mất công hơn nhiều so với bạn làm thủ công.
Ví dụ nếu bạn làm bằng tay thì mất bao nhiêu thời gian?
-
Mình thấy vẫn còn mà
(vl-load-com) (defun C:co1 ( / ANG ANG1 ANG2 DIS ELST ELST_COPY ELST_INTERS ELST_PL ENT ENT1 ETYPE I LEN LST LST1 LST_ADD LST_DIS LST_PT MODE OBJ PT PT1 PT2 PT_BASE ROTP X) (princ "Select objects to copy: ") (if (and (setq elst_copy (vl-remove-if 'listp (mapcar 'cadr (if (ssget) (ssnamex (ssget "_P")))))) (setq pt_base (getpoint "\nSpecify base point: "))) (progn (setq elst (vl-remove-if 'listp (mapcar 'cadr (if (ssget) (ssnamex (ssget "_P")))))) (setq elst_pl (vl-remove-if-not '(lambda (ent) (wcmatch (cdr (assoc 0 (entget ent))) "*LINE,ARC")) elst)) (setq elst_inters (vl-remove-if-not '(lambda (ent) (wcmatch (cdr (assoc 0 (entget ent))) "*LINE,ARC,CIRCLE")) elst)) (setq rotp (get_key (list "Yes" "No") "No" "Xoay theo doi tuong")) (if elst_inters (setq mode (listbox (list "Dinh" "Dau" "Cuoi" "Trung diem" "Trong tam" "Giao cat") "Vi tri Paste cua Pline, Arc" 10 8 1)) ) (setq lst_pt nil) (foreach ent elst (setq lst (entget ent)) (setq etype (cdr (assoc 0 lst))) (setq pt nil) (if (wcmatch etype "*TEXT") (if (and (assoc 11 lst) (not (equal (car (cdr (assoc 11 lst))) 0)) (not (equal (cadr (cdr (assoc 11 lst))) 0)) ) (setq pt (cdr (assoc 11 lst))) (setq pt (cdr (assoc 10 lst))) ) ) (if (wcmatch etype "HATCH") (setq pt (boundingbox_centroid ent)) ) (if (not (wcmatch etype "*TEXT,*LINE,ARC,HATCH")) (setq pt (cdr (assoc 10 lst))) ) (if (not (setq ang (cdr (assoc 50 lst)))) (setq ang 0.0)) (if pt (setq lst_pt (cons (cons ang pt) lst_pt))) ) (if (member "Dinh" mode) (foreach ent elst_pl (if (wcmatch (cdr (assoc 0 (entget ent))) "LINE,ARC") (progn (setq pt1 (vlax-curve-getPointAtParam ent (vlax-curve-getStartParam ent))) (setq ang1 (angle (list 0 0) (vlax-curve-getFirstDeriv ent (vlax-curve-getParamAtPoint ent pt1)))) (setq pt2 (vlax-curve-getPointAtParam ent (vlax-curve-getEndParam ent))) (setq ang2 (angle (list 0 0) (vlax-curve-getFirstDeriv ent (vlax-curve-getParamAtPoint ent pt2)))) (setq lst_pt (cons (cons ang1 pt1) lst_pt)) (setq lst_pt (cons (cons ang2 pt2) lst_pt)) ) ) (if (wcmatch (cdr (assoc 0 (entget ent))) "*POLYLINE") (progn (setq lst_add (mapcar '(lambda (pt) (cons (angle (list 0 0) (vlax-curve-getFirstDeriv ent (vlax-curve-getParamAtPoint ent pt))) pt)) (get_vertex ent))) (setq lst_pt (append lst_add lst_pt)) ) ) ) ) (if (and (member "Dau" mode) (not (member "Dinh" mode))) (foreach ent elst_pl (setq pt (vlax-curve-getPointAtParam ent (vlax-curve-getStartParam ent))) (setq ang (angle (list 0 0) (vlax-curve-getFirstDeriv ent (vlax-curve-getParamAtPoint ent pt)))) (setq lst_pt (cons (cons ang pt) lst_pt)) ) ) (if (and (member "Cuoi" mode) (not (member "Dinh" mode))) (foreach ent elst_pl (setq pt (vlax-curve-getPointAtParam ent (vlax-curve-getEndParam ent))) (setq ang (angle (list 0 0) (vlax-curve-getFirstDeriv ent (vlax-curve-getParamAtPoint ent pt)))) (setq lst_pt (cons (cons ang pt) lst_pt)) ) ) (if (member "Trung diem" mode) (progn (foreach ent elst_pl (if (wcmatch (cdr (assoc 0 (entget ent))) "LINE,ARC") (progn (setq pt (vlax-curve-getPointAtDist ent (* (vlax-curve-getDistAtParam ent (vlax-curve-getEndParam ent)) 0.5))) (setq ang (angle (list 0 0) (vlax-curve-getFirstDeriv ent (vlax-curve-getParamAtPoint ent pt)))) (setq lst_pt (cons (cons ang pt) lst_pt)) ) ) (if (wcmatch (cdr (assoc 0 (entget ent))) "*POLYLINE") (progn (setq lst1 (get_vertex ent)) (setq len (vlax-curve-getDistAtParam ent (vlax-curve-getEndParam ent))) (setq lst_dis (mapcar '(lambda (pt) (vlax-curve-getDistAtPoint ent pt)) lst1)) (if (not (equal len (last lst_dis))) (setq lst_dis (reverse (cons len (cdr (reverse lst_dis))))) ) (setq i 0) (repeat (1- (length lst_dis)) (setq dis (* (+ (nth i lst_dis) (nth (1+ i) lst_dis)) 0.5)) (setq pt (vlax-curve-getPointAtDist ent dis)) (setq ang (angle (list 0 0) (vlax-curve-getFirstDeriv ent (vlax-curve-getParamAtPoint ent pt)))) (setq lst_pt (cons (cons ang pt) lst_pt)) (setq i (1+ i)) ) ) ) ) ) ) (if (member "Trong tam" mode) (setq lst_pt (append lst_pt (mapcar '(lambda (x) (cons 0.0 (poly_centroid x))) elst_pl))) ) (if (member "Giao cat" mode) (while (> (length elst_inters) 1) (setq ent1 (car elst_inters)) (setq lst (apply 'append (mapcar '(lambda (x) (vla-inters ent1 x acextendnone)) (cdr elst_inters)))) (foreach pt lst (setq lst_pt (cons (cons 0.0 pt) lst_pt))) (setq elst_inters (cdr elst_inters)) ) ) (setq lst_pt (unique lst_pt)) (foreach lst lst_pt (if (and (setq pt (cdr lst)) (setq ang (car lst))) (foreach ent elst_copy (vla-Copy (vlax-ename->vla-object ent)) (setq obj (vlax-ename->vla-object (entlast))) (vla-Move obj (vlax-3d-point pt_base) (vlax-3d-point pt)) (if (= rotp "Yes") (vla-Rotate obj (vlax-3d-point pt) ang)) ) ) ) ) ) (princ) ) ;NHAP KEYWORD (defun get_key (key default promp / key_fix str1 str2 str3 str4) (setq key_fix key) (foreach str1 (list " " "_") (setq key_fix (mapcar '(lambda (str) (while (vl-string-search str1 str) (setq str (vl-string-subst "" str1 str))) str) key_fix)) ) (setq str1 (apply 'strcat (mapcar (function (lambda (x) (strcat x " "))) key_fix))) (setq str2 (apply 'strcat (mapcar (function (lambda (x) (strcat x "/"))) key_fix))) (setq str1 (substr str1 1 (1- (strlen str1)))) (setq str2 (substr str2 1 (1- (strlen str2)))) (if (not (assoc default (mapcar 'list key_fix))) (setq default (car key_fix))) (initget str1) (setq str3 (strcat "\n" promp " [" str2 "] <" default "> ")) (if (not (setq str4 (getkword str3))) (nth (vl-position default key_fix) key) (nth (vl-position str4 key_fix) key) ) ) ;XOA PHAN TU TRUNG (defun unique (lst) (if lst (cons (car lst) (unique (vl-remove (car lst) (cdr lst))))) ) ;LIST BOX (defun listbox (lst msg wid hei bit / dch des tmp rtn) (if (> (length lst) 1) (progn (cond ((not (and (setq tmp (vl-filename-mktemp nil nil ".dcl")) (setq des (open tmp "w")) (write-line (strcat "listbox:dialog{label=\"" msg "\";spacer;:list_box{key=\"list\";multiple_select=" (if (= 1 (logand 1 bit)) "true" "false" ) (strcat ";width=" (rtos wid 2 0) ";height=" (rtos hei 2 0) ";}spacer;ok_cancel;}" ) ) des ) (not (close des)) (< 0 (setq dch (load_dialog tmp))) (new_dialog "listbox" dch) ) ) (prompt "\nError Loading List Box Dialog.") ) (t (start_list "list") (foreach itm lst (add_list itm)) (end_list) (setq rtn (set_tile "list" "0")) (action_tile "list" "(setq rtn $value)") (setq rtn (if (= 1 (start_dialog)) (if (= 2 (logand 2 bit)) (read (strcat "(" rtn ")")) (mapcar '(lambda (x) (nth x lst)) (read (strcat "(" rtn ")")) ) ) ) ) ) ) (if (< 0 dch) (unload_dialog dch) ) (if (and tmp (setq tmp (findfile tmp))) (vl-file-delete tmp) ) rtn ) lst ) ) ;GET VERTEX (defun get_vertex (ent / i lst) (setq i 0) (repeat (fix (1+ (vlax-curve-getEndParam ent))) (setq lst (append lst (list (vlax-curve-getPointAtParam ent i)))) (setq i (1+ i)) ) lst ) ;GIAO CAT (defun vla-inters (ent1 ent2 mode / lst1 lst2) (setq lst1 (vlax-invoke (vlax-ename->vla-object ent1) 'intersectwith (vlax-ename->vla-object ent2) (cond ((= mode 0) acextendnone) ((= mode 1) acextendthisentity) ((= mode 2) acextendotherentity) ((= mode 3) acextendboth) ))) (repeat (/ (length lst1) 3) (setq lst2 (cons (list (car lst1) (cadr lst1) (caddr lst1)) lst2) lst1 (cdddr lst1) ) ) (reverse lst2) ) ;CENTROID (defun boundingbox_centroid (ent / minpt maxpt) (if (and (vlax-method-applicable-p (vlax-ename->vla-object ent) 'getboundingbox) (not (vl-catch-all-error-p (vl-catch-all-apply 'vla-getboundingbox (list (vlax-ename->vla-object ent) 'minpt 'maxpt)))) (setq minpt (vlax-safearray->list minpt)) (setq maxpt (vlax-safearray->list maxpt)) ) (list (* 0.5 (+ (car minpt) (car maxpt))) (* 0.5 (+ (cadr minpt) (cadr maxpt)))) ) ) ;POLY CENTROID - LEE MAC (defun poly_centroid (e / l) (foreach x (setq e (entget e)) (if (= 10 (car x)) (setq l (cons (cdr x) l)) ) ) ( (lambda (a) (if (not (equal 0.0 a 1e-8)) (trans (mapcar '/ (apply 'mapcar (cons '+ (mapcar (function (lambda (a b) ( (lambda (m) (mapcar (function (lambda (c d) (* (+ c d) m)) ) a b ) ) (- (* (car a) (cadr b)) (* (car b) (cadr a))) ) ) ) l (cons (last l) l) ) ) ) (list a a) ) (cdr (assoc 210 e)) 0 ) ) ) (* 3.0 (apply '+ (mapcar (function (lambda (a b) (- (* (car a) (cadr b)) (* (car b) (cadr a))) ) ) l (cons (last l) l) ) ) ) ) )-
2
-
-
Quá hay, trước giờ viết code bằng tiếng Việt rất khó khăn.
Với lại, chưa hiểu lệnh MakeLispApp khác gì cái complie của VLIDE.
-
Đối tượng của bạn là đối tượng gì? (arc, line, polyline, elisspse,..)
-
Đối tượng của bạn là đối tượng gì? (arc, line, polyline, elisspse,..)
-
Mình đã sửa thành nhiều đối tượng đây nhé:
(defun c:PTLs (/ ent elist wid p1 line elist2 start end r1 r2 r3 r4) (defun dtr (d) (* pi d (/ 1.0 180.0)) ) (command "_.undo" "_g") (foreach ent1 (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget '((0 . "*POLYLINE"))))) ) (setq elist (entget ent1)) (setq wid (cdr (assoc 43 elist))) (setq p1 ent1) (command "_.explode" p1) (setq line (entlast)) (setq elist2 (entget line)) (setq start (cdr (assoc 10 elist2))) (setq end (cdr (assoc 11 elist2))) (setq r1 (polar start (+ (angle start end) (dtr 270)) (/ wid 2))) (setq r2 (polar start (+ (angle start end) (dtr 90)) (/ wid 2))) (setq r3 (polar end (+ (angle start end) (dtr 90)) (/ wid 2))) (setq r4 (polar end (+ (angle start end) (dtr 270)) (/ wid 2))) (command "_.line" r1 r2 r3 r4 "c") (entdel line) ) (command "_.undo" "_end") (princ) )
-
Lúc acad hỏi select objects, bạn nhấn f rồi enter (để kích hoạt chức năng fence khi select), sau đó click các điểm để tạo thành một pline giao với các bản vẽ.
Thứ tự attrubute được thống kê sẽ theo thứ tự tự các điểm em mà bạn vừa click
-
1
-
-
Bạn có thể upload file DWG lên đây được không?
-
Bạn có thể chụp ảnh màn hình rồi post lên đây không?
-
1
-
-
Bạn thử gõ cmddia rồi nhập vào 1 xem sao?
-
1 giờ trước, hoabuixuan đã nói:sao tôi không tải được bài tập số 3 anh Hoành ơi?
Đối với một số trình duyệt, bạn phải chuột rồi chọn "mở liên kết trong tab mới" là được.

-
Trong hộp thoại plot, bạn bỏ ô check plot to file
-
Vào lúc 22/11/2020 tại 00:22, Linhphuquy đã nói:Xin chào các anh chị, hiện em đang có hơn 15 các biểu đồ trên excel. Anh chị có cách nào giúp em để có thể xuất các đồ thị ấy sang cad mà em có thể chỉnh sửa không ạ. Em xin cảm ơn ạ
Bạn sinh ra một cột chứa tọa độ dạng bên excel
123.45,789.01
234.56,145.32
342.23,657.34
Rồi copy các cell cột này.
Rồi dùng lệnh Pline của acad, khi acad hỏi specify points, bạn paste (Ctrl+V)
-
Nếu bạn dùng AutoCAD và bị một lỗi nào đó khó chịu nhưng không rõ nguyên do.
Bạn muốn khôi phục lại cấu hình (Reset AutoCAD Settings to Default)? bạn làm như sau:
1- Nhấn tổ hợp phím [Windows]+R
2- Paste dòng sau đây vào "C:\Program Files\Autodesk\AutoCAD 2020\AdMigrator.exe" /reset /product ACAD /language "en-US"
Lưu ý:
- Sửa chữ 2020 về phiên bản của bạn, ví dụ là 2018 nếu AutoCAD của bạn phiên bản 2018.
- Copy cả dấu "
-
1
-
-
-
23 giờ trước, DNcouples đã nói:Em cũng có nhu cầu như bác chủ thớt ạ, mà sao chủ đề này dừng từ 2016 rồi :((
Dừng vì vấn đề đã được giải quyết rồi mà bạn:
Bạn dùng lệnh xref để chèn file này vào file kia.
Sau đó dùng bind để biến file kia thành block.
Dùng explode để phá block.
Với cách này thì bạn sẽ giữ được block layer, text style,... của file góc ban đầu
-
1
-
-
Bạn dùng đường kích thước trên layout là sẽ giống với Solidworks và Inventor.
Cách làm:
1- Hình bạn vẫn vẽ trong Model,
2- Bên layout, bạn chọn một viewport để cân chỉnh hình,
3- Vẫn bên layout, bạn chọn lệnh PSpace để chuyển về không gian giấy.
4- Đánh kích thước bên layout.
Khi bạn zoom to, nhỏ viewport, thì đường kích thước sẽ không thay đổi giá trị.
-
1
-
-
Ngoài ra,
Bạn có thể chọn Save As ,
rồi lưu lại với một tên do bạn chọn, để dùng cho các lần sau hoặc cho bản vẽ khác.
-
Bạn có thể chụp ảnh màn hình rồi đưa lên đây được không?
-
Công ty TNHH CONSID tuyển các vị trí công việc:
- Kiến trúc sư 2 năm kinh nghiệm trở lên
- Thực tập sinh là sinh viên chuyên ngành kiến trúc năm thứ 4 trở lên.
Click vào đây để nộp hồ sơ ứng tuyển
Quan điểm của CONSID
Trong suốt quá trình phát triển, CONSID mong muốn những người tốt nhất tham gia vào công ty của chúng tôi. Nếu bạn quan tâm đến việc tham gia CONSID hãy đăng ký.
Chúng tôi biết rằng sự thành công trong sự nghiệp của mọi người là nền tảng cho sự thành công của CONSID vì vậy CONSID rất coi trọng sự phát triển nghề nghiệp của các cá nhân. CONSID phát triển người của mình thành các nhân sự toàn diện bằng cách tập trung vào đào tạo và trau dồi kiến thức kỹ thuật sắc bén, mang lại nhiều kinh nghiệm và cơ hội phát triển.
Văn hóa của CONSID là cởi mở, hợp tác và năng động và CONSID chào đón những tài năng tốt nhất từ khắp mọi miền tổ quốc. Các nhân sự của CONSID phối hợp làm việc với nhau để mang lại giá trị cho các dự án bằng sự tập trung cao độ. Niềm đam mê về nghề nghiệp của tập thể CONSID mang lại giá trị cho khách hàng là cốt lõi cho sự thành công của CONSID.
Chuyên môn của bạn
Chúng tôi cần tuyển dụng nhân sự cho các vị trí Kiến trúc vì thế cần ứng viên Tốt nghiệp Cao đẳng hoặc Đại học ngành Xây dựng hoặc Kiến trúc
Bạn nên có kỹ năng
Để gia nhập CONSID, bạn cần có: Tinh thần kỷ luật công việc đặc biệt cao; Ham thích học hỏi, có khả năng học hỏi các vấn đề mới; Khát khao phát triển nghề nghiệp.
Ngoài ra, bạn cần biết sử dụng tốt một trong các phần mềm: AutoCAD, 3DS Max/Vray/Corona, Sketchup, Lumion, Vray… Sử dụng được tiếng Anh hoặc tiếng Hàn là một lợi thế.
Các phúc lợi dành cho bạn
BHXH, BHYT, BHTN theo quy định pháp luật
Được tham gia học các khóa học ngắn hạn để nâng cao nghề nghiệp
Được làm việc trong tổ chức chuyên nghiệp về thiết kế, có khả năng phát triển nghề nghiệp.
Lương thỏa thuận, tương xứng với nỗ lực của bạn.
Bạn sẽ làm gì
Tùy theo khả năng và nỗ lực của bạn, bạn sẽ được phân công làm chủ nhiệm dự án, Chủ trì thiết kế kiến trúc, thiết kế kiến trúc, triển khai bản vẽ kỹ thuật kiến trúc hoặc xây dựng mô hình 3d ý tưởng các phương án.
Làm việc từ thứ Hai đến thứ Bảy.

Vẽ Xline chéo qua đỉnh hình vuông
trong Sử dụng AutoCAD
Đã đăng · Trả lời báo cáo
Vấn đề này đã được Autodesk mô tả tại đây:
https://knowledge.autodesk.com/support/autocad/troubleshooting/caas/sfdcarticles/sfdcarticles/XLine-will-not-work-properly-when-snapping-to-an-endpoint-in-AutoCAD.html
VẤN ĐỀ:
Trong AutoCAD, bạn muốn tạo XLine bằng cách bắt vào điểm cuối của một đoạn thẳng nhưng thay vì sử dụng điểm cuối làm tâm của XLine và cho phép bạn chọn điểm tiếp theo để xác định góc, XLine sẽ chỉ hiển thị dưới dạng thẳng đứng hoặc nằm ngang cho đến khi xong lệnh. Lệnh hoạt động bình thường khi bắt điểm vào các OSnap khác như trung điểm (midpoint) và điểm gần nhất (nearest).
NGUYÊN NHÂN:
lệnh XLine cố gắng bắt vuông góc với đối tượng tại điểm cuối vừa chọn.
GIẢI PHÁP:
Hãy thử thực hiện một trong những cách sau:
- Tắt OSnap perpendicular (vuông góc).[hoặc tắt F3, chọn điểm bằng cách giữ shift + phải chuột]
- Bật OSnap tangent (tiếp tuyến) thêm mỗi khi bật OSnap perpendicular (vuông góc).
- Tạm thời tắt OSnaps và chọn điểm kết thúc bằng cách nhấn shift + chuột phải.
Nói cách khác, đây không phải là lỗi, mà là chức năng mới của AutoCAD. Bạn cần tắt osnap (nhấn F3) khi chọn điểm thứ 2 là được.