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

Saudoihamchoi08

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

    8
  • Đã tham gia

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

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


  1. Thế thì ban đầu mình hiểu đúng rồi.

     

    Bạn đã thử làm thế này chưa:

    filletthamsop.png

     

    Chào bác Hoành.

     

    Mình đã làm thử cách của bác rồi.

     

    Có 2 điểm khác sau đây:

    1- Bác phải kết thúc lệnh Line rồi dùng lệnh Fillet --> Mất 2 công đoạn.

    2- Phương pháp này không tự cắt đoạn thẳng được.

     

    Có lẽ do mình dùng từ TRIM ở đây không đúng nên mình xin dùng lại từ CẮT ĐOẠN THẲNG.

    Ở đây mình tạm gọi là lệnh LINE-PRO bởi vì thực chất nó là lệnh vẽ đoạn thẳng. Cái PRO ở đây có nghĩa là lệnh đã tích hợp sẵn chế độ thông minh, cho dù bác có vẽ N đoạn thẳng lệnh cũng sẽ cứ hiểu là " Gặp góc sẽ vát góc, Gặp đoạn giao nhau sẽ cắt đi 1 phần". Ở đây qui luật cắt như thế nào là đẹp mình nghĩ sẽ khó cho người lập trình nên người lập trình sẽ tự quyết định qui luật này theo hướng có lợi cho người sử dụng.

     

    Bác xem file đính kèm để hiểu thêm nhé.

     

    http://www.cadviet.com/upfiles/Drawing1_24.dwg

     

    Chúc bác cuối tuần vui vẻ.


  2. Xin lỗi,

    bạn nói fillet nên tôi hiểu nhầm là bạn gặp khó khăn khi bo tròn góc.

     

    Bạn thử xem vấn đề của bạn có phải ở đây không: nối các line, arc, lwpolyline không chạm nhau

     

    Cám ơn bác Hoành đã quan tâm nhưng cái link mà bác gửi chưa phải ý của mình.

    Ý của mình là khi mình dùng lệnh vẽ đọan thẳng thì vừa vẽ đoạn thẳng sẽ vừa tự fillet hoặc vừa tự trim các đoạn giao nhau. Giống như là 1 lệnh Line rất thông minh, nó có thể làm được 1 lúc 3 chức năng. Người sử dụng chỉ việc vẽ liên tục và lệnh sẽ tự fillet và trim, Người sử dụng không cần kết thúc lệnh Line rồi sau đó mới dùng lệnh fillet hay trim.

     

    Ví dụ là khi bác vẽ ngôi sao, nếu dùng lệnh Line bình thường thì 5 đỉnh của ngôi sao đó sẽ nhọn, 5 cạnh của ngôi sao sẽ giao nhau. Nếu bác muốn vát 5 đỉnh của ngôi sao phải dùng thêm lệnh fillet, nếu muốn cắt đoạn giao nhau giữa 5 cạnh của ngôi sao phải dùng lệnh trim.

     

    Mọi việc sẽ dễ dàng, nhanh chóng hơn nếu có 1 lệnh có thể tập hợp được cả 3 lệnh Line-Fillet-Trim ( tạm gọi là lệnh Line pro ). Đầu tiên vẽ cạnh thứ 1 của ngôi sao, khi mình vừa vẽ xong cạnh thứ 2 thì đỉnh sẽ tự fillet, vừa vẽ xong cạnh thứ 3 thì đỉnh sẽ tự fillet và cạnh giao nhau sẽ tự TRIM, vừa vẽ xong cạnh thứ 4 thì đỉnh sẽ tự fillet và cạnh giao nhau sẽ tự TRIM, vừa vẽ xong cạnh thứ 5 thì đỉnh sẽ tự fillet và cạnh giao nhau sẽ tự TRIM.

     

    Mong bác Hoành nghiên cứu giúp mình nhé.

    Chúc bác luôn vui vẻ và thành công trong công việc.


  3. Điểm 1: Bạn cứ vẽ Pline bình thường. Sau đó thì dùng lệnh Fillet với tham số P

     

    Chào bác Hoành.

     

    Nếu mình dùng line vẽ đoạn thằng rồi dùng fillet để vát góc hay trim để cắt đoạn giao nhau, làm từng bước như thế thì mình đã không post bài yêu cầu lên diễn đàn rồi.

     

    Mong các bác dành chút thời gian nghiên cứu thêm.


  4. Gud moning!

    Trong AutoCad, khi các bạn dùng Line hay Polyline sẽ vẽ được liên tục các đoạn thẳng. Nhưng các đoạn thẳng này sẽ không tự vát góc ( không tự fillet - ①), hoặc khi giao nhau giữa 2 hay nhiều đoạn thẳng sẽ không tự cắt đi phần giao điểm ( không tự trim - ②).

    Do đó tôi muốn hỏi các cao thủ trên diễn đàn có thể viết ra lệnh Line hay Polyline Pro hơn không?

    Tôi tạm gọi là lệnh Line hay Polyline Pro này có đặc điểm đa số giống lệnh Line hay Polyline bình thường của AutoCad, chỉ khác được cải tiến ở điểm 1 và 2 nói trên. Còn qui luật fillet hay trim thì do người lập trình tự quyết định theo hướng có lợi cho người sử dụng.

    Đây có thể chỉ là nhu cầu của các nhân tôi hoặc có thể là nhu cầu của nhiều người, do đó mong các bác rảnh rỗi dành chút thời gian nghiên cứu dùm nhé.

    Thank.


  5. Gửi bạn saudoihamchoi08,

    Quả thực mình không hiểu nổi bạn nữa. Bạn hãy tự xem lại các bài post trước của bạn đi. Yêu cầu của bạn không phải không thực hiện được mà không ai có thể hiểu được bạn muốn gì khi mỗi lần bạn yêu cầu một kiểu.

    Cái lisp của mình nếu bạn chịu khó đọc, bạn hoàn toàn có thể sửa nó theo ý của bạn và áp dụng nó cho bài 2 của bạn.

    Thực tề nếu như bạn muốn vẽ n đường thẳng không phải là việc khó nhưng quy luật của các đường này ra sao chứ, vẽ bừa thì nó sẽ như cái mà mình đã gửi bạn.

    Bạn có hiểu tại sao mình đặt tên lisp là trò mèo không???

    Cái lisp trò mèo 1 chỉ là cải tiến tí chút từ cái trò mèo mà thôi. Bạn suy nghĩ và làm việc kiểu đại khái như vậy thì thực chất bạn đang làm cái trò mèo đó đấy.

    Mình nhắc lại, bạn cần phải hiểu bạn muốn cái gì và trình bày cụ thể, chính xác cái yêu cầu mình muốn theo đúng ngôn ngữ mà người kỹ thuật sử dụng.

    Ở bài 1, theo yêu cầu lần trước bạn không hề nói tới việc chọn điểm thứ hai phải là đầu của đoạn thẳng kế tiếp, thậm chí bạn cũng không thèm nói tới yêu cầu là đường thẳng thứ hai sẽ vuông góc với đường thẳng thứ nhất. Bạn cần nhớ khác phương không có nghĩa là vuông góc. Sở dĩ trong cái trò mèo 1 mình làm vuông góc vì mình nhìn cái hình của bạn thôi. Trong bài 1 rõ ràng bạn nói sau khi vẽ xong L5 thì kết thúc. Vậy mà bấy giờ bạn lại bảo vẽ n đường. Và n đường này theo quy luật nào chứ. Thậm chí cái quy luật mà bạn nói với n=5 cũng đã sai toét tòe loe so với cái hình bạn post lần trước. Bạn không tin hả? Cái L4 của bạn trên hình làm sao mà vẽ với quy luật đó.Bạn nghĩ cái gì vậy.?

    Ở bài 2, lần trước bạn có đưa hình mẫu cho n=1, 2, 3 nhưng với n=4, n=5 ..... thì không và chẳng hề có một thông số gì để người đọc phát hiện ra cái quy luật bạn muốn. Lần này bạn lại cung cấp trần sì chỉ có n=2 và cũng chẳng hề cho biết cái quy luật của nó ra sao.Bạn có giới hạn n=5 là quá dể dàng rồi nhưng vẫn phải có quy định cho n=3,4,5 mới có thể vẽ được. Lại còn khi nào thì bạn sẽ chọn l1 là đường đối xứng, và khi nào thì là l2 nữa hay là tuỳ nghi lựa chọn. Dù thế nào bạn cũng phải cung cấp thông tin cho chính xác thì người khác mới giúp bạn được. Bằng không tất cả chỉ là trò mèo vì người viết như tôi cũng chả biết để làm gì , và người cần như bạn cũng quẳng đi.

    Bạn là người làm kỹ thuật, đừng bao giờ nói những điều mà chính mình cũng không hiểu. Hảy tìm hiểu cho kỹ, hiểu cho bằng được cái mình cần đã.

    Mình rất không thích khi phải nói với bạn thế này, nhưng không thể không nói vì ít nhất cũng để bạn hiểu mình nghĩ gì về bạn.

    Rất mong bạn sẽ suy nghĩ nghiêm túc về những điều mình nói, và đừng giận mình lâu.

    Cám ơn bạn đã đọc bài.

     

    TB: Bạn có thể sử dụng cái lisp của mình miễn phí. Hãy đọc kỹ nó và vận dụng vào yêu cầu của bạn. Nếu có khó khăn chỗ nào thì post lên để cùng trao đổi.

    Việc bạn yêu cầu lisp khi vẽ phải thể hiện con trỏ chữ thập mình chưa biết làm bạn ạ. Có thể có cách nhưng mình chưa biết, bạn hãy tìm hiểu thêm nhưng theo mình điều đó không thực sự cần vì lisp nó tự động chạy rất nhanh chả thể theo dõi cái con trỏ đó nó chạy đâu. Nếu muốn bạn cứ tìm hiểu thêm nhé.

    Chúc bạn thành công.

     

     

    Bộ tớ nói khó hiểu lắm hả. :s_big:

    Có bác nào hiểu ý đồ của tớ không vậy. :cheers:

    Tớ không phải bày trò để đùa giỡn trên diễn đàn nhưng đây là cái mà tớ đang cần.

    Mọi người tin tưởng tớ nhé.

    Tớ càng nói rõ yêu cầu thì càng gây khó hiểu thật sao.

    Tớ không hiểu ti gì về lisp cả.

    Ngày mai tớ sẽ cố gắng nói lại 1 lần nữa thật dễ hiểu cho bác bình và các cao thủ giúp đỡ.


  6. Chào bạn saudoihamchoi08,

    Đã xem hình của bạn và cả đọc bài nữa vẫn không hiểu. Vậy khi n=4 thì sao, n=5 thì sao và khi n =10000000 thì Ô là là khỏi vẽ à????

    Bạn phải cho quy định cụ thể chứ, không có bố thằng Tây cũng khóc.

     

    À mà bạn lưu ý cho là nếu hai đường thẳng song song vẫn có thể fillet được đó. không tin, bạn hãy thử nhé.

    Nói hai điểm đối xứng nhau là chưa đủ, bạn cần phải cho biết đối xứng qua tâm hay qua trục nào nữa nhé. Đừng chủ quan.

     

     

    Tớ xin nói lại 1 lần nữa.

     

    Bài 1

    Yêu cầu của bài Lisp của bác bình ( Chỉ giới hạn 5 đường thẳng

    khi vẽ không hiện cây đường thẳng)

    Click điểm 1 => lấy điểm đầu L1 Click điểm 1 => lấy điểm đầu L1

    Click điểm 2 => vẽ L1 Click điểm 2 => vẽ L1

    Click điểm 3 => vẽ L2 Click điểm 3 => lấy điểm đầu L2

    Click điểm 4 => vẽ L3 Click điểm 4 => vẽ L2

    Click điểm n => vẽ L(n-1)

     

    * Nếu đoạn thẳng cắt nhau => tạo khoảng cách K

    * Nếu đoạn không cắt nhau => fillet bán kính R

    * Điểm đầu L2 mặc định hiểu là điểm cuối L1. Cái này giống y khi dùng lệnh pline. Thay vì pline cho 1 góc vuông 90 độ thì lệnh này tự động fillet bán kính R. Và muốn vẽ hàng ngàn đường thẳng thì lisp vẫn hiểu. Ở trong hình tớ chỉ ví dụ 5 đường thẳng thôi.

    * Khi vẽ hiện cây đường thẳng giống như khi mình dùng lệnh pline ấy.

     

    Bài 2

     

    Giới hạn n=5, nếu n>5 hiện ra thông báo yêu cầu nhập n<=5.

     

    http://www.cadviet.com/upfiles/Book1_2.xls


  7. Tớ mới vào diễn đàn nên còn nhiều sai xót. Tớ nói lại yêu cầu nhé, lần này bỏ vấn đề ghi text.

     

    Bài 1:

    1 - Gõ tên lệnh

    2 - Nhập thông số ( R, K)

    3 - Vẽ đoạn L1

    4 - Vẽ đoạn L2. Sau khi vẽ L2 thì tự động fillet bán kính R

    5 - Vẽ đoạn L3. Sau khi vẽ L3 thì tự động fillet bán kính R.

    6 - Vẽ đoạn L4. Do L4 cắt L3 nên lisp tự động cắt 1 khỏang cách K. 2 điểm K1 và K2 đối xứng nhau.

    7 - Vẽ đoạn L5. Sau khi vẽ L5 thì tự động fillet bán kính R.

    Kết thúc

     

    http://www.cadviet.com/upfiles/bai_1.jpg

     

    Bài 2:

    1 - Gõ tên lệnh

    2 - Nhập thông số ( R, K, n )

    3 - Enter và lisp tự động vẽ n đoạn thẳng từ C1 đến C2. ( n là số đoạn thẳng muốn vẽ )

    Kết thúc

     

    http://www.cadviet.com/upfiles/bai_2.jpg

     

    Tớ xin lưu ý các bác điểm này ở 2 bài

    Phương các đoạn thẳng phải khác nhau thì mới fillet được ( Đương nhiên )

    L1 L2 L3 không cắt nhau. Nếu đoạn thẳng không cắt nhau lisp tự động fillet bán kính R. Nếu đoạn thẳng cắt nhau lisp tự động tạo 1 khoảng cắt là K.

    Ở bài 2 thì lisp sẽ vẽ các đoạn thẳng theo qui tắc nào thì các bác làm sao cũng được hay theo qui tắc trái qua phải, trên xuống dưới cũng được.

    Thông số về polyline mặc định hay người dùng thiết định thì càng tốt.

     

    Có bác nào chưa rõ thì nhắn lại nhé.


  8. Tớ có 2 bài toán nhờ các bác cao thủ, sư phụ trên diễn đàn giúp đỡ.

     

    http://www.cadviet.com/upfiles/tham_khao.dwg

     

    Bài 1 :

    * Tớ muốn vẽ các đoạn thẳng từ C1 đến C2, sau đó từ C3 đến C4.

    - Đầu tiên tớ vẽ các đọan thẳng từ C1 đến C2 :

    Vẽ đọan L1 và ghi text L1 ngay tâm đoạn L1, khi vẽ đoạn L2 khác phương L1 thì tự động fillet 1 góc R và ghi text L2 ngay tâm đoạn L2. Tương tự, khi vẽ đoạn L3 khác phương L2 thì tự động fillet 1 góc R và ghi text L3 ngay tâm đoạn L3.

    - Sau đó tớ vẽ các đọan thẳng từ C3 đến C4 :

    Vẽ đoạn L4 và ghi text L4 ngay tâm đoạn L4, vẽ đoạn L5 khác phương L4 thì tự động fillet 1 góc R và ghi text L5 ngay tâm đoạn L5.

    Trước khi vẽ lisp sẽ yêu cầu nhập thông số như sau ( nếu nhập theo bảng thì quá pro )

    Bán kính muốn fillet ( R ) :

    Khoảng cách muốn cắt ( K ) :

    Về Polyline : Layer, màu, linetype, linetype Scale, lineweight, thickness...

    Về Text : Layer, màu, linetype, linetype Scale, lineweight, thickness, style name, height text, width factor...

    Khi 2 đoạn thẳng cắt nhau thì tự động cắt 1 đoạn K. Tâm đoạn thẳng K nằm trên đoạn thẳng còn lại. Ví dụ ở đây là đoạn L3 cắt L4.

     

    Bài 2 :

    * Ở bài 2 giống bài 1 chỉ khác là khi muốn vẽ các đọan thẳng từ C1 đến C2 ta chỉ cần nhập R và số đoạn thẳng muốn vẽ thì lisp tự động vẽ. Ví dụ khi vẽ các đọan thẳng từ C1 đến C2, ta nhập R=150 và số đoạn thẳng =3, khoảng cách cắt K=200, chọn đối tượng là C1 và C2.

    * Tương tự khi vẽ các đọan thẳng từ C3 đến C4, ta nhập R=150 và số đoạn thẳng =2, khoảng cách cắt K=200, chọn đối tượng là C3 và C4.

     

    2 bài này tớ nghĩ hơi khó và tốn nhiều thời gian nên các bác giúp được tới đâu cũng được.

    Bởi vì diễn đàn có ghi Viết lisp theo yêu cầu nhưng không biết có tốn phí không và làm sao để thanh toán. Nếu free thì có dịp gặp mặt xin mời mấy bác chầu cafe nhé. :cheers:

×