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

Danh Cong

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

    1.353
  • Đã tham gia

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

  • Ngày trúng

    113

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


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

    Vâng. Trước em có từng tạo kiểu đường rồi. Nhưng yêu cầu đối tượng phải là các line riêng lẻ, ko có liên kết cơ các bác ạ.

     

    + Trên trang mạng có lisp phá vỡ Line Type , tuy nhiên mình test thì chỉ áp dụng được với các loại đoạn thẳng. Còn cong thì chắc ko đúng ý chủ thớt rồi. 

    Điều kiện dùng lisp : UNIT để dạng Milimeter.

    + Trang gốc : https://www.cadstudio.cz/en/download.asp?file=LinExp

     

    linexp.lsp


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

    Các tiền bối chỉ giúp em với. Chứ em ko biết làm cách nào ngoài copy với array. mất rất nhiều thời gian ạ.

     

    1. Tạo 1 File đuôi .lin  , ví dụ ABC.lin

    2. Copy dòng code dưới đây vào file đó.

     


    *HIDDEN-5x5,Hidden5x5 __ __ __ __ __ __ __ __ __ __ __ __ __ __
    A,5.0,-5.0

    *HIDDEN-10x10,Hidden10x10 __ __ __ __ __ __ __ __ __ __ __ __ __ __
    A,10.0,-10.0

    *HIDDEN-20x10,Hidden20x10 __ __ __ __ __ __ __ __ __ __ __ __ __ __
    A,20.0,-10

     

     

    3. Gõ lệnh LTYPE, load file ABC.lin vừa tạo. 

    ----> Vậy là bạn đã có các loại đường theo yêu cầu. Chú ý tỷ lệ Line type Scale phải bằng 1 ( Bật bảng Ctrl+1 lên), biến hệ thống LTS phải bằng 1.

    • Vote tăng 1

  3. 11 giờ trước, HALUMGLASS@GMAIL.COM đã nói:

    Thanks huunhantvxdts rất nhiều

    - Nhờ setvar toàn bộ thông số các biến dim

     

    Tặng bạn cần câu cá, còn câu được con cá nào hay không thì tùy bạn sử dụng :) :)

    + Setvar thông số Dim.

     

    ;  *****Tab Lines
            (setvar "DIMCLRD" 8)                ; Mau sac duong giong ngang duoi Text
            (setvar "DIMLTYPE" "continuous")        ; Kieu LineStyle duong giong ngang duoi Text
            (setvar "DIMLWD" -2)                ; Lineweight duong giong ngang duoi text = Block
             (setvar "DIMDLE" 0)                ; Khoang cach keo dai duong giong ngang duoi Text =0
             (setvar "DIMDLI" 4)                ; Khoang cach giua cac Dim khi do Base Line-Spacing

             (setvar "DIMCLRE" 8)                ; Mau sac duong giong vuong goc
            (setvar "DIMLTEX1" "continuous")        ; Kieu LineStyle duong giong vuong goc 1
             (setvar "DIMLTEX2" "continuous")        ; Kieu LineStyle duong giong vuong goc 2
             (setvar "DIMEXE" 0.5)            ; Khoang cach keo dai duong thang vuot qua Dim
             (setvar "DIMEXO" 3.0)            ; Khoang cach tu chan Dim toi diem bat dau ve duong giong
            (setvar "DIMFXLON" 0)            ; Bat, tat che do "Fix length Extension line"
            (setvar "DIMFXL" 6)                ; Gia tri Fix cua "Fix length Extension line"

             (setvar "dimdec" 0)                ; Extend beyond Stick
         ;  *****Tab Symbol and Arrow
            (setvar "DIMASZ" 1.5)            ; Kich thuoc mui ten
            (setvar "DIMBLK1" "")            ; Kieu mui ten
            (setvar "DIMBLK2" "")
            ;(setvar "DIMLDRBLK" "")        
             (setvar "DIMARCSYM" 2)            ; Thiet lap dau ky hieu khi do chieu dai duong cong = None
         ;  *****Tab Text
              (if (= (tblsearch "STYLE" ".VnarialH") nil) (command  "-style" ".VnarialH"     ".VnarialH"     "" "1.0" "0" "n" "n"))
              (setvar "DIMTXSTY" ".VnarialH")        ; Thiet lap Dim Text Style
              (setvar "DIMCLRT" 3)                ; Thiet lau mau sac cho Text Green = 3
              (setvar "DIMTXT" 1.5)            ; Chieu cao Text
              (setvar "DIMTAD" 1)                ; Text Placement ___Vartical = Above
              (setvar "DIMJUST" 0)                ; Text Placement ___Horizontal = Center
              (setvar "DIMGAP" 0.6)            ; Khoang cach Text --> Duong giong ngang chan Dim
         ;  *****Tab Fit
              (setvar "DIMFIT" 5)                ; Fit = Always keep text betwen lines
              (setvar "DIMTMOVE" 2)                   ; Thiet lap dinh dang Text khi keo Text ra khoi vi tri mac dinh
              (setvar "DIMTOFL" 1)                ; Ve them duong line tu cung tron toi tam cung tron ( nhu la ban kinh )
         ;  *****Mot vai dieu khac
              (setvar "DIMTIX" 1)                ; Thiet lap Dim ban kinh Arc la Auto hay Pick tay.
              (setvar "DIMTOH" 0)                ; Not Know
              (setvar "DIMTIH" 0)                ; Not Know
     

     

    • Like 1
    • Vote tăng 1

  4. Lisp tạo đường PLine giữa 2 đường Pline khác: 

     

    
    
    

    ; Write by Danh Cong - Cadviet.com 13-11-2020
    ; SDT 0336 760 750

    (defun c:PL-CENTER (/ I KC LEN_PL_1 LST_POINT N PL_1 PL_2 PT1 PT2 PT3)
      (vl-load-com)
      (prompt "Select PLINE_1 ?")
      (setq PL_1 (car (entsel)))
      (prompt "Select PLINE_2 ?")
      (setq PL_2 (car (entsel)))

      (INITGET (+ 1 2 4))
      (setq KC (getreal "/nKhoang cach chia ?"))

      (setq lst_Point '())

      (setq Len_PL_1 (vlax-curve-getDistAtParam PL_1 (vlax-curve-getEndParam PL_1)))
      (setq i 0 n (/ Len_PL_1 KC))

      (while (< i n)
        (progn
          (setq Pt1 (vlax-curve-getPointAtDist PL_1 (* i KC)))
          (setq Pt2 (vlax-curve-getClosestPointTo PL_2 Pt1))
          (setq Pt3 (list (/ (+ (nth 0 Pt1) (nth 0 Pt2)) 2) (/ (+ (nth 1 Pt1) (nth 1 Pt2)) 2)))
          (setq lst_Point (append lst_Point (list Pt3)))
          (setq i (+ i 1))
          ); endprogn
        ); end while

      (acet-pline-make (list lst_Point))
      
      (princ))


  5. 1 giờ trước, phat1998 đã nói:

    dạ em đc anh ạ . em đang muốn sửa đổi 3 điều này:

    - điều 1: số thứ tự 1,2,3..n mỗi đầu dòng em muốn cho nó mặc định là G01

    - điều 2: ví dụ dòng text ( 1 200 300 30) em muốn nó thành( g01 X200 Y300 A30), tức làm em muốn gán X Y A mặc định vào trước tọa độ của nó 

    em đang tự đọc các hàm anh viết để hiểu code anh viết. anh cho em cái gợi ý để làm được 2 ý trên không ạ

     

    Hàm (STRCAT "string1" "string2" ...)   ---> "string1_string2"

    Ví dụ : (STRCAT "ABC" "DEF")   ---> "ABCDEF"

    • Like 1

  6. 12 phút trước, Doan Van Ha đã nói:

    Mọi người cho hỏi tí: tôi muốn lấy góc của đường kích thước nhưng dùng hàm dưới đây để lấy điểm thứ nhất thì có Dim ok nhưng có Dim bị err là vì sao vậy?

    (setq p (vlax-get (vlax-ename->vla-object (car (entsel "\nChon Dim: "))) 'ExtLine1Point))

    Err_Dim.dwg

     

    Rotate Dimension ( Không áp dụng )   >< Aligned Dimension . ( Áp dụng được )

    :)))) Cháu có ý kiến thế thôi ạ. ^^

    • Like 1

  7. 11 giờ trước, theanhkc07 đã nói:

    Đề bài đưa ra là chọn 1 loạt đối tượng kín > yêu cầu ghi text > nhập chiều cao của text > chèn text vào tâm các đối tượng đã được chọn

    Diễn đàn ko phải là 1 cái chợ.

    Bạn nhờ giúp thì cũng phải thưa gửi đoàng hoàng, lịch sự thì mới có người giúp cho.

    Dùng Cad thì cũng là người  lớn rồi, phải để ý 1 tí.

    • Vote tăng 1

  8. 1 giờ trước, vomanhhungdhxd đã nói:

    Mình thường xuyên tìm hiểu về đường dây truyền tải điện. Đôi lúc muốn xác định khoảng cách ngắn nhất giữa 2 đường dây giao chéo

    Các bác có lệnh nào trong cad hoặc lisp để xác định được đường vuông góc chung để tìm ra khoảng cách min không ạ.

    kcol.lsp

    N122-22.dwg

     

    Trả lời theo quan điểm cá nhân :)))

    1. Gần đúng + Làm cho khỏe tay:  Nếu vẽ trên mô hình 3D, khoảng cách ngắn tương đối chính xác thì bạn xác định điểm giao của 2 đường dây trên mặt bằng. Vẽ 1 đường Line nối 2 điểm giao đó là ra khoảng cách.

    2. Gần đúng - Lisp:  Có 2 đường dây LA và LB.   Cho 1 điểm  P.A chạy trên L.A, xác định 1 điểm P.B trên L.B.  Từ đó tính ra được khoảng cách từ  P.A --> P.B  , gọi là L.AB

    Chạy khoảng cách bước nhảy L.A là x(m) sẽ ra được tập hợp n khoảng cách L.AB.. Xác định L.AB min là ra kết quả.

     

    Tóm lại. Làm theo cách 1 thì làm cho khỏe tay, vận dụng kỹ năng Cad mà làm. ( Đỡ phải nhờ vả ai )

    Cách 2 thì bạn nhờ bác nào đó viết Lisp + Thêm ly cafe cho người viết. :v :v. ( Mình ko nhận nhé)

    • Like 1

  9. 15 giờ trước, PHẠM THỊ KIM NGÂN đã nói:

    1. Có thể hiển thị trực tiếp luôn không bạn, mình không cần click vào đoạn thẳng mình cũng thấy được.

    2. Chiều dài cũng vậy, không cần hiện trực tiếp.

    ví dụ như hình bên dưới, mình sẽ thấy điểm đầu điểm cuối  và chiều dài mà không cần phải là thủ công, hay sử dụng lệnh do chiều dài. Hiện tại mình đang làm thủ công.

     

    + Nếu không click, đố bạn biết được đoạn thẳng được đánh dấu đầu-cuối dưới đây nằm trong trường hợp nào !! Vậy là bạn biết câu trả lời rồi đấy.

     

    Untitled.png


  10. 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

  11. 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

  12. 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
×