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. 4 giờ trước, ngokiet đã nói:

    Trong Cad thì các cad mới sau này có thêm biến Dimlayer. Khi Dim thì nó tự động ghi vào layer được set sẵn bằng biến đó.

    Hồi trước mình sái cad cũ 2016 hay 2019 mình nhớ là nếu dim bằng ribbon thì nó tự động đưa về layer được định sẵn bằng biến trên. Nhưng dùng lệnh nhập thì không đươc.

    Giờ mới thử trên cad 2020 thì cả ribbon hay lệnh nó cũng tự chuyển luôn rồi.

    Hình như trên cad của bạn không phải bản 2020 nên nó mới vậy. Bác thử đánh dimlayer có phải là AM-5 không? 

     

    + Autocad 2019 bản thường dùng vẫn tự chuyển đổi DIMLAYER  kể cả dùng Ribbon lẫn gõ lệnh bác nhé.  Em test thử trước khi trả lời câu trước, còn tại sao Mechanical ko dùng được thì , ngẫm ko ra nên mới chịu ở câu trên :v


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

    Cảm ơn anh! 

    Em mới học Autocad Mechanical nên có thêm câu hỏi nhờ anh 

    Trường hợp này không liên quan gì đến DIMLFAC nữa.

    Tuy nhiên em vẫn thấy sự khác nhau giữa việc gõ lệnh DIM và sử dụng nút DIM trên thanh Ribbon

    Với cài đặt như hình.

    Tuy nhiên khi đo bằng 2 cách :

    1: Bấm nút shortcut trên Ribbon thì một cái cho ra Layer AM -5 ( mặc định của Autocad Mechanical)

    2: Dùng lệnh gõ DIMLINEAR thì cho ra kích thước có layer "0" (layer hiện hành)

    Sự khác nhau là gì ?

     

     

    + Tôi chịu thôi, không trả lời được câu hỏi này. ^^  Tôi ko dùng loại Cad như bạn nên ko biết nó ntn,  :)))

    • Like 1

  3. 8 giờ trước, KKM đã nói:

    Xin chào cả nhà!

    Để chuyển bản vẽ từ A2 về A3 mình dùng lệnh Scale và Dimlfac/giá trị = 2 để giữ nguyên kích thước khi đo.

    Tuy nhiên sau khi chuyển về Dimlfac mình đo lại bằng cách gõ lệnh DIM/Enter thì ok tuy nhiên nếu dùng cách bấm vào nút đo trực tiếp trên Tool bar thì giá trị chỉ bằng 1/2.

    Nhà mình có ai giải thích giúp mình với! (Mình dùng CAD 2019 có bản quyền)

     

    + Thứ 1: Nguyên nhân: Đây không phải là lỗi:  Nguyên nhân là do bạn gõ trực tiếp lệnh "DIMLFAC"   >>  Dẫn đến trong bảng DimStyle  xuất hiện 1 chế độ "Dim Override" tức là chế độ Ghi đè. 

    Chế độ này sẽ ảnh hưởng đến các đường Dim về sau, nhưng lại không ảnh hưởng tới các đường Dim tạo ra trước đó.

    + Thứ 2 : Khắc phục :  Không nên gõ lệnh điều kiển các biến 1 cách trực tiếp. Muốn thay đổi thì bạn hãy vào thẳng DimStyle mà chỉnh.   Muốn chỉnh riêng rẽ thì vào Properties chỉnh.

    image.png

    • Like 2

  4. Bạn đang sai cả về khái niệm lẫn bản chất.

    Hệ tọa độ trong cad có thể phân loại.

    + Tọa độ đề các [X, Y, Z]

    + Tọa độ cực [D < anpha]

    + Tọa độ cầu [D < anpha < beta]

    Cả 3 hệ tọa độ trên đều có 2 cách nhập: 

    + Tọa độ tuyệt đối # [...]

    + Tọa độ tương đối @ [...]

     

    Muốn nhập tọa độ kiểu gì thì cứ theo cú pháp trên ( , là dấu phẩy ) ( < là dấu góc )

    • Like 2

  5. 7 giờ trước, nông đỗ thuận đã nói:

    e muốn 2 khung này kín hết 1 bản in A3 thì phải dùng lệnh gì ạ, điều kiện là không thay đổi kích thước. Em đã tạo thành 2 Block rồi dùng lệnh AL vẫn chưa vào kín hết ạ. In ra thì rất xấu ạ

    + In ra PDF thì được. Còn in ra giấy thì không được... Vì muốn in thì Máy in phải cầm vào mép tờ giấy để kéo tờ giấy vào - nhả tờ giấy ra,  vậy nên in tràn rồi thì lấy chỗ nào mà cầm !


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

     

    Thanks bác. 

    + Vẽ arc xong copy vẫn cứ lỗi như vậy bác

    + Nếu sử dụng lệnh crt+shift+c để copy thì vấn đề đã được giải quyết.

    Nhưng mình vẫn thắc mắc là nguyên nhân chủ yếu do đâu nhỉ. Chẳng lẽ không có cách khắc phục sao?

    Mình cũng chia sẻ thêm là file mình lúc đầu còn gặp lỗi không copy được, nó báo lỗi paste clip gì đó.

    Mình đã sửa được bằng cách mở 1 file cad trắng ra, sử dụng lệnh insert file lỗi copy đó vào file trắng, phá khối, chạy lệnh PU, audit, sau đó lưu lại.

    Bạn đưa file copy lỗi vị trí + 1 hình chụp màn hình lúc copy của bạn lên. Chứ liệt kê ra dài dòng :)

    Tạm liệt kê các lỗi sau:

    1: Do hệ tọa độ UCS của 2 bản vẽ khác nhau ( không phải tọa độ World )

    2. Do đối tượng copy có chứa đối tượng Block có điểm Insert cách xa vài cây số.

    3. Do chứa các đối tượng Dim kích thước cung tròn "DimRadius" 

     

    Lỗi 1: Do tọa độ khác nhau thì khỏi bàn.

    Lỗi 2, 3:  -->  Mặc định trong Autocad, điểm được chèn ra ngoài màn hình lấy tại điểm góc trái, bên dưới của 1 Hình chữ nhật bao trọn toàn bộ đối tượng ( bao gồm cả điểm chèn Insert Block, Tâm của DimRadius.... )

    • Like 1

  7. + Lỗi 1: Unload tất cả các lisp đã load. Nguyên nhân là do 1 lisp nào đó đã được người viết gắn cho câu lệnh này.

    + Lỗi 2: Có thể do rất nhiều nguyên nhân, nhưng đa phần là dính mấy con virut acad.lisp , acaddoc.lsp, acad.fas...

    >> Bạn muốn kiểm chứng đúng ai thì vác mớ lisp, đi ra máy người khác rồi test thử. :/

    • Like 1

  8. - Vấn đề thứ 1  + 2 https://www.cadviet.com/forum/topic/163391-hatch-scale-khác-nhau-ở-2-bản-vẽ/

    + Điều này bạn đã tìm hiểu: tuy nhiên bạn hiểu chưa kỹ: Biến Measuament : là biến ảnh hưởng đến tỷ lệ Scale Hatch, Line Tyle Scale  theo bản vẽ mẫu là File acad hay Acadiso,: Tuy nhiên nó chỉ ảnh hưởng đến những đối tượng được tạo, chỉnh sửa sau khi tác động lên nó   >>>  Muốn thay đổi cả phải sử dụng lisp.

     

    - Vấn đề thứ 3 :  Tôi chưa gặp nên chưa có kiến thức.

    • Like 1

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

    Chào các bạn, thường chia một đoạn thẳng thành các đoạn nhỏ có kích thước tuỳ chọn bằng Div hoặc Me. Giờ mình muốn chia như vậy nhưng k bằng cách chọn đường thẳng mà pick chọn 2 đầu của đoạn thẳng thì làm thế nào? Ví dụ đoạn thẳng dài 1000m nhưng mình muốn chia đoạn 20m trong 1000m đó thôi thì pick đầu và cuối của đoạn 20 và nó chia đoạn đó thôi. Chân thành cảm ơn.

     

    Trong đoạn 20m đó, bạn muốn chia theo số đoạn hay theo khoảng cách ?

    + Nếu là khoảng cách có thể search lisp xdiv.lsp

    + Nếu là số đoạn thì.... phải viết code 1 tí.


  10. + Theo em cách giải chính xác bài toán này cần xây dựng theo cách dùng tia quét:

    Ví dụ:  Có đa giác ABCDEFGHIK   ---> Cần tính khoảng cách trung bình đào đắp tới điểm 1:

    --->Em quét tia từ điểm 1  tới toàn bộ đa giác

    Vậy có 2 trường hợp sảy ra: 

    TH1 : Vùng có tia quét không bị vướng AB EF  IK ---> Khoảng cách đào đắp  = Trọng tâm vùng không vướng tới điểm 1.

    TH2 : Vùng có tia quét bị ngắt   BCDE , FGHI   --->   Khoảng cách đào đắp =  khoảng cách   1B  + khoảng cách trọng tâm vùng BCDE tới điểm B.

    Lặp lại cách tính với vùng BCDE  .....

     

    Tất nhiên làm chính xác thì sẽ mất thời gian. Muốn nhanh thì cứ vo lại 1 cục như bác Hạ rồi nhân với sai số như anh NTDNV nói. :D :D :D

    image.png


  11. 23 phút trước, Nguyen Huy Hanh đã nói:

    Mình có viết một chương trình autolisp nhưng lại có một vấn đề là chạy lần đầu tiên thì đúng còn những lần sau thì luôn báo lỗi. Các bạn có thể giải thích cho mình không. Lỗi ở hàm HextoOct.

    
    (defun c:ABC ( / oSource oSourceText oSourceValue)
    (setq oSource (entsel "\n Select Text Need Number: "))
    (setq oSourceText (cdr (assoc 1 (entget (car oSource)))))
    (initget 1 "Decimal Hexadecimal")
    (setq oKey (getkword "Vui Long Nhap He So: (Decimal or Hexadecimal)"))
    (cond ((= oKey "Decimal") 
    	(setq oSourceValue (substr oSourceText (1+ (strlen (vl-string-right-trim "0123456789" oSourceText))))
    		  oLeftString (vl-string-right-trim "0123456789" oSourceText)
    		  oKetqua (strcat oLeftString (itoa (1+ (atoi oSourceValue))))
    	))
    		((= oKey "Hexadecimal")
    	(setq oSourceValue (substr oSourceText (1+ (strlen (vl-string-right-trim "0123456789abcdefABCDEF" oSourceText))))
    		  oLeftString (vl-string-right-trim "0123456789abcdefABCDEF" oSourceText)
    		  oHexLen (strlen oSourceValue)
    		  oKetqua (strcat oLeftString (itoa (hexTooct oSourceValue)))
    	)))
    (princ oKetqua)
    )
    
    (defun Case (DK)
    (cond ((= DK 0) "0") ((= DK 1) "1") 
    				((= DK 2) "2") ((= DK 3) "3")
    				((= DK 4) "4") ((= DK 5) "5") 
    				((= DK 6) "6") ((= DK 7) "7") 
    				((= DK 8) "8") ((= DK 9) "9") 
    				((= DK 10) "A") ((= DK 11) "B") 
    				((= DK 12) "C") ((= DK 13) "D") 
    				((= DK 14) "E") ((= DK 15) "F")
    				((= DK "0") 0) ((= DK "1") 1)
    				((= DK "2") 2) ((= DK "3") 3)
    				((= DK "4") 4) ((= DK "5") 5)
    				((= DK "6") 6) ((= DK "7") 7)
    				((= DK "8") 8) ((= DK "9") 9)
    				((= DK "A") 10) ((= DK "B") 11)
    				((= DK "C") 12) ((= DK "D") 13)
    				((= DK "E") 14) ((= DK "F") 15))
    );defun
    
    (defun octTohex (oct hexLen)
    (setq octA (atoi oct))
    (setq oKQ "")(setq oCond 0)
    (if (>= octA 16)(
    while  (and (>= octA 16) (= oCond 0))
    	(setq octB (/ octA 16.0))
    ;(princ (fix (* 16 (- octB (fix octB)))))
    	(if (= oKQ "") (setq oKQ (Case (fix (* 16 (- octB (fix octB)))))) (setq oKQ (strcat (Case (fix (* 16 (- octB (fix octB)))))  oKQ)))
    ;(setq oKQ (strcat (Case octA) oKQ))
    	(setq octA (fix (/ octA 16.0)))
    	(if (< octA 16)(setq oKQ (strcat (Case octA) oKQ) oCond 10))
    ;(princ oKQ)
    )(setq oKQ (Case octA)))
    (setq oText oKQ)
    (while (< (strlen oText) hexLen)
    	(setq oText (strcat "0" oText))
    )
    (setq octTohex oText)
    )
    
    (defun hexTooct (hex)
    (setq hexA hex)
    (setq oLen (-(strlen hexA) 1)
    		octKQ 0
    		oEx 0
    		i 1)
    (while  (>= oLen 0)
    	(setq octKQ (* (Case (substr hexA i 1)) (expt 16 oLen)))
    	(setq oEx (+ oEx octKQ))
    	(setq i (1+ i))
    	(setq oLen (1- oLen))
    )
    (setq hexA "")
    (setq hexTooct oEx)
    )
    

    +  Bạn nên khử hết các biến cục bộ đi. Trừ biến nào lưu  lần sau thì để lại.


  12. 15 phút trước, phongnh đã nói:

    Để em trình bày rõ ràng hơn, mong mọi người cho xin ý kiến vì em hoàn toàn chưa có kinh nghiệm việc này.

    Vi du hoi CadViet (ver01).dwg

    + Xem file cad thì tôi có phương pháp đơn giản nhất :

    Quãng đường trung bình vận chuyển = AB + BC + CD.

    Với:

    AB = Khoảng cách trọng tâm bãi lấy đất  A  >> Điểm đầu mút vận chuyển điểm B.

    BC = Khoảng cách đường di chuyển   >> Đường cong BC.

    CD = Khoảng cách từ điểm C >> Trọng tâm bãi đổ đất D.

     

     

    TraLoiCadViet.png

×