Chuyển đến nội dung
Diễn đàn CADViet

huunhantvxdts

Thành viên
  • Số lượng nội dung

    767
  • Đã tham gia

  • Lần ghé thăm cuối

  • Ngày trúng

    30

Mọi thứ được đăng bởi huunhantvxdts

  1. huunhantvxdts

    Nối text cao độ

    Cái này chủ yếu người ta lấy cao độ để chuyển vào phần mềm thì phải.
  2. huunhantvxdts

    Nối text cao độ

    Thế bạn không đọc bản vẽ rồi. Tại một vị trí có 3 điểm point 3 cao độ khác nhau. Trong 3 cao độ đó chưa chắc đúng với cao độ text đã thể hiện, Nên giải pháp người ta đưa ra là nối text lại với nhau là chắc nhất.
  3. huunhantvxdts

    Nối text cao độ

    add zalo gửi file mình xem nhé zalo: 0848.998.045
  4. huunhantvxdts

    Nối text cao độ

    Sửa lại cho bạn nhưng kết quả nó phụ vẫn phụ thuộc vào khoảng cách text và tâm vòng tròn nhé (defun c:GTEXT (/ luubatdiem spc tapchon tapdiem lstss text gtricaodo phannguyen p1 phapphan gtridien diemtam) (command "undo" "BE") (setq luubatdiem (getvar "osmode")) (setvar "osmode" 0) (setvar "CMDECHO" 0) ;;;;;;;;;;;;;;;;;;;;;;; (setq spc (vla-get-ModelSpace (vla-get-ActiveDocument(vlax-get-Acad-Object)))) (command "-layer" "n" "Caodo" "c" 4 "Caodo" "") (setq h (getreal "\nNhap cao chu:")) (prompt "\nchon tap diem Point Text") (setq tapchon (acet-ss-to-list (ssget (list (cons 0 "CIRCLE"))))) (setq tapdiem (vl-remove-if-not '(lambda (x) (= (cdr (assoc 0 (entget x))) "CIRCLE")) tapchon)) ;(setq lstss (vl-remove-if-not '(lambda (x) (= (cdr (assoc 0 (entget x))) "TEXT")) tapchon)) (foreach ent tapdiem (setq p1 (cdr (assoc 10 (entget ent)))) (setq p2 (polar p1 (* 3 (/ pi 4)) 3)) (setq p3 (polar p1 (* 1 (/ pi -4)) 3)) (vla-ZoomCenter (vlax-get-acad-object) (vlax-3D-point p1) 200) (setq lstss (acet-ss-to-list (ssget "C" p2 p3 (list (cons 0 "TEXT"))))) (setq text (timtext p1 lstss)) (if text (progn (setq gtricaodo (vl-sort (list (cadr text) (caddr text)) '(lambda(x y) (< (car (car x)) (car (car y)))))) (setq phannguyen (cdr (car gtricaodo))) (setq phapphan (cdr (cadr gtricaodo))) (setq gtridien (strcat phannguyen "." phapphan)) (setq diemtam (car text)) (vla-put-Layer (vla-addtext spc gtridien (vlax-3d-point diemtam) h) "Caodo") ) ) ) (setvar "osmode" luubatdiem) (setvar "CMDECHO" 1) (command "undo" "End") )
  5. huunhantvxdts

    Nối text cao độ

    Mình xét khoảng cách min đến tâm vòng tròn nên sẽ có 1 số trường hợp text điểm này nhưng gần vòng tròn điểm kia với lại với tập điểm lớn như file bạn gửi sẽ chạy mất nhiều thời gian (Do trình chỉ xử lý được đến này thôi) Giải pháp chọn từng vùng để chạy Bạn dùng tạm cái này nhé! (defun timtext (point lsttext /) (setq lstcaodo (mapcar '(lambda (e) (cons (cdr (assoc 10 (entget e))) (cdr (assoc 1 (entget e))))) lsttext)) (setq kcminpoint (vl-sort lstcaodo '(lambda(x y / tmx tmy) (setq tmx (distance (list (car (car x)) (cadr (car x)) 0) point) tmy (distance (list (car (car y)) (cadr (car y)) 0) point)) (< tmx tmy)))) (setq pointtim (list point (car kcminpoint) (cadr kcminpoint))) ) (defun c:GTEXT (/ luubatdiem spc tapchon tapdiem lstss text gtricaodo phannguyen p1 phapphan gtridien diemtam) (command "undo" "BE") (setq luubatdiem (getvar "osmode")) (setvar "osmode" 0) (setvar "CMDECHO" 0) ;;;;;;;;;;;;;;;;;;;;;;; (setq spc (vla-get-ModelSpace (vla-get-ActiveDocument(vlax-get-Acad-Object)))) (command "-layer" "n" "Caodo" "c" 4 "Caodo" "") (setq h (getreal "\nNhap cao chu:")) (prompt "\nchon tap diem Point Text") (setq tapchon (acet-ss-to-list (ssget (list (cons 0 "CIRCLE,TEXT"))))) (setq tapdiem (vl-remove-if-not '(lambda (x) (= (cdr (assoc 0 (entget x))) "CIRCLE")) tapchon)) (setq lstss (vl-remove-if-not '(lambda (x) (= (cdr (assoc 0 (entget x))) "TEXT")) tapchon)) (foreach ent tapdiem (setq p1 (cdr (assoc 10 (entget ent)))) (setq text (timtext p1 lstss)) (setq gtricaodo (vl-sort (list (cadr text) (caddr text)) '(lambda(x y) (< (car (car x)) (car (car y)))))) (setq phannguyen (cdr (car gtricaodo))) (setq phapphan (cdr (cadr gtricaodo))) (setq gtridien (strcat phannguyen "." phapphan)) (setq diemtam (car text)) (vla-put-Layer (vla-addtext spc gtridien (vlax-3d-point diemtam) h) "Caodo") ) (setvar "osmode" luubatdiem) (setvar "CMDECHO" 1) (command "undo" "End") )
  6. huunhantvxdts

    Nối text cao độ

    Cần 1 bản vẽ thực tế, với bản vẽ mẫu với 1 vài cao độ như này thì việc nối không khó. Các bạn đưa bản mẫu quá lý tưởng đến khi vào thực tế text nó chồng lên nhau lại kêu sao lisp chạy không đúng rồi lại yêu cầu người viết bổ sung này nọ, rất khó cho người viết.
  7. huunhantvxdts

    Xin viết lsp cad vẽ bo từ các đường thẳng

    Mình thấy các bạn yêu cầu thì đưa ra các trường hợp thật lý tưởng, xong có người viết rồi thì lại áp dụng vào thực tế toàn trên trời rơi xuống. Thật khổ cho người nào hỗ trợ. Bạn nên đưa file thực tế của bạn đang làm rồi nhờ người nào đó có thể hỗ trợ hoặc gửi họ ít phí họ hỗ trợ luôn
  8. xem đoạn cuối nhé https://www.youtube.com/watch?v=T3GBr3VhJr0
  9. Cần có dữ liệu file đầy đủ nhé: Liên hệ: https://www.facebook.com/lienkettudong
  10. huunhantvxdts

    Tool in hàng loạt bản vẽ ra file .pdf cả model và layout

    Test thấy lỗi như thế này!! mình dùng cad2018 nhé Command: NETLOAD Cannot load assembly. Error details: System.IO.FileLoadException: Could not load file or assembly 'file:///C:\TLKT\lenh\XPR_PlotPro.dll' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515) File name: 'file:///C:\TLKT\lenh\XPR_PlotPro.dll' ---> System.NotSupportedException: An attempt was made to load an assembly from a network location which would have caused the assembly to be sandboxed in previous versions of the .NET Framework. This release of the .NET Framework does not enable CAS policy by default, so this load may be dangerous. If this load is not intended to sandbox the assembly, please enable the loadFromRemoteSources switch. See http://go.microsoft.com/fwlink/?LinkId=155569 for more information. at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) at System.Reflection.RuntimeAssembly.InternalLoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm, Boolean forIntrospection, Boolean suppressSecurityChecks, StackCrawlMark& stackMark) at System.Reflection.Assembly.LoadFrom(String assemblyFile) at Autodesk.AutoCAD.Runtime.ExtensionLoader.Load(String fileName) at loadmgd()
  11. huunhantvxdts

    Lisp dim khoảng cách liên tiếp trên Polyline - Pline

    Mình muốn làm tự động việc đo chiều dài chi tiết của các thanh thép. nhưng mày mò hoài vẫn chưa được nhờ mọi người giúp đỡ. Thanh thép là đường polyline có các cung tròn (điểm uốn thép) Đây là lisp mình lấy từ diễn đàn về có chỉnh sửa lại đôi chút nhưng vẫn đang làn thủ công: 1. Phải chọn điểm đặt cho từng DIM 2. Gặp phải đường cong tròn là phải chọn cung tròn và điểm đặt mới thực hiện được Nhờ mọi người giúp đỡ để công việc đó được nhanh hơn, chỉ cần chọn polyline và nhập khoảng cách hoặc pick chuột 1 lần (defun darl (/ e1 e2 ra an alen) ;; (command "dimradius" pause "") (setq e1 (entlast)) (command "dimangular" pause (getpoint "\n Chon diem dat ")) (setq e2 (entlast)) (setq Ra (cdr (assoc 42 (entget e1)))) (setq an (cdr (assoc 42 (setq el (entget e2))))) (setq alen (* ra an)) (entmod (subst (cons 1 (rtos alen 2 2)) (assoc 1 el) el)) (command "erase" e1 "") ) ;;;;;;;;;;;;;;;;;;; (defun c:dimpo (/ e verl els bulst k i p1 p2 ) (vl-load-com) (setq e (car (entsel "\n Chon duong can do "))) (setq verl (acet-geom-vertex-list e) els (entget e) bulst (list) k 0 ) (command "undo" "be") (foreach en els (if (= (car en) 42) (setq bulst (append bulst (list (list (nth k verl) (cdr en)))) k (1+ k) ) ) ) (foreach bul bulst (setq i (vl-position bul bulst) p1 (nth i verl) p2 (nth (1+ i) verl)) (if (and p1 p2) (progn (if (= (cadr bul) 0) (command "dimaligned" p1 p2 (getpoint "\n Chon diem dat ")) (progn (command "_dimarc" pause (getpoint "\n Chon diem dat ")) (command "dimradius" pause "") ) ;(darl) ) ) ) ) (command "undo" "e") ) Đây là file đính kèmhttp://www.cadviet.com/upfiles/5/66960_thu.dwg
  12. huunhantvxdts

    [ Yêu cầu Lisp Tạo Point Tâm miền kín]

    Tham khảo lisp của bác Doan Duy Hung nhé: https://www.cadviet.com/forum/topic/93584-nhờ-viết-lisp-hatch-vùng-kín-của-các-đối-tượng-giao-nhau/?page=2
  13. Đây là lisp mình viết đang còn hạn chế về tính tự động(chỉ tính từng hạng mục một).Bây giờ muốn phát triển thêm tính nhiều hạng mục chỉ 1 lần chạy: ý tưởng thì có nhưng viết lại không được mới khổ chứ: 1. Sẽ định nghĩa đối tượng tương ứng với hạng mục Hạng mục 1 1.1 chọn đối tượng 1.2 chọn text hạng mục có sẳn (nếu ghi thì tôt hơn) 1.3 chọn đơn vị m or m2 Hạng mục 2 1.1 chọn đối tượng 1.2 chọn text hạng mục có sẳn (nếu ghi thì tôt hơn) 1.3 chọn đơn vị m or m2 .......... Sau khi định nghĩa xong các hạng mục Enter thì lisp điền diện tích luôn. Và đây là lisp: (defun c:DTTN (/ NDTS dem1 lstkm point kcach point1 pointtim diemtam xuongdong kt diemtren1) (setvar "CMDECHO" 0) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (setq lop1 "entdauco") (prompt "\nChon Pline hoac Hatch mau tinh dien tich.") (setq fltr (ssx_fe)) (prompt "\nChon Text ghi dien tich.") (setq DTS (car (entsel))) (setq DTS (entget DTS)) (setq NDTS (cdr (assoc 1 DTS))) (command "-layer" "new" "Tinh dien tich TN" "color" "2" "Tinh dien tich TN" "") (command "-layer" "set" "Tinh dien tich TN" "") (if (null cdtxt) (caidat) ) (setq th (getvar "textsize")) (setq dentay (- dentay (* 1.5 th))) ;(prompt "\nChon trac ngang.") (setq danhsachkm (acet-ss-to-list (ssget "X" (list (cons 8 lop1) (cons 1 "K*"))))) (setq lstkm (mapcar '(lambda (e) (cons (cdr (assoc 11 (entget e))) (cdr (assoc 1 (entget e))))) danhsachkm)) (setq lstkm (vl-sort lstkm '(lambda(x y / tmx tmy) (setq tmx (timlt x) tmy (timlt y)) (or (< (car tmx) (car tmy)) (and (= (car tmx) (car tmy)) (< (last tmx) (last tmy))))))) (setq ss (acet-ss-to-list (ssget "X" '((0 . "LINE")(8 . "ENTTNTUNHIEN"))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (setq dem1 1) (setq sodt (length danhsachkm) ta (chr 8) stxoa (strcat ta ta ta ta ta ta ta ta ta ta ta ta ta ta ta ta ta ta ta ta) stxuly "Xu ly duoc: " ptcu nil ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (foreach ent lstkm (setq point (car ent)) (setq kcach (distance point (cdr (assoc 11 (entget (nth 0 ss)))))) (foreach enxt ss (setq point1 (cdr (assoc 11 (entget enxt)))) (setq toay (cadr point1)) (if (and (< (distance point1 point) kcach) (< toay (cadr point)) (equal (car point1) (car point) 1)) (progn (setq pointtim (cdr (assoc 11 (entget enxt)))) (setq kcach (distance pointtim point)) ) ) ) (setq diemtam (polar pointtim (/ pi 2) (/ kcach 2))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (vla-ZoomCenter (vlax-get-acad-object) (vlax-3D-point diemtam) (+ kcach 50)) (setq dd (acet-ss-to-list (ssget "C" (polar pointtim 0 0.1 ) (polar pointtim 0 0.15 ) '((0 . "LINE")(8 . "ENTTNTUNHIEN"))))) (setq diemdau (cdr (assoc 10 (entget (car dd))))) (setq diemcuoi (cdr (assoc 11 (entget (car dd))))) (setq diemtren (polar point (/ pi 2) 10)) (setq diemtren1 (list (car diemcuoi) (cadr diemtren) 0)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (setq SSS (ssget "C" diemdau diemtren1 fltr)) (if (/= sss nil) (progn (setq i 0) (setq s 0) (setq N (sslength sss)) (while (< i N) ;(luuos) (setvar "osmode" 0) (setq DT (ssname sss i)) (setq j 0) (setq ent1 (ssname data 0)) (setq diemchuan (cdr (assoc 10 (entget ent1)))) (Command "area" "o" DT) (if (= (getvar "area") 0) (progn (setq s (+ s (getvar "PERIMETER"))) (setq i (1+ i)) (setq donvi "m") ) (progn (setq s (+ s (getvar "AREA"))) (setq i (1+ i)) (setq donvi "m2") ) )) (setq diemghi (polar diemchuan 0 dentax)) (setq diemghi (polar diemghi (/ pi 2) dentay)) (setq txt NDTS) (command "TEXT" diemghi th 0 txt) (setq pointt11 (polar diemghi 0 cdtxt)) (command "TEXT" pointt11 th 0 ":") (setq pointt1 (polar pointt11 0 cdsokl)) (command "TEXT" "J" "R" pointt1 th 0 (rtos s 2 2)) (setq point2 (polar pointt1 0 0.2)) (command "TEXT" point2 th 0 donvi) ;(traos) ) (progn (setq data (ssget "C" diemdau diemtren1 '((0 . "INSERT") (8 . "entdauco")))) (setq ent1 (ssname data 0)) ;(luuos) (setvar "osmode" 0) (setq diemchuan (cdr (assoc 10 (entget ent1)))) (setq diemghi (polar diemchuan 0 dentax)) (setq diemghi (polar diemghi (/ pi 2) dentay)) (setq txt NDTS) (command "TEXT" diemghi th 0 txt) (setq pointt11 (polar diemghi 0 cdtxt)) (command "TEXT" pointt11 th 0 ":") (setq pointt1 (polar pointt11 0 cdsokl)) (command "TEXT" "J" "R" pointt1 th 0 "0.00") (setq point2 (polar pointt1 0 0.2)) (command "TEXT" point2 th 0 donvi) ;(traos) ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; xu ly phan tram chay o duoi (setq pt (* (/ (* dem1 1.0) sodt) 100.0) dem1 (+ dem1 1) ) (if (/= pt ptcu) (progn (princ (strcat stxoa stxuly (rtos pt 2 0) "%")) (setq ptcu pt) ) ) ;(princ "\nDang xu ly") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (setvar "MODEMACRO" "DANG CHUYEN DU LIEU CHO TRONG GIAY LAT") ) (setvar "CMDECHO" 1) ;(thoi) ) (defun timlt (st / tm) (setq tm (vl-string->list (substr (strcase (cdr st)) (+ 3 (vl-string-search "KM" (strcase (cdr st))))))) (read (strcat "(" (vl-list->string (subst 32 43 (subst 32 58 tm))) ")")) ) (defun Caidat (/ htxt httxt ltxt lsokl) (if (null dentax) (progn (setq dentax 10) (setq dentay 10) )) (setq x (getstring (strcat "\nKhoang cach dien phuong x <"(rtos dentax)"> :"))) (setq y (getstring (strcat "\nKhoang cach dien phuong y <"(rtos dentay)"> :"))) (if (/= x "") (setq dentax (atof x))) (if (/= y "") (setq dentay (atof y))) (setq htxt 0.2) (setq httxt (getstring (strcat "\nNhap chieu cao chu <"(rtos htxt)"> :"))) (if (/= httxt "") (setq htxt (atof httxt))) (setvar "textsize" htxt) (setq cdtxt 4.5) (setq ltxt (getstring (strcat "\nNhap chieu dai chuoi <"(rtos cdtxt)"> :"))) (if (/= ltxt "") (setq cdtxt (atof ltxt))) (setq cdsokl 0.75) (setq lsokl (getstring (strcat "\nNhap chieu dai chu so khoi luong <"(rtos cdsokl)"> :"))) (if (/= lsokl "") (setq cdsokl (atof lsokl))) ) (defun C:Caidatlai (/ htxt httxt ltxt lsokl) (if (null dentax) (progn (setq dentax 10) (setq dentay 10) )) (setq x (getstring (strcat "\nKhoang cach dien phuong x <"(rtos dentax)"> :"))) (setq y (getstring (strcat "\nKhoang cach dien phuong y <"(rtos dentay)"> :"))) (if (/= x "") (setq dentax (atof x))) (if (/= y "") (setq dentay (atof y))) (setq htxt 0.2) (setq httxt (getstring (strcat "\nNhap chieu cao chu <"(rtos htxt)"> :"))) (if (/= httxt "") (setq htxt (atof httxt))) (setvar "textsize" htxt) (setq cdtxt 4.5) (setq ltxt (getstring (strcat "\nNhap chieu dai chuoi <"(rtos cdtxt)"> :"))) (if (/= ltxt "") (setq cdtxt (atof ltxt))) (setq cdsokl 0.75) (setq lsokl (getstring (strcat "\nNhap chieu dai chu so khoi luong <"(rtos cdsokl)"> :"))) (if (/= lsokl "") (setq cdsokl (atof lsokl))) ) Đây là file test: http://www.cadviet.com/upfiles/5/66960_vi_du.dwg
  14. Cái này chắc làm được
  15. Để được mọi người giúp đỡ, cái tốt thiểu là bạn phải đưa file cad hoặc chí ít là hình ảnh. Bạn làm như ai cũng biết cái bạn đang nói.
  16. huunhantvxdts

    Tách hình vẽ trong cad

    Lisp bạn nhé
  17. huunhantvxdts

    Tách hình vẽ trong cad

    Tham khảo nhé https://www.youtube.com/watch?v=muXvTvS-zSA
  18. huunhantvxdts

    Xin xỏ lisp tạo và đổi tên Block

    Chán thật sự luôn đi chứ! Nhờ người ta viết, người ta viết xong không test phán 1 câu thôi e về làm thủ công cho nó nhanh
  19. huunhantvxdts

    Xin xỏ lisp tạo và đổi tên Block

    Bác này người ta sắp máy bay và tên lửa rồi. thấy nó hiện đại quá không quen nên muốn về đi bộ cho nhanh
  20. huunhantvxdts

    Xin xỏ lisp tạo và đổi tên Block

    Bạn xem clip mà không hiểu rồi. thế thì về làm thủ công là phải rồi Người ta quét 1 cái là xong luôn rồi còn ngồi đó mà chọn từng khung cửa sổ
  21. huunhantvxdts

    xuất khoảng cách giữa các lỗ khoan

    Cần xem thêm cách sắp xếp dữ liệu xuất ra nữa bạn nhé liên hệ zalo: 0848.998.045
  22. huunhantvxdts

    lisp vè đường pline theo số liệu excel

    Thấy file dữ liệu thiếu khoảng cách có thể liên hệ mình zalo: 0848998045
  23. huunhantvxdts

    Xin lisp và cách sử dụng lisp thống kê thép dầm, sàn, cột, đai

    liên hệ zalo 0848998045 gửi bản vẽ cho mình xem trước nhé
  24. huunhantvxdts

    Chọn Block Dynamic cùng tên nhưng khác thông số Parameter

    Cái này cần file cad thực tế bạn nhé liên hệ zalo 0848998045
  25. huunhantvxdts

    TẠO NHIỀU BLOCK CÙNG MỘT LÚC

    Lisp sẽ thay bạn việc copy và sửa text bạn chỉ cần chọn tất cả nhưng cái bạn cần chèn block. Đồng ý tạo block att liên hệ mình để trao đổi thêm mấy cái add zalo nhé 0848998045
×