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

Danh Cong

Moderator
  • Số lượng nội dung

    1.387
  • Đã tham gia

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

  • Ngày trúng

    117

Bài đăng được đăng bởi Danh Cong


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

    đây a ạ

    DC2.dwg

    + Xem bản vẽ của bạn mà không kìm được lòng :)))

    Không biết là ai tạo ra bản vẽ này. Nhưng phải công nhận họ rất kỳ công. ^^ Tạo ra khoảng 400 đối tượng Block chết, chứ không phải Block Attribute.

    Bản vẽ này nếu lựa chọn được số thửa đất, thì chỉ có nước Explode Block, sau đó dùng lisp để lựa chọn các Text có giá trị nằm trong 1 khoảng nào đó thôi.

    Nếu ko gấp thì để vài ngày tôi viết lisp cho. Lâu ngày ko động nên quên mất kha khá thứ rồi.

    Còn nếu có bác nào rảnh rỗi trên diễn đàn qua đây thì các bác đấy viết hộ :))

    • Like 1

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

    Nhờ các anh viết giúp em lisp chọn phân loại đối tượng text cùng 1 Level cùng 1 màu...mà chỉ có trên dưới, phải trái và giữa

    (ví dụ như nhãn địa chính cùng lớp Level 13 cùng màu trắng, giờ mình chỉ chọn đối tượng là số hiệu thửa(ở trên) còn diện tích và loại đất thì không chọn)

    Mong các a giúp đỡ e với ạ.

    Thanks.

    Bạn nên đưa bản vẽ lên. Anh em chúng tôi làm thầy bói xem voi nên không bắt bệnh được.

    • Like 1

  3. 21 giờ trước, cadai07 đã nói:

    Xin các Pro giúp đỡ cho mình một vấn đề này với ạ. Mình sử dụng autocad để in ấn thì gặp trường hợp: lúc preview thì thấy nét đậm nhạt rõ ràng, lúc in ra thì chỉ ra đều một cỡ nét. Mình muốn chính sao để in ra giống như lúc preview. Mong các Pro giúp đỡ

    Quan trọng là bạn in ở nhà , hay là mang ra quán Photo.

    Ở nhà bạn cài nét in 1 kiểu, ra quán thì thợ Photo nó lấy nét 1 kiểu.

    Còn nếu bạn in ở nhà thì xem xét lại. Thấy không ổn, thì cứ in ra PDF trước, rồi từ PDF in ra. Đảm bảo chính xác nhất.

    • Like 1

  4. (getvar "osmode)  --> Lấy ra giá trị biến hệ thống "Osmode" của Cad.

    (setq oldos (getvar "osmode"))   ----> Gán giá trị biến hệ thống vào biến do người dùng tự tạo "oldos"

    (setvar "osmode" 0)    ---> Thiết lập biến Osmode về 0, tức là không bắt điểm. Thao tác này nhằm vẽ các đối tượng sau câu lệnh không bị bắt điểm nhầm.

    (setvar "osmode" oldos )   --> Trả lại thiết lập Osmode về giá trị cũ, được lưu trong "oldos".

    • Like 1

  5. (setq a0 (list (+ car(a1) 2) (cadr a1) 0))
    (setq a5 (list (- car(a4) 2) (cadr a4) 0))
    (command "pline" a0 a1 a2 a3 a4 a5)

    (Setvar "OSMODE" 0)

     

    Sửa lỗi :

    (setq a0 (list (+ (car a1) 2) (cadr a1) 0))
    (setq a5 (list (- (car a4) 2) (cadr a4) 0))
    (command "pline" "non" a0 "non" a1 "non" a2 "non" a3 "non"a4 "non" a5 "")

     

    Code tóm lại đã chạy được. Còn đúng ý hay không thì tùy chủ thớt.

    • Like 1

  6. 1 giờ} trướ}c, luongvohaiminh đã nói:

    Mọi người cho mình hỏi, có cách nào dim kích thước nhưng để không hiện giá trị không? Nếu có, xin mọi người chỉ giúp với. Thank nhiều!

    Có, bạn có thể làm vậy bằng cách chuyển màu của Text trong Dim về màu trùng với màu nền Autocad.

    Ví dụ trong trường hợp màu nền là màu đen :

    Dimstyle ---> Modify --> Tab Text ---> Text Color ---> Select color ---> True Color  ---> Nhập giá trị 0,0,0 hoặc kéo kịch thanh màu về giá trị 0,0,0


  7. Vào lúc 12/8/2020 tại 13:54, xuanquoc đã nói:

    anh cho e xin với ạ, cảm ơn anh nhiều ( email: xuanquocxd@gmail.com)

    Gửi cho bạn. Lisp chỉ áp dụng trong trường hợp nối thẳng. Chiều dài mối nối được quy định trong Lisp. Khoảng cách giữa các thanh nối phụ thuộc vào tỷ lệ Scale của dim.

    
    
    

    (defun c:VTT (/ d L40 X1 Y1 PT-end X-end Y-end scale L_Tieuchuan L PT1 PT2)
    (Princ "Write by: Do Danh Cong")
    (command "undo" "begin")
    (setq L_TieuChuan
           (list
         (cons 10 450)
         (cons 12 540)
         (cons 14 630)
         (cons 16 720)
         (cons 18 810)
         (cons 20 900)
         (cons 22 990)
         (cons 25 1125)
         (cons 28 1260)
         (cons 32 1455)))

    ;;;;; So lieu dau vao
      (setq L (getdist "Nhap chieu dai / Chon 2 diem: "))
    ;;;;;; Luu gia tri duong kinh
      (or #VTT_D (setq #VTT_D 16))
      (setq #VTT_D (cond ((getreal (strcat "\nNhap D= < " (rtos #VTT_D 2 0) " >:")))(#VTT_D)))
      (setq    Pt1 (getpoint "\n Nhap diem ve: "))
      (setq scale (getvar "dimscale"))
      
      ;;;;; Tinh toan so lieu:
      
      (setq L40 (cdr (assoc #VTT_D L_TieuChuan))
        X1 (car Pt1)
        Y1 (cadr Pt1)
        PT-end (Polar Pt1 0 L)
        X-end (car Pt-end)
        Y-end (cadr Pt-end))
      ;;;;;; Ve thep

      (While  (> X-end X1)
              (if (>= 11700 (- X-end X1))
            (progn
                  (command ".line" "non" Pt1 "non" Pt-End "")
                  (setq X1  X-End))
            (Progn
                  (setq Pt2 (polar Pt1 0 11700))
              (command ".line" "non" Pt1 "non" Pt2 "")
              (setq X1 (- (car Pt2) L40)
                Y1 (+ (cadr Pt1) (* 1.5 scale))
                Pt1 (list X1 Y1)
                        PT-end (list X-end Y1))
              )
          ))
      (command "undo" "end")
      (Princ))


  8. 15 giờ trước, xuanquoc đã nói:

    Chào các anh. nhờ các cao nhân giúp đỡ viết giúp e list với ạ.

    " vẽ nhiều đường thẳng liên tiếp nhau khi gặp chiều dài lớn hơn 11.7  ( hoặc khi click điểm) sẽ tạo thêm mối nối vị trí đó ạ ( chiều dài mối nối nhập ạ). đồng thời có tạo đường dim và ghi các thông số nhập ban đầu như số thanh và đường kính ạ. ( giống kiểu shop thép )

    e xin chân thành cảm ơn mọi người. mong nhận được sự giúp đỡ ạ

    anh.jpg

     

    Lisp của tôi thì chỉ vẽ ra thép, ko bao gồm Dim kích thước. Nếu bạn có nhu cầu thì tôi sẽ gửi cho :))


  9. Chữ bạn đang nhìn thấy thực chất là 1 khung tên đã được XREF vào trong bản vẽ, vì không còn fie nguồn của khung tên nên file XREF này bị lỗi.

    Việc xóa lỗi này có 2 cách:

    1. Bạn có được file nguồn để XREF lại vào trong bản vẽ ( Cách này chắc bạn ko làm được rồi ).

    2. Xóa file XREF trong bản vẽ. ( Gõ lệnh XREF  ---> chọn file khung tên bị lỗi  ---> Detach )

    • Like 1

  10. Theo nội dung của bạn, tôi tóm lược lại một chút.

    Giả sử việc của bạn là chọn 1 mớ các đối tượng cùng Layer1, việc còn lại là bạn đổi nó sang màu 1.

    Nếu bạn chỉ đơn lẻ thao tác < 10 Layer thì tôi nghĩ bạn học cách sử dụng Filter cũng khá hiệu quả.

    Còn nếu bạn thao tác với số lượng lớn layer thì sẽ dùng Lisp. :)) Tất nhiên có thể bạn sẽ cần ủng hộ vài ly cà phê cho người viết, thời tiết nóng quá mà.

    Video sử dụng Filter nếu bạn cần học :

     

     

    • Like 1
×