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

Duong Nhat Duy

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

    335
  • Đã tham gia

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

  • Ngày trúng

    34

Bài đăng được đăng bởi Duong Nhat Duy


  1. Có 2 cách:

    - Cách 1: dùng lệnh của CAD: lệnh FS (Fast Select), yêu cầu cài Express Tools. Cách thực hiện thì như yêu cầu của bạn nhưng cụm đối tượng mặc định là tất cả các đối tượng trên màn hình.

    - Cách 2: Như lisp mình viết, lệnh SP (cũng yêu cầu cài Express Tools)

    Nhược điểm của cả 2 cách:

    - Chỉ chọn được các đối tượng hiển thị trên màn hình (tương tự như lúc bạn tạo vùng chọn bằng cách click 2 điểm cửa sổ của CAD dưới 2018 ấy)

    - Thứ tự chọn linh tinh ko theo chiều đi của Pline

    SP.LSP

    • Like 1

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

    Bạn ơi textstyle và chiều cao text đang lấy như thế nào vậy bạn, mình muốn sữa chiều cao text thì sửa lại như thế nào chỉ mình với

    Style bạn sửa ở đây: (getvar "TEXTSTYLE")

    Cao chữ bạn sửa ở đây: (/ (getvar "VIEWSIZE") 100)

    Thay hết cả cụm kể cả dấu ngoặc nhé, riêng style thì thêm "" 2 đầu nữa

    Screenshot_1.png


  3. 9 giờ trước, lanvientkh đã nói:

    Lisp bạn viết nó cũng giống như lệnh của Cad rồi, mình muốn khi copy nhiều đối tượng qua bản vẽ mới sẽ cùng toạ độ và nó tạo thành 1 block sẽ dễ quản lý hơn bạn Duong Nhat Duy

    Ah có chút nhầm lẫn:

    CB thay cho: Ctrl+Shift+C, 0, 0

    VB thay cho: Ctrl+V, 0, 0

    VBB thay cho: Ctrl+Shift+V, 0, 0

    CB,VB,VBB - Copy, Paste (0,0).lsp

    • Like 1

  4. 21 giờ trước, Lethuongtri đã nói:

    Dạ em làm được rồi, cảm ơn mọi người.

    Tiện thể mọi người cho em hỏi. Trong autolips có cách nào lấy được tọa độ của 2 điểm mủi tên của kích thước ( kích thước dạng rotate dim hoặc align dim) ko ạ ?

    Nếu dùng Dxf code 10 thì chỉ lấy dc 1 đầu thôi .Còn dxf code 11 thì lại là tọa độ của text kích thước.

    Nhờ mọi người chỉ giáo ạ.

    Em xin cảm ơn !

    Mình thì ko rõ cái này, nên đành dùng hình học thôi, chắc nôm na là (polar dxf10 (- (angle dxf10 dxf14) (* pi 0.5)) dis)

    góc là góc từ 10 đến 14, dis là độ dài dim lấy trong vla-get-Measurement


  5. 2 giờ trước, Hoang Do đã nói:

    Mình đã làm được!

    Cái mình không ngờ là stretch có thể chọn lẫn đối tượng của nhau...

    Mù mờ về nguyên lý dẫn đến mò mẫm trong ngu ngơ...

    Xin 1 email kết bằng hữu từ bạn D nhé

    P/s: email m: dongochoang.kp@gmail.com

    Có gì đâu b, rảnh rỗi thì mời mình tách cafe thôi ^^

    Zalo nhé: 0922161194


  6. 12 giờ trước, Hoang Do đã nói:

    Mình đã chọn đúng đối tượng chọn vùng đúng  nhưng bản lề và line V vẫn bị văng đi... " để kéo ở đầu cái cửa thì cần 1 cái nữa ở bản lề"==> mình thấy cửa họ làm không có...chỉ đúng 2 linear và 3 stretch là ra ...còn đối với m thì là khó không ngờ...bế tắc quá...D giúp mình với

    Nói riêng cái stretch phương dọc nhé, phương ngang thì dễ r:

    - Stretch Action 1:

     + Window : vùng trên cái cửa

     + Objects: khung ngoài, khung trong, bản lề trên, chữ V (bạn đang thiếu chữ V và thừa bản lề giữa)

    - Stretch Action 2:

     + Window : vùng bao chỗ bản lề giữa

     + Objects: khung trong, bản lề giữa, chữ V (bạn đang thừa bản lề trên)


  7. 4 object đó là: chữ V, bản lề, hatch trong bản lề, khung trong cửa (cái khung bị thừa vì ko cần cũng được)

    Lưu ý cái cửa sổ vùng chọn nữa:

     1.png.2c39080cc602d79ab5db6a5d4afc461d.png2.png.e253e7328e83c68b48da8e9f6fb950d8.png

    Bạn nên hiểu nguyên lý trước thì hay hơn: đấy là stretch theo phương dọc ngoài action stretch để kéo ở đầu cái cửa thì cần 1 cái nữa ở cái bản lề giữa, distance multiplier 0.5 ý để cho cái bản lề đó luôn ở trung điểm (ví dụ mình kéo cái cửa cao lên 100 thì chỗ bản lề giữa dịch lên 50 thôi).

    • Like 1

  8. 13 giờ trước, Lethuongtri đã nói:

    Dạ mọi người cho em hỏi, trong autolips có cách nào lấy được giá trị góc chỉ phương của đường kích thước ( kích thước là loại aligndim hoặc là rotated dim)- giá trị góc là tính theo đường kích thước và đường thẳng nằm ngang.

    Cảm ơn mọi người.

    Dim nó có cái mã DXF 13 và 14 là 2 cái chân dim đó, bạn dùng (angle dxf13 dxf14) nữa là được.


  9. Theo mình biết thì ko có cách nào như vậy.

    Cách của mình là copy file chính ra 1 file cad khác, xóa hết mọi thứ đi, chỉ để lại thông tin về layer thôi. Sau đó copy từng file xref vào file trắng kia (layer nào trùng tên nó sẽ tự theo layer đó, tất nhiên các thuộc tính phải là by layer mới được như vậy), rồi lưu lại 1 file mới. Vậy là bạn có 1 tập hợp các file mới có thông tin layer theo file chính.


  10. Đây bạn:

     

    ===> Block đúng:

    ; Property values:
    ;   Application (RO) = #<VLA-OBJECT IAcadApplication 00007ff7f2391e30>
    ;   Document (RO) = #<VLA-OBJECT IAcadDocument 000001bb53ef51a8>
    ;   EffectiveName (RO) = "FENCE"
    ;   EntityTransparency = "ByLayer"
    ;   Handle (RO) = "2F9"
    ;   HasAttributes (RO) = 0
    ;   HasExtensionDictionary (RO) = -1
    ;   Hyperlinks (RO) = #<VLA-OBJECT IAcadHyperlinks 000001bb4fbe8068>
    ;   InsertionPoint = (78.3786 53.2809 0.0)
    ;   InsUnits (RO) = "Inches"
    ;   InsUnitsFactor (RO) = 1.0
    ;   IsDynamicBlock (RO) = -1
    ;   Layer = "0"
    ;   Linetype = "ByLayer"
    ;   LinetypeScale = 1.0
    ;   Lineweight = -1
    ;   Material = "ByLayer"
    ;   Name = "*U8"
    ;   Normal = (0.0 0.0 1.0)
    ;   ObjectID (RO) = 42
    ;   ObjectName (RO) = "AcDbBlockReference"
    ;   OwnerID (RO) = 43
    ;   PlotStyleName = "ByLayer"
    ;   Rotation = 0.0
    ;   TrueColor = #<VLA-OBJECT IAcadAcCmColor 000001bb4fbe6f20>
    ;   Visible = -1
    ;   XEffectiveScaleFactor = 1.0
    ;   XScaleFactor = 1.0
    ;   YEffectiveScaleFactor = 1.0
    ;   YScaleFactor = 1.0
    ;   ZEffectiveScaleFactor = 1.0
    ;   ZScaleFactor = 1.0
    ; Methods supported:
    ;   ArrayPolar (3)
    ;   ArrayRectangular (6)
    ;   ConvertToAnonymousBlock ()
    ;   ConvertToStaticBlock (1)
    ;   Copy ()
    ;   Delete ()
    ;   Explode ()
    ;   GetAttributes ()
    ;   GetBoundingBox (2)
    ;   GetConstantAttributes ()
    ;   GetDynamicBlockProperties ()
    ;   GetExtensionDictionary ()
    ;   GetXData (3)
    ;   Highlight (1)
    ;   IntersectWith (2)
    ;   Mirror (2)
    ;   Mirror3D (3)
    ;   Move (2)
    ;   ResetBlock ()
    ;   Rotate (2)
    ;   Rotate3D (3)
    ;   ScaleEntity (2)
    ;   SetXData (2)
    ;   TransformBy (1)
    ;   Update ()

     

    ===> Block sai:

    ; Property values:
    ;   Application (RO) = #<VLA-OBJECT IAcadApplication 00007ff7f2391e30>
    ;   Document (RO) = #<VLA-OBJECT IAcadDocument 000001bb53ef51a8>
    ;   EffectiveName (RO) = "111"
    ;   EntityTransparency = "ByLayer"
    ;   Handle (RO) = "305"
    ;   HasAttributes (RO) = 0
    ;   HasExtensionDictionary (RO) = -1
    ;   Hyperlinks (RO) = #<VLA-OBJECT IAcadHyperlinks 000001bb4fbf3108>
    ;   InsertionPoint = (78.3786 43.6705 0.0)
    ;   InsUnits (RO) = "Unitless"
    ;   InsUnitsFactor (RO) = 1.0
    ;   IsDynamicBlock (RO) = -1
    ;   Layer = "0"
    ;   Linetype = "ByLayer"
    ;   LinetypeScale = 1.0
    ;   Lineweight = -1
    ;   Material = "ByLayer"
    ;   Name = "*U7"
    ;   Normal = (0.0 0.0 1.0)
    ;   ObjectID (RO) = 44
    ;   ObjectName (RO) = "AcDbBlockReference"
    ;   OwnerID (RO) = 43
    ;   PlotStyleName = "ByLayer"
    ;   Rotation = 0.0
    ;   TrueColor = #<VLA-OBJECT IAcadAcCmColor 000001bb4fbf32e0>
    ;   Visible = -1
    ;   XEffectiveScaleFactor = 1.0
    ;   XScaleFactor = 1.0
    ;   YEffectiveScaleFactor = 1.0
    ;   YScaleFactor = 1.0
    ;   ZEffectiveScaleFactor = 1.0
    ;   ZScaleFactor = 1.0
    ; Methods supported:
    ;   ArrayPolar (3)
    ;   ArrayRectangular (6)
    ;   ConvertToAnonymousBlock ()
    ;   ConvertToStaticBlock (1)
    ;   Copy ()
    ;   Delete ()
    ;   Explode ()
    ;   GetAttributes ()
    ;   GetBoundingBox (2)
    ;   GetConstantAttributes ()
    ;   GetDynamicBlockProperties ()
    ;   GetExtensionDictionary ()
    ;   GetXData (3)
    ;   Highlight (1)
    ;   IntersectWith (2)
    ;   Mirror (2)
    ;   Mirror3D (3)
    ;   Move (2)
    ;   ResetBlock ()
    ;   Rotate (2)
    ;   Rotate3D (3)
    ;   ScaleEntity (2)
    ;   SetXData (2)
    ;   TransformBy (1)
    ;   Update ()

×