Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.

Bảng xếp hạng


Nội dung phổ biến

Hiển thị nội dung có danh tiếng cao nhất vì 17/09/2017 trong tất cả các lĩnh vực

  1. 9 điểm
    Hẳn mọi người đã rất phiền lòng khi viết Dialog bằng tiếng Việt? Hẳn mọi người đã rất phiền lòng vì phải viết Hexa trong file DCL? Hẳn mọi người đã rất phiền lòng vì viết chữ thường hoặc HOA trong DCL? Tội phạm làm phiền lòng là do DCL viết bằng Encoding ANSI. Thế thì DCL ta không cần viết bằng ANSI, mà viết bằng Encoding UTF-8. Khi đó tha hồ múa máy tiếng Việt bằng Unicode. Lisp này làm chức năng đó, bằng cách thay hàm “Load_dialog” bởi hàm “HA:Load_dialog” khi gọi Dialog. Chỉ cần Load file “Load_dialog.vlx” trước khi dùng hàm “HA:Load_dialog” là OK thôi. Gởi lên đây 3 file: 1). File “Load_dialog.vlx” để Load. 2). File “TEST.LSP” và “TEST.TXT” để Test. Lệnh HA. pack.zip Lưu ý: đừng down chay, down phải like! ĐÓN XEM TẬP 2: Viết file LSP bằng tiếng Việt Unicode (nếu topic này "kiếm" đủ 20 votes).
  2. 3 điểm
    Thấy mấy bài gần đây về đánh cos cao độ, ket lục lại đống lisp cũ thấy đã viết 1 cái hơn 2 năm rồi vẫn để không, share bạn nào thấy phù hợp thì dùng nhé - Cách làm thì cũng đơn giản : + Tự tạo ký hiệu cos của các bạn, bằng các nét vẽ + text cũng được, bằng block thuộc tính cũng được + Ap để load lisp DCCD.vlx + Sử dụng lệnh DCCD (đánh cos cao độ ^^) + Thiết đặt : * Chênh giá trị tính theo trục X, Y hay khoảng cách giữa 2 cụm cos * Tỉ lệ : điền mẫu số của tỉ lệ thôi nhé. Có nghĩa là chênh sẽ chia cho giá trị này * Số số thập phân đằng sau dấu , * Chuỗi ký hiệu dương, âm , 0 Trong chuỗi này ký tự %i sẽ là giá trị số. Các chữ còn lại là tiền tố hay hậu tố tùy các bác, nó tự thêm vào + Đặt xong thì Enter 1 cái, các giá trị trên đương nhiên được lưu lại + Chọn đám ký hiệu cao độ, pick điểm đặt và điểm tới như lệnh copy ý, rồi cảm nhận ạ :) - Lưu ý hạn chế : + Ket lấy text, att đầu tiên trong tập chọn để xử lý cho nhanh. K viết hàm tìm text giá trị số, nên tiện nhất ký hiệu nên có 1 text thôi, đỡ bị nhầm + Ket k viết code strip mã Mtext, nên nếu làm ký tự cos thì nên làm bằng Dtext hoặc Att Single Line + Code loằm khoằm nên ket đóng mã lại. Các bác dùng thử và ý kiến thêm bớt, hợp lý ket lại thêm vô, hoặc bác nào phát triển tiếp + debug thì pm ket gửi code Thân ái ^^ Video : http://youtu.be/yTeI0-7agZY File V1.0 : http://www.cadviet.com/upfiles/3/24067_dccd.rar File V2.0 : cho phép tăng 1 text hoặc toàn bộ https://www.mediafire.com/?f6zwgxk8x61e2li
  3. 2 điểm
    Theo mình đoán thì ..."bản vẽ của bạn bị lỗi", còn lỗi gì thì mình cũng chịu! Van xin bạn gửi bản vẽ lên nhé.
  4. 2 điểm
    Các cao thủ trở thành "CU THẢO" hết cả rồi...! Hãy tìm kiếm với từ khóa GETPAT.lsp, người ta viết từ năm 2001. Còn chế biến ntn cho phù hợp thì tùy cá nhân. ;| GETPAT.LSP (c) 2001 Tee Square Graphics Version 1.01b - 1/22/2002 This routine may be used to extract hatch pattern data from existing drawings when the .pat file containing the original information is not available. After loading the file in the usual manner, type the command GETPAT at the AutoCAD Command: prompt, select any (non-SOLID) hatch object, and the pattern information will be written to a .pat file having the same name as the pattern (e.g., pattern information for the hatch pattern WOODS will be written to WOODS.PAT. Ver. 1.01b includes two small fixex to eliminate "Bad Argument" LISP errors when run with certain installations of AutoCAD 2000+. |; (defun C:GETPAT (/ cmde hat elst rotn hnam temp xofs yofs what temp outf flin angl tmp1 tmp2 xvec yvec) (setq cmde (getvar "cmdecho")) (setvar "cmdecho" 0) (while (not (setq hat (entsel "\nSelect hatch: ")))) (setq elst (entget (car hat))) (if (= (cdr (assoc 0 elst)) "HATCH") (progn (setq rotn (* 180 (/ (cdr (assoc 52 elst)) pi)) hnam (cdr (assoc 2 elst)) hscl (cdr (assoc 41 elst)) ) ;; The following nine lines may optionally be omitted. ;; Their purpose is to create a temporary "clone" of the ;; selected hatch with a 0 deg. rotation angle, in case ;; the hatch object specified a rotation angle. If these ;; lines are omitted, the current rotation of the selected ;; hatch will become the "0" deg. rotation for the extracted ;; pattern definition. (if (not (zerop rotn)) (progn (setq temp elst) (entmake temp) (command "_.rotate" (entlast) "" (cdr (assoc 10 temp))(- rotn)) (setq elst (entget (entlast))) (entdel (entlast)) ) ) ;; End of optional code. (setq xofs (cdr (assoc 43 elst)) yofs (cdr (assoc 44 elst)) elst (member (assoc 53 elst) elst) ) (setq outf (strcat hnam ".pat")) (if (findfile outf) (progn (initget "Overwrite Append") (setq what (getkword (strcat "\n" outf " already exists; Overwrite/Append? "))) ) ) (setq outf (open outf (if (= what "Append") "a" "w")) flin (strcat "*" hnam) ) (foreach x elst (cond ((= (car x) 53) (write-line flin outf) (setq angl (cdr x) flin (trim (angtos angl 0 7)) ) ) ((= (car x) 43) (setq flin (strcat flin ", " (trim (rtos (/ (- (cdr x) xofs) hscl) 2 7)))) ) ((= (car x) 44) (setq flin (strcat flin "," (trim (rtos (/ (- (cdr x) yofs) hscl) 2 7)))) ) ((= (car x) 45) (setq tmp1 (cdr x)) ) ((= (car x) 46) (setq tmp2 (cdr x) xvec (/ (+ (* tmp1 (cos angl))(* tmp2 (sin angl))) hscl) yvec (/ (- (* tmp2 (cos angl))(* tmp1 (sin angl))) hscl) flin (strcat flin ", " (trim (rtos xvec 2 7)) "," (trim (rtos yvec 2 7))) ) ) ((= (car x) 49) (setq flin (strcat flin ", " (trim (rtos (/ (cdr x) hscl) 2 7)))) ) ((= (car x) 98) (write-line flin outf) ) (T nil) ) ) (write-line "" outf) (close outf) (alert (strcat hnam " pattern definition written to " hnam ".PAT")) ) (alert "Selected object not a HATCH.") ) (setvar "cmdecho" cmde) (princ) ) (defun trim (x / n) (setq n (strlen x)) (while (= (substr x n 1) "0") (setq n (1- n) x (substr x 1 n) ) ) (if (= (substr x n 1) ".") (setq x (substr x 1 (1- n))) ) x ) (alert (strcat "GETPAT.LSP (c) 2003 Tee Square Graphics\n" " Type GETPAT to start" ) ) (princ)
  5. 2 điểm
    Mặt bằng KHOA BV 01.dwg
  6. 2 điểm
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun c:test(/ dt sdt ent id) (setq dt (ssget '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT") (-4 . "OR>") )) sdt (sslength dt) id 0 ) (repeat sdt (setq ent (ssname dt id) id (1+ id)) (a2t ent) (entdel ent) ) (princ) ) ;;;;;;;;;;;;;;;;;;;;; (defun a2t(ent / lts lts2) (setq lts (entget ent)) (if (= (cdr (assoc 0 lts)) "MTEXT") (setq lts2 (list (assoc 0 lts)(assoc 5 lts)(assoc 8 lts)(CONS 100 "AcDbEntity")(CONS 100 "AcDbMText") (assoc 10 lts) (assoc 40 lts)(assoc 41 lts) (assoc 71 lts)(assoc 72 lts)(assoc 1 lts) (assoc 7 lts) (assoc 210 lts) (assoc 11 lts)(assoc 42 lts)(assoc 43 lts)(assoc 50 lts)(assoc 73 lts)(assoc 44 lts))) (setq lts2 (list (assoc 0 lts)(assoc 40 lts) (assoc 8 lts) (assoc 10 lts) (assoc 1 lts) (assoc 7 lts))) ) (entmakex lts2) ) Với Att bạn dùng lệnh Burst, với text thì mình viết cho bạn 1 lisp, bạn quét chọn các text, có thể quét thoải mái không cần phải lựa có field hay không nhé ::
  7. 2 điểm
    + Lisp bạn đăng lên: (command "trim" tm2 "" (ssget "c" d4 d3) ""), thì dòng (ssget "c" d4 d3) này là thế nào? Tại sao không dùng lệnh đầu tiên bạn đăng: ( command "trim" tm2 "" "f" d4 d3 "" "") + Lúc được lúc không có thể do Cad bắt điểm nhầm. Vậy nên bạn hãy tắt chế độ bắt điểm rồi thử lại xem thế nào. Code: (setvar "osmode" 0) (defun c:fff (/ p d1 d2 d3 tm1 tm2) (command "cmdecho" 0) (setq oldos (getvar "osmode")) (setvar "osmode" 0) (setq p (getpoint "\Chon diem dat:")) (setq d1 (polar p (/ (* pi 90) 180) 2000)) (setq d2 (polar p 0 1000)) (setq d3 (polar d1 (/ (* pi 135) 180) 1000)) (setq d4 (polar d1 (/ (* pi 90) 180) 2000)) (setq a (polar p 0 1000)) (command "line" p d4 "") (setq tm1 (entlast)) (command "line" d2 d1 "") (setq tm2 (entlast)) (command "trim" tm2 "" "f" d4 d3 "" "") (setvar "osmode" oldos) (princ) )
  8. 2 điểm
    okie bác, tối e gọi bác làm cốc cf nhỉ
  9. 2 điểm
    Kể ra mà trang đầu có NHỮNG BÀI VIẾT MỚI NHẤT như ngày xưa thì diễn đàn đỡ... "nhợt nhạt" hơn:
  10. 2 điểm
    Là vầy :) (defun c:isb()(command ".-insert" "Ten block" pause 1 1 pause))
  11. 1 điểm
    Trao đổi tí: Cái anh ti lệ này cũng hay lằng nhằng. Thông thường bản vẽ chỗ mình cài vào biến DIMLFAC để tiện ghi kích thước luôn. Đồng thời cho DIMLFAC hiện ở dòng trạng thái, liếc nhìn xuống góc trái là biết mình đang ở tỉ lệ nào cho chắc ăn mà vẽ. Để tiện muốn thay đổi tỉ lệ 1/500 chẳng hạn mình oánh 500 rồi enter. Trong một bản vẽ chỗ mình rât nhiều hình, mỗi hình vẽ một tỉ lệ khác nhau
  12. 1 điểm
    Code cho bạn: < Bài của bạn không có ai trả lời vì mọi người đã phải trả lời rất nhiều bài viết tương tự như thế này rồi, vậy nên nếu có thời gian thì bạn học lisp 1 tí, không khó mà lại khá hay ) (DEFUN C:AE ( / ss la rv i tv op en) (or ae.tyle (setq ae.tyle 100)) (setq ae.tyle (cond ((getreal (strcat "\nNhap ty le ban ve: 1/< " (rtos ae.tyle 2 0) " >:")))(ae.tyle))) (while (not ss) (princ "\nPick object on the required layers") (setq ss (ssget))) (initget "Length Area") (setq rv (getkword "\nWould you like to measure L/<A> : ")) (and (not rv) (setq rv "Area")) (setq la (cdr (assoc 8 (entget (ssname ss 0)))) i (sslength ss) tv 0 op 0) (while (not (minusp (setq i (1- i)))) (setq en (ssname ss i)) (command "_.AREA" "_E" en) (cond ((= rv "Length") (setq tv (+ tv (* (getvar "PERIMETER") ae.tyle )))) (T (setq tv (+ tv (* (getvar "AREA") ae.tyle ae.tyle))) (if (/= (logand (cdr (assoc 70 (entget en))) 1) 1) (setq op (1+ op)))))) (princ (strcat "\nTotal " rv " = " (rtos tv 2 3) " in " (itoa (sslength ss)) " polylines\n" (if (/= rv "Length") (strcat (itoa op) " with open polylines") ""))) (SETVAR "CMDECHO" 0) (princ (strcat "\nGia tri " rv " tinh duoc : " (rtos tv))) (terpri) (setq s1 (entget (car (entsel "Chon Text ghi gia tri : ")))) (setq otext (assoc 1 s1)) (setq ot (cdr otext)) (setq ot (read ot)) (setq nt (cons 1 (strcat (rtos tv 2 2)))) (entmod (subst nt otext s1)) (command "luprec" "2") (setq s1 (ssget)) (command"chprop" "p" "" "c" 6 "") (prin1))
  13. 1 điểm
    + Yêu cầu chủ bài bình luận gì thì viết vào "Trả lời chủ đề này...", nó nằm dưới bài viết. Chứ không phải vào thông tin cá nhân rồi điền vô mục"Báo cáo"... mệt chết người. Xóa đi xóa lại 4,5 lần rồi mà không nhận ra. :((((((. + Muốn người khác giúp thì đưa hẳn bản vẽ cad lên: Làm thầy bói thì không thể chữa bệnh được ! + Kiểm tra font: Thì gõ lệnh "St". Xem cái font chữ đang dùng có bị lỗi không. Muốn biết chữ kích thước đang dùng font gì thì chọn 1 đường kích thước rồi ngó lên thông tin font chữ.
  14. 1 điểm
    Anh thử đặt biến MEASUREMENT= 0 xem thế nào.
  15. 1 điểm
    Tham khảo các bài viết này: http://www.cadviet.com/forum/topic/169835-các-bác-cho-em-hỏi-hiện-tượng-nét-vẽ-trong-layer-màu-xanh-mà-nó-lại-hiển-thị-sang-đỏ-nét-đỏ-hiển-thị-sang-xanh-là-lỗi-gì-ạ/ https://forums.autodesk.com/t5/autocad-forum/autocad-2018-inverse-color-problem/td-p/7197617 Không được thì đưa bản vẽ lên để có cơ ở đoán lỗi.
  16. 1 điểm
    Liên hệ anh NguyenThanhDuan trên CadViet. Anh ấy viết để bán chứ không cho. Rẻ thôi
  17. 1 điểm
    + Lưu ý khi sử dụng lisp: Đối tượng chọn text ban đầu là "Dtext". Không áp dụng cho Mtext". Đối tượng L là đường thẳng, không phải Block, ( kể cả lisp của bác #DuongTrungHuy cũng không xài được với block) + Chỉ áp dụng cho 1 loại: ký hiệu @. Bạn có thể thay "@" bằng ký kiệu khác trong lisp tùy ý.
  18. 1 điểm
    Rãnh rỗi luyện tý (defun C:thaytext(/ ndtexttt cuoi dau vttim ndtex khcach chieudai) (command "cmdecho" 0) (setq dtthep (car (entsel "\nChon doi tuong lay chieu dai."))) (setq chieudai (vlax-curve-getDistAtParam dtthep (vlax-curve-getEndParam dtthep))) (setq point1 (getpoint "\nChon diem thu 1")) (setq point2 (getpoint point1 "\nChon diem thu 2")) (setq khcach (distance point1 point2)) (setq dttext (entsel "\nChon doi tuong text thay the")) (setq ndtext (cdr (assoc 1 (entget (car dttext))))) (if (setq vttim (vl-string-search "@" ndtext)) (setq vttim (vl-string-search "@" ndtext)) (setq vttim (vl-string-search "-" ndtext))) (setq dau (substr ndtext 1 vttim)) (setq cuoi (substr ndtext (+ vttim 1))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (setq thongtin (entget (car dttext))) (setq giatricu (assoc 1 thongtin)) (setq giatrimoi (cons 1 (strcat dau "," (rtos chieudai 2 0) "," cuoi "," (rtos khcach 2 0)))) (setq thongtin (subst giatrimoi giatricu thongtin)) (entmod thongtin) (command "_change" dttext "" "p" "c" "1" "") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (princ) )
  19. 1 điểm
    F8 thì theo ngang hoặc đứng
  20. 1 điểm
    Bạn xin gì mà xin lắm thế ! Tự thân vận động mà tím kiếm trên diễn đàn đi ! + Lisp xuất chiều dài theo layer: Đã có. (Block đè lên- không có lisp, và lisp không khả thi ) + Lisp xuất text theo excel: Đã có
  21. 1 điểm
    Gửi bác bản sơ cua nhất: (defun c:test () (setq ds1 (list 'A 'B) ds2 (list 1 2 3) ds3 (list 1.2 2.3 3.2 2.1)) (setq ds123 (list (nth 0 ds3) (nth 0 ds2) (nth 1 ds3) (nth 0 ds1) (nth 1 ds2) (nth 2 ds3) (nth 1 ds1) (nth 2 ds2) (nth 3 ds3))) (princ) )
  22. 1 điểm
    Không phải khác version, mà của mình dùng text, của bạn dùng block. Mình cũng thử tạo block, chỉ có thể mirror để được như ý của bạn thôi :)
  23. 1 điểm
    Bạn tìm kiếm trên diễn đàn từ khóa: error: no function definition: VLAX là sẽ ra lỗi ! Nếu không biết sửa nữa thì quay lại đây mọi người trả lời tiếp ( Khuyến khích tự tìm hiểu :P )
  24. 1 điểm
    Quăng câu hỏi lên thấy dễ ghét! Số pi là số thập phân không tuần hoàn có số chữ số thập phân dài vô tận. (setq so (ssget (list '(0 . "*TEXT") (cons 50 (/ pi 2))))) Thậm chí dòng code trên cũng chưa chắc 100% nữa.
  25. 1 điểm
    Chào các bác, lâu lắm mới đụng đến CAD, mình có một nhu cầu như thế này chắc cũng nhiều người cần nên post ý tưởng xem có bác nào hứng thú thì triển nhé. Chiều nay mình nhận được bản vẽ thiết kế kiến trúc của đối tác tư vấn, mấy ông này chơi toàn mẫu hatch lạ không có sẵn trong thư viện custom hatch nên chỉ hiển thị chứ không chỉnh sửa được. Mình nhớ trước đây khi nghiên cứu để viết mấy hàm con entmake object thì cấu trúc code dxf của đối tượng hatch có các thông tin sau: 1. Tên pattern (mẫu hatch) của đối tượng hatch. 2. Giá trị mô tả toàn bộ tập hợp vector cấu tạo ra mẫu pattern của đối tượng hatch. Như chúng ta đã biết (có thể một số bác không biết), thư viện pattern của hatch được đặt trong 1 file đặt trong thư mục support của cad (tên gì mình cũng quên rồi, post bài này bằng máy tính ở nhà không có Cad các bác thông cảm) . Nó lưu giữ 2 thông tin mình nêu trên và được tải vào cad khi khởi động. Như vậy với 1 mẫu hatch lạ từ một bản vẽ lạ, ta có thể thu được thông tin của pattern mà mẫu hatch đó sử dụng để cập nhật vào thư viện của mình. Việc cập nhật này cho phép chúng ta làm được 2 việc: 1 là có thể thực hiện thao tác Edit bất cứ đối tượng hatch nào. kể cả là mẫu hatch lạ. 2 là có thêm đồ để chơi cho bằng anh bằng em. Ý tưởng thì như vậy. Triển khai thì chỉ đơn giản là nhúng thêm 1 đoạn code vào lệnh Hatchedit như sau: đọc mã DXF của đối tượng hatch -> kiểm tra xem tên pattern đã có trong thư viện chưa -> Nếu chưa thì đọc code cấu tạo vector của nó -> ghi thông tin thu được vào file thư viện -> load lại file thư viện -> tiếp tục thực hiện lệnh hatch edit như bình thường. Mình chỉ nêu ý tưởng và hóng thôi chứ giờ không viết nổi. Thank các bác đã đọc đến đây :D
  26. 1 điểm
    (vlax-dump-object object t) VD: LINE Command: (vlax-dump-object (vlax-ename->vla-object (car (entsel))) t) Select object: ; IAcadLine: AutoCAD Line Interface ; Property values: ; Angle (RO) = 0.610207 ; Application (RO) = #<VLA-OBJECT IAcadApplication 00d077b4> ; Delta (RO) = (8.84753 6.18643 0.0) ; Document (RO) = #<VLA-OBJECT IAcadDocument 02182448> ; EndPoint = (59.4997 20.2827 0.0) ; Handle (RO) = "C0" ; HasExtensionDictionary (RO) = 0 ; Hyperlinks (RO) = #<VLA-OBJECT IAcadHyperlinks 0209bb34> ; Layer = "0" ; Length (RO) = 10.7959 ; Linetype = "ByLayer" ; LinetypeScale = 1.0 ; Lineweight = -1 ; Material = "ByLayer" ; Normal = (0.0 0.0 1.0) ; ObjectID (RO) = 2130296960 ; ObjectName (RO) = "AcDbLine" ; OwnerID (RO) = 2130291960 ; PlotStyleName = "ByLayer" ; StartPoint = (50.6521 14.0962 0.0) ; Thickness = 0.0 ; TrueColor = #<VLA-OBJECT IAcadAcCmColor 08d18500> ; Visible = -1 ; Methods supported: ; ArrayPolar (3) ; ArrayRectangular (6) ; Copy () ; Delete () ; GetBoundingBox (2) ; GetExtensionDictionary () ; GetXData (3) ; Highlight (1) ; IntersectWith (2) ; Mirror (2) ; Mirror3D (3) ; Move (2) ; Offset (1) ; Rotate (2) ; Rotate3D (3) ; ScaleEntity (2) ; SetXData (2) ; TransformBy (1) ; Update () T Hoặc: (entget (vlax-vla-object->ename object))
  27. 1 điểm
    Chào các bác, mình muốn chuyển tất cả Block attribute và Field (trong và ngoài block) có trong file CAD thành Text hết trước khi gửi file cho đối tác, nhưng tìm mãi không thấy Lisp. Mình thấy lệnh Burst có thể chuyển Block attribute thanh Text nhưng phải Select object mới được, nhưng mình cần lisp có thể tự động tìm và chuyển tất cả. Mình gửi 1 file TEST kèm theo để các bác chạy thử. Mong các bác hỗ trợ! Cảm ơn rất nhiều. TEST.dwg
  28. 1 điểm
    Thấy cũng thú vị trình chiếu cho vui.
  29. 1 điểm
    Thì mình đâu có nói chọn đối tượng ename dùng cho lệnh gì, mình chỉ nói chung là sữ dụng trong lisp :) chứ trong lisp mà bạn dùng chọn window hay fence 1 cách tự viết code cho lisp chọn thì thật nguy hiểm, vì bạn không kiểm soát được nó quét qua những đối tượng nào
  30. 1 điểm
  31. 1 điểm
    (defun c:dx () (princ "\nchon duong muon xien theo") (command ".ucs" "ob" pause) (setq dddn (getpoint "\nDiem viet dim")) (setq dddd (getpoint "\nDiem thu nhat")) (while (setq dddt (getpoint dddd "\nDiem do tiep theo <ENTER de ket thuc>")) (command ".DIMLINEAR" "non" dddd "non" dddt "non" dddn) (setq dddd dddt) ) (command ".ucs" "p") (Princ)) Về cơ bản là như này
  32. 1 điểm
    Vẽ Pline kín thì điểm cuối cùng nên đánh chữ "C" (close) bạn đừng chọn lại điểm đầu, VD: (command "pline" p d1 d2 p "") >>> (command "pline" p d1 d2 "c") cái này mình thấy rất nhiều người dùng không để ý, nhưng nó cực kỳ quan trọng khi chỉnh sữa đối tượng pline kín hay hở, nhất là liên quan đến hatch :)
  33. 1 điểm
    + Code: (command "-hatch" (getpoint "Pick point) "") + Khuyến nghị: Khi dùng "Command" trong lisp thì nên dùng câu lệnh có "-" hoặc "." đầu câu lệnh: Ví dụ "Hatch" thành "-Hatch"... Việc đổi này nhằm thực hiện lệnh trực tiếp trên dòng Command chứ không xuất hiện bảng lệnh. Ví dụ: Trường hợp chọn "Pick point". Nếu dùng lệnh Hatch thì xuất hiện bảng , phải nhấn nút "Pick point". Còn dùng lệnh "-Hatch" thì nó tự có "pick point" rồi.
  34. 1 điểm
    Cũng hay nhỉ! có vẻ dùng break sẽ chắc chắn hơn trim. Nhưng phải là (command "break" tm1 "f" d1 d4) chứ! Thanks bạn nhé!
  35. 1 điểm
    Ngu kiến của mình sao chủ thớt không dùng Break thay dim trong trường hợp này nhỉ? đỡ tốn công hơn nhiều: không cần set tm2: (setq tm2 (entlast)) (command "trim" tm2 "" (ssget "c" d4 d3) "") >>>(command "Break" tm1 d1 d4)
  36. 1 điểm
    bạn phải chụp cái bản setting của bạn lên đây, mọi người xem mới biết cần sửa chổ nào, như của mình thường tick thế này, có thể do bạn tick vào ô always left justify
  37. 1 điểm
    Ưng dùng Crossing thì (command "trim" tm2 "" "c" "non" d4 "non" d3 "")
  38. 1 điểm
  39. 1 điểm
    Khi copy , paste thì toạ độ mặc định của cad là điểm Bên trái+Dưới cùng của hình chữ nhật "tưởng tượng" bao quanh toàn bộ đối tượng bạn copy. Ví dụ thực tế : bạn hãy copy 1 hình tròn rồi paste nó, bạn sẽ thấy ngay điểm chèn là điểm nào :)))
  40. 1 điểm
    Tặng bạn cái code, trong đó đã có hướng dẫn cách sử dụng. Bạn chạy thử rồi cho ý kiến. Test.rar
  41. 1 điểm
    + Phải mở bản vẽ lên , ngẫm mãi mới hiểu ý của bạn ! Bạn nêu giải thích rõ hơn từ "Ghép" là như thế nào, ý muốn ghép ra sao , thực hiện thủ công như thế nào, có thể đăng hình ảnh để mọi người dễ hiểu. Chứ muốn giúp mà phải mở bản vẽ lên thì mất công lắm. + Nếu đầu tuần sau không ai giúp bạn thì mình sẽ giúp. Dự là không cần phải dùng lisp.
  42. 1 điểm
    :) có 1 cách là bạn tạo thêm 1 block nữa, ngược với block kia thôi
  43. 1 điểm
    Hỏi dại 1 xíu :v Ý bạn muốn biến 1 Polyline thành 1 đường thẳng nối điểm đầu và điểm cuối ? :))))
  44. 1 điểm
    Có. Nhưng vì là phần mềm thương mại viết chung nên chỉ bán mà không cho được.
  45. 1 điểm
    Lệnh fillet khi dùng trong hàm command hơi khác với các lệnh khác nên cách viết của bạn không đúng. Hoặc viết như anh Duy, hoặc viết như này thì được (phải 2 lần gọi fillet): (command "fillet" "R" bk) (command "fillet" ent1 ent2)
  46. 1 điểm
    Bạn nên tập đọc nội dung của lisp, so sánh lisp cũ của bạn và lisp mới này. Lisp này mình sửa mục đích là lưu giá trị cũ cho việc dùng lần sau như yêu cầu của bạn. Vì bạn biết chút ít về lisp nên mình làm theo hướng, hướng dẫn... mặt khác để khi test khỏi mất công tạo các block mình đã cho lisp tạo các text... Bạn so sánh 2 lisp và sửa lại cho đúng nhu cầu.
  47. 1 điểm
    Nếu có điểm A rồi thì code như sau: (command "offset" [khoảng cách offset] [đối tượng offset] [A] "") Ví dụ code offset limit: (defun c:oo ( / sskc ssrepeat ssobject sspoint ssnumber) (setq sskc (getdist "\nNhap khoang cach Offset: ") ssrepeat (getint "\nNhap so lan Offset: ") ssobject (car (entsel "\nChon doi tuong Offset : ")) sspoint (getpoint "\nChon phia Offset")) ;;;;;; Thuc hien chuong trinh (setq ssnumber 0) (repeat ssrepeat (progn (setq ssnumber (+ 1 ssnumber)) (command "offset" (* sskc ssnumber) ssobject sspoint ""))) (princ) )
  48. 1 điểm
    Bạn bị trừ điểm vì các lý do sau: + Không giải thích rõ: Thế nào là "Tự động chọn đối tượng" . Không có thao tác chọn đối tượng thì lấy đâu ra cái gì để offset? + Khái niệm : Tự offset là thế nào? Quy luật nó ra làm sao? Nếu diễn đạt không để người khác hiểu thì làm sao mong nhận được sự giúp đỡ từ người khác.
  49. 1 điểm
    Theme này nhìn k yêu tí nào a ạ ^^
  50. 1 điểm
    Quả thực em thấy giao diện nhợt nhạt như thế nào ấy, không đậm và rõ như hồi xưa
Bảng thành tích này được đặt thành Tp. Hồ Chí Minh /GMT +07:00
×