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

ngohung104

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

    11
  • Đã tham gia

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

Bài đăng được đăng bởi ngohung104


  1. 10 phút trước, huunhantvxdts đã nói:

    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")
    )

     

    Cảm ơn bạn nhé, tốc độ xử lý nhanh hơn trước rất nhiều rồi. Nhưng vẫn vài text bị lỗi mà mình dò thì k biết lỗi như thế nào.

    image.png


  2. 42 phút trước, huunhantvxdts đã nói:

    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é!

    Thank bạn đã giúp đở nhé. Nhưng đối với những tập dử liệu lớn thì lâu quá, m bị treo máy luôn. Và thêm nửa là vẫn có kha khá tọa độ bị sai bạn à.


  3. Quote

    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.

    Cảm ơn bạn đã quan tâm. Mình xin gửi lại bạn file đầy đủ hơn.

    Vidu_Noitext_2.dwg


  4. Quote
    1 giờ} trướ}c, thanhduan2407 đã nói:

    Bản vẽ bạn gửi không cần lisp gì cả. Xuất toạ độ Point ra là có cao độ Z. Phun lại là xong.

     Nếu như Point hoặc Circle không có cao độ (khác 0 hoặc khác giá trị chuẩn nhưng không đều) thì mới cần đến việc viết theo yêu cầu. 

    Liên hệ mình Zalo: 0972.0168.25 để trao đổi thêm

    Bản vẽ bạn gửi không cần lisp gì cả. Xuất toạ độ Point ra là có cao độ Z. Phun lại là xong.

     Nếu như Point hoặc Circle không có cao độ (khác 0 hoặc khác giá trị chuẩn nhưng không đều) thì mới cần đến việc viết theo yêu cầu. 

    Liên hệ mình Zalo: 0972.0168.25 để trao đổi thêm

     

    Đúng như bạn nói là có cao độ Z rồi nhưng

    1: Mỗi tâm vòng tròn đều có 1 cao độ đúng và 1 cao độ Z=10

    Mình đả thử cách xóa toàn bộ point có Z = 10 thì những điểm có cao độ đúng bằng 10 sẽ bị mất cao độ

    2: Có nhiều vòng còn có đến 3, 4 cao độ khác nhau và không có giá trị nào đúng  trong đó.

     


  5. Xin chào các bạn. Mình có 1 vấn đề muốn nhờ mọi người giúp đở. Mình có 1 file cao độ gồm các thành phần

    1: Phần nguyên

    2: Phần thập phân

    3: Cao độ nằm giửa vòng tròn.

    Mình muốn nhờ mọi người giúp mình viết 1 lisp thỏa mản:

    A: Nối phần nguyên và phần thập phân lại

    B: Điểm đặt của text nối nằm đúng vị trí cao độ giửa vòng tròn.

    ==============

    Minh có tham khảo các bài viết trên diễn đàn rồi nhưng kết quả không đúng như yêu cầu:

    https://www.cadviet.com/forum/topic/68678-text-cao-độ-của-bình-đồ-bị-tách-làm-nhiều-đối-tượng/

    ==> Điểm đặt không thỏa mản B

     

    https://www.cadviet.com/forum/topic/62937-giúp-đởphần-nguyên-và-phần-thập-phân-chia-làm-2-text/

    ==> lisp rất hay, giải quyết hàng loạt trong 1 thao tác nhưng text nối được điểm đặt không thỏa mản B (Nếu được thì xin phép tác giả có thể sửa trên lisp này được thì hay quá)

     

    Và rất nhiều bài viết liên quan nửa nhưng không giải quết được

     

    ==============

    Cám ơn và chúc mọi người sức khỏe.

    Vidu_Noitext.dwg


  6. Kính chào các Anh/chị em trong diễn đàn.

    Trước hết mình xin cảm ơn Cadviet đả tạo ra một forum chia sẽ rất nhiều kiến thức và bài viết bổ ích cho mọi người.

    Nay mình có 1 vấn đề muốn nhờ mọi người giúp đở như sau:

    Mình có 1 file chứa rất nhiều command cần điền vào cad (file excel đính kèm). Việc coppy từng hàng paste vào Cad mất tương đối nhiều thời gian. Vậy nên kính nhờ mọi người giúp đở viết giúp mình lisp để tự động load từng cell ở Cột A trong file excel vào AutoCad với ạ.

    Cảm ơn mọi người đã quan tâm!

    Command.rar


  7. Vì yêu cầu công việc, mình cần điền tọa độ rất nhiều mặt cắt. tìm trên mạng thì thấy lisp này khá hay và phù hợp nhưng có 1 lỗi là nhầm vị trí của "X=" và "Y=", giá trị thì đúng rồi.
    Nên post lên đây kính nhờ ace ai biết thì giúp đở mình với ạ.
    Rất cám ơn ace
    File cad: http://www.cadviet.com/upfiles/7/154024_phanlop__copy.dwg

    File lisp: http://www.cadviet.com/upfiles/7/154024_lisp_lay_toa_do.rar

×