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

NTD

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

    136
  • Đã tham gia

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

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


  1. Em có thêm 1 ý tưởng thế này tuy ko làm các Files khác nhau ngay lập tức pan zoom như nhau trong cùng lúc đc nhưng em thấy dù sao có còn hơn ko , có mà dùng là tốt lắm rồi

    Mong các bác cao thủ viết cho 1 Lisp dựa vào lựa chọn Object của lệnh Zoom sao cho :

     

     

    - Khi bất kỳ 1 File nào đó mở lên đã load tự động LISP này thì đã ..... tự động vẽ luôn 1 cái RECTANGLE đúng bằng cửa sổ Viewport tĩnh hiện thời của Model Space , mà cái RECTANGLE đó nằm trong Layer Depoint hoặc 1 Layer nào đó ko in ra ( như thế cho an toàn lúc in ấn )

    - Khi cửa sổ Viewport tĩnh hiện thời của Model Space thay đổi , tức là pan zoom thay đổi thì lập tức xóa RECTANGLE cũ kia đi vẽ 1 RECTANGLE mới đúng bằng cửa sổ Viewport tĩnh hiện thời lúc kết thúc pan zoom

    - Tự động gọi lệnh Zoom với tùy chọn Object và tự động chọn Object là cái RECTANGLE mới kia ==> Viewport tĩnh sẽ ko thay đổi

    - Đưa con chuột sang File khác và gọi lệnh ( tên lệnh là dấu ` cho nhanh ) thì lập tức cái RECTANGLE bên File trước đó đã đc copy sang đúng tọa độ UCS quốc tế . Sau đó Tự động gọi lệnh Zoom với tùy chọn Object và tự động chọn Object là cái RECTANGLE vừa đc copy vô

     

    ==> Kết luận 2 Files mở cùng lúc sẽ có Viewport tĩnh hiện thời của Model Space so với UCS quốc tế là như nhau , Vấn đề đc giải quyết phần nào

     

    PS :

    - Em chỉ biết chém gió thôi các bác cao thủ xem xét viết giúp em

    - Dù sao em vẫn muốn có LISP cho Idea trước hơn hoặc là có bác nào ... hack đc CADStudioDWGsync thì thôi rồi :D


  2. Mình thấy cái này chỉ cần đưa tọa độ và tỷ lệ các bv trùng nhau, đổi màu cho nó khác tý sau đó insert hay xref là có thể tham khảo đc rồi. Chính xác đến từng cm Tại sao phải rắc rối vậy

     

    bác phải nghĩ rộng hơn 1 chút . Nếu bác ko phải là ng vẽ như chủ topic mà là ng quản lý hồ sơ , bác phải kiểm tra ra soát các thông tin trên các bản vẽ ở các files khác nhau của các bộ môn với các bản vẽ mặt bằng kiến trúc , điện , nước , mặt bằng trần , mặt bằng sàn , mặt bằng kết cấu ....v...v..... hàng chục bản vẽ của 1 tòa nhà cao tầng do cả chục con ng vẽ trong cả chục files khác nhau

    Ngược lại bác là ng vẽ thì đây là phuơng pháp bác tự mình rà soát thông tin của san phẩm mình vẽ trước khi nộp bài cho sếp hay chủ đầu tư , và cả bên thẩm tra

    Tóm lại phát hiện đc sai sót hay sáng kiến nhanh hơn chính là do quan sát & nắm bắt thông tin nhanh hơn nhiếu hơn hiệu quả hơn . 40 euro cũng đúng thôi , tiết kiệm bao thời gian & tìm ra bao sai sot trong bản thiết kế , đáng tiền mà , Nhưng ...có ai ở đây dùng CAD bản quyền ko , em thì ko....... :D


  3. em đã download bản CADStudioDWGsync.msi cho CAD 2012-2013 về chạy thử , tất nhiên là bản trial rồi

    Em thấy bản trial nè chạy rất ngon trừ mỗi chỗ sau .... 3p kể từ khi ta goi lệnh DWGSYNC ( lần đầu tiên để kích hoặt phần mềm và tích vô cái ô của nó để với tính năng lăn chuột giữa up sự hiển thị cho các files ) thì CADStudio sẽ tự động tắt đi ( chưa bỏ tiền ra mua mà :D ) . Và điều này chỉ tính cho mỗi lần CAD đóng tất cả các Files rồi mở lại các Files , quy luật 3 phút miễn phí bắt đầu lại từ đầu

    Nên em có ý kiến là các bác có thể viết 1 Lisp về lệnh zoom pan bình thường nhưng trong Lisp đó có gọi lệnh DWGSYNC liên tục và yes tự động , tự động kích vô các ô phía trên

    Đó là cách nhìn của em , có gì mong các bác cao thủ xem xét

     

    Em đã vô acad.pgp và đặt DWGSYNC là dấu ` ngay dưới dấu ~ ====> cũng nhanh hơn 1 chút nhưng vẫn ... thấy ức lắm :D


  4. Cứ để bạn Tue viết mà ngồi ngoài nói hoài trông có vẻ thọc gậy bánh xe quá nên mình mạn phép sửa cái lisp thành như sau:

    -Tên lệnh: DBL.

    -Chọn block.

    -Chọn điểm chèn mới.

    *Đúng với block quay mọi góc độ nhưng chưa không đúng khi block bị scale (Có cách nếu tỉ lệ giửa trục x và trục y là bằng nhau). Mình chưa đưa phần tỉ lệ vào vì bị vướng như trên không nghỉ ra cách. Nhờ các bạn test giúp nếu đạt yêu cầu và chấp nhận áp dụng cho tỉ lệ điều giữa 2 phương thì mình bổ sung 1 đoạn.

     

    http://www.cadviet.c...doiblockduy.lsp

    CẢM ƠN BÁC DUY

    Sao mọi người vẫn đưa ra các ý kiến khác ko dùng Lisp của bác Duy nhỉ , em đã test Lisp này rồi , chuẩn , nhanh , ko gặp lỗi nào , roteta , miror , scale , ko xảy ra lỗi nào lại còn nhanh . Tóm lại...... là yêu lắm cơ :D


  5.  

    Bác nè cho thuốc chữa chuẩn luôn cái bệnh ko load dc tự động LISP của các phiên bản CAD mặc dù đã cho vô danh sách Contents/Startup Suite

    Các anh em vô link down bản AutoCAD xxxx VBA Enabler tương ứng về , trước khi cài thì nhớ là Uninstall phiên bản cũ đi thì mói có thể cài đc . Phiên bản cũ lúc ta cài CAD đã có thể bị virus làm hỏng rồi hoặc có bác lại bỏ qua ko cài đủ

    Thanks bác quangthanhdu 1 lần nữa


  6. Bác Teu hay bác ketxu ơi giúp em sửa cai lisp UDT tình diện tích ra m2 thêm 4 ý nữa cho hợp với công việc của kiến trúc sư được ko ? .

     

    1. Em muốn sau khi tính ra diên tích rồi và pick vô 1 cái text sẵn có nào đó để edit ra kết quả như moi người đã biết thì kết quả đó có luôn phần hậu tố là m2 nếu tỷ lệ nhâp là 0.001 và kết quả đó có luôn phần hậu tố là ha (hécta ) nếu tỷ lệ nhập là 1/10 000 000 000 (vì 1ha = 10 000 m2 = 10 000 000 000 mm2 ) Mà tốt nhât các bác bỏ luôn đoạn nhập tỷ lệ cho em thay vào đó cho lụa chọn hệ đơn vị sẽ quy đổi luôn là m2 thì tiện lợi hơn , em nghĩ vậy , ( mạc định là cho chọn hệ m2 như bác Tue cho em chọn tỷ lệ 0.001 , vì hay dùng m2 nhất )

    . VD kết quả là 15m2 , 20m2, 34ha , 45ha ,,,,Xin các bác lưu ý là không cần ký tự cách giữa con số và 2 ký tự m2 đâu ạ , viết liền luôn

    2. Như ý 1 nhưng ý 2 thì kết quả là : Phòng Khách 30m2 hay Phòng Ngủ 25m2 ( Phòng Khách , Phòng Ngủ là các text đã có sẵn trên bản vẽ ) các bác lưu ý về dấu cách giữa tên phòng và kết quả nhé

    3 . Em Muốn có thêm 1 chế độ trong Lisp UDT của bác Teu giống như của bác tksi259 đó là ko cần chọn Text để edit ra kết quả mà pick vô 1 điểm bất kỳ thế là phát sinh ra text kết quả ( mạc định chiều cao Text là 300 , có thể thay đổi mạc định nè để ko cần edit chiều cao text kết quả nhiều lần )

    4. Lisp của bác tksi259 sao toàn cho kết quả là 0 , chắc tạ em gà quá , nhưng có cái hay là khi vùng tính diện tích chưa bo Pline thì ko dùng phương pháp pick vùng kín như UDT mà lại dùng phương án pick điểm ( pick vùng kín như UDT mà gặp vùng bản vẽ nhiều hatch nặng là treo máy ngay , mà nhiều khi vùng cần tính diện tích là vùng "ảo" chỉ có trong đầu KTS chưa vẽ ra bản vẽ thì sao , làm concept hay gặp lắm , chưa vẽ kỹ nhưng đã muốn có kết quả để kiểm nghiệm trước rồi mới vẽ kỹ mà ) , mong bác Tue sửa nhất chỗ này cho em đỡ treo máy

     

    Em xin cảm ơn ! rất mong cac bác edit cho ! Hiện giờ bao em vẫn dùng UDT cũ vần thấy tuyệt vời rồi nhưng đc thêm 4 ý trên nữa thì Lisp hoàn hảo ko 1 tỳ vết luôn các bác ạ


  7. Bạn có thể thêm vào lệnh sau Cotxx : dùng để định nghĩa cốt bất kỳ (tương tự cốt 0.00)

    (defun c:cotxx ()  (setq Cotxx (getreal "\nNhap cot can dinh nghia: ")      Cot00 (+ (cadr (getpoint (strcat "\nDiem co cot " (rtos cotxx 2 3) ": "))) Cotxx)    )  (princ))

     

    Bạn cũng có thể kết hợp với lệnh tăng giảm cốt đồng loạt, tham khảo tại đây

    http://www.cadviet.com/forum/index.php?sho...ost&p=37756

     

     

    đoạn mã của bác là

    (defun c:cotxx ()

    (setq Cotxx (getreal "\nNhap cot can dinh nghia: ")

    Cot00 (+ (cadr (getpoint (strcat "\nDiem co cot " (rtos cotxx 2 3) ": "))) Cotxx)

    )

    (princ)

    )

     

    em thấy phải thay dấu cộng + thanh dấu trừ - mới chuẩn, em đã thử rồi , sẽ viết lại là :

     

    (defun c:cotxx ()

    (setq Cotxx (getreal "\nNhap cot can dinh nghia: ")

    Cot00 (- (cadr (getpoint (strcat "\nDiem co cot " (rtos cotxx 2 3) ": "))) Cotxx)

    )

    (princ)

    )


  8. Ôi !!! đúng lúc em đang bị vài lỗi như bác miêu tả

    Em nghe ...giới "Võ Lâm" cadviet đồn là bác Nguyen Hoanh lâu nay hàng ngày vẫn ... "quét chùa" trong " tàng kinh các" "nội lực" uyên thâm , "công phu" đỉnh cao , hôm nay em mới được mở tầm mắt thấy bác ... "quét virus" trong thớt này . Em rất ngưỡng mộ , nói ngắn gọn là : Thank you , I ... love you :D

    Hiện nay trên "giang hồ" đang có ... "1 tên ác bá" khiêu khích thách thức nhiều cao thủ . Mong bác xuông tay triệt diệt y

    Hắn đây mời bác

    http://www.cadviet.com/forum/index.php?showtopic=17934&st=40


  9. Bác Bach lạc chủ đề rồi , nhưng em vẫn xin trả lời bác

    Thưa bác là mọi vấn đề trong cuôc sống luôn có cách đi tắt hết , vấn đề là bác có chịu tìm hiểu & học hỏi hay dấu dốt hay ko thôi

    - Nếu bác muốn nổi tiếng như KTS TadaoAndo bác nên ... học quyền anh , làm nghề thợ mộc , bồi bàn , học EL , làm tất cả các công việc mà dân văn phòng mà cụ thể là KTS như em cảm thấy sỹ diện ko thể làm đc để đi du lịch vòng quanh thế giới mà vẫn kiếm sống đc.Đặc biết là đừng bao giờ học đại học kiến trúc cụ thể hơn nữa thì em chưa đủ tầm để nói rõ ràng hơn nhưng đại khái là vậy

    - Nếu bác muốn thành KTS tầm thường như em thì quá dễ , ko cần phí công học 5 năm ĐH như em đâu . Bác đã là họa viên rồi CAD-Max-Shop ngon , OK đến công ty em đi sếp em nhận bác lam họa viên ngay , concept hay kỹ thuật tùy bác chon , đang thiếu người mà . Công ty em chẳng nhìn bằng cấp đâu . Em học Quy Hoạch mà làm Công Trình gần 9 năm nay , toàn làm nhà cao tầng , em có cả giấy chứng chỉ hành nghề KTS công trình, xin cấp phép đúng quy định của sở ko đút tiền . Em làm đc 2 năm đầu tiên toàn vẽ 3D + MB concept , xong xin chỉ làm kỹ thuật bổ thang, WC , trần, sàn..v..v.. đc 2 năm tiếp theo . Bây giờ năm thứ 5 làm chủ trì kiến trúc . Thi thoảng ngồi nói chuyện với sếp & anh em công ty , vẫn hay đùa vói nhau .... cần éo gì học ĐH . Thì trường ĐH Kiến Trúc có cái nhà mới xây đó thôi , xấu có mà khó có còn ngôn từ nào miêu tả :D .

    Nếu bác có ý nghiêm túc em sẽ cho bác số điện thoại của em để qua cty em test thử việc , em nói trước là sẽ lương thấp đó , nhưng có ý gắn bó lâu dài với cty & định hướng lâu dài với nghề thì bác sẽ vượt qua đc hết và sau khoảng nhanh thì 2 nănm lâu thì 4 năm sẽ có 1 vị trí như nhóm trưởng của 1 nhóm toàn KTS văn bằng ĐH đàng hoàng , đưong nhiên tiền cũng khác rồi :D

     

    Ps : - Ai nghĩ em chém thì cứ nghĩ thoải mái đi

    - Em chỉ bác Bach cách đi tắt rồi nhé , bác chỉ em cách đi tắt đi , làm sao ............ :D


  10. 2 Bác ketxu & Doan Van Ha giúp em đi , nốt lần này thôi em sẽ không đặt thêm yêu cầu nào hay idea nào trong thớt này nữa các bác chỉ em cách duyệt qua các string là gì ? làm ra sao ? để trích xuất đoạn mã lọc đưa vao Lisp chạy ngon

    Đúng là em hơi tham , chưa biết ABC đã muốn JKL . Nhưng nghề của em là kiến trúc sư , em tham gia diễn đàn CV cũng đc gần năm rồi đây là lần thứ 2 em đặt ra các câu hỏi mà . Thời gian gần đây Cty ít việc nên em mới có time ngâm cứu Lisp , về nhà thì vợ con , rồi đánh quả , hiếm lắm mới có nhiều time vào diễn đàn cadviet học hỏi như đợt này .

    Các Lisp em đang dùng cho công việc thì cũng sưu tầm đc nhiều lắm rồi ,cũng tự mình viết rất nhiều cái đơn giản . Lúc này chỉ mong học đc thêm cách làm sao trích xuất đc các đoạn mã lọc từ lệnh Filter để đưa vào Lisp theo idea của em mà mã câu lệnh em nắm đc. Mà như vậy cũng là 1 cách học về DXF mà bác , chứ có phải em lười đâu , em đang nhờ các bác giúp em đi tắt đón đầu trong việc nghiên cứu DXF đấy chứ :D . Cảm ơn bác cả 2 bác vì ... sắp giúp em :D


  11. Đỏ: mã (-4 . "=") kèm theo là (62 . 256) nghĩa là màu của nó bằng 256 (bylayer), mã (-4 . "=") (40 . 924) nghĩa là chiều cao text bằng 924. Mã "=" này chỉ dùng được khi xét đến con số (ví dụ bán kính...)

    Xanh: không thể biết hết nỗi đâu, có hàng ngàn mã lận.

    Nâu: Còn nhiều thứ khó hơn DXF nhiều lần.

     

    Sư ... thúc !!!! bác thử xem có cách nào sắp xếp các mã , các dòng của File filter.nfl thành 1 đoạn mã mẫu như bác ketxu đã cho em ko ? tất nhiên là phaii automatic thì mới có ích lợi . Không phải tự dưng em nghĩ thế đâu , có thể dùng Excel tạo hàng & cột của các câu lệnh Lisp rồi tự động cập nhật các mã các dòng của filter.nfl (đã đc dán vô 2 cột của Excel ) . Em biết ý tưởng đó rất khó & mông lung nhưng nếu đc thì ...........Thôi em biết khả năng của em nên ko dám nghĩ ngợi quá xa đua đòi với các bác


  12. @ ketxu : Sư phụ !!!!!! , em đã làm theo hướng dẫn của bác với thử 2 Filter, đây là kết quả , là nội dung của File filter.nfl nằm trong thư mục

    C:\Users\duong\AppData\Roaming\Autodesk\AutoCAD 2012 - English\R18.2\enu\Support ( em đã tạo luôn 1 shotrcut trên taskbar để mở cho nhanh mà ko cần dán (startapp "notepad.exe" (findfile "filter.nfl")) vô dòng commandline nữa , nhanh hơn , hêhê )

    Filter.nfl -- Do not edit this file.

    :ai_lisp|123456

    (0 . "*TEXT")

    (-4 . "=")

    (40 . 924.000000000000000)

    :ai_str|123456

    Object = Text

    Text Height = 924.000000000000000

    :ai_lisp|HatchTuongXay_1

    (0 . "HATCH")

    (8 . "Hatch-Tuong-Gach__KT_SJ_T_12_H_24B_T2+")

    (6 . "BYLAYER")

    (2 . "TUONGXAY")

    (-4 . "=")

    (62 . 256)

    :ai_str|HatchTuongXay_1

    Object = Hatch

    Layer = Hatch-Tuong-Gach__KT_SJ_T_12_H_24B_T2+

    Linetype = BYLAYER

    Hatch Pattern Name = TUONGXAY

    Color = Color

     

    ít ra thì lúc này em cũng đã khá hơn hẳn đêm qua , đến đêm qua em chưa thuộc hết mấy mã DXF bác liệt kê cho , đã đọc Help về mã DXF đâu , giờ thì bất kể mã gì em cũng có thể biết & đặc biệt là có luôn khỏi gõ , copy dán vô , đỡ nhàm lẫn . Chỉ có cái mã (-4 . "=") là mã gì thế em ko hiểu , ko thấy giải thích ở phần bên dưới

    Nhưng idea ban đầu của em là mong bác xuất tự động đc thành 1 đoạn mã hoàn chỉnh .... như mấy lệnh lọc mà bác dạy em đó . Phần còn lại là em thêm các mã lệnh hiệu chỉnh tùy ý do em tự viết vô . Tóm lại là phần lọc là khó nhất trong Lisp ( theo cảm nhận của riêng em thôi ) thì sẽ đc automatic tạo ra nhờ 1 cách nào đó "sư phụ" sắp nghĩ ra , còn lại phần dễ hơn thì đệ xin tự làm . Như thế gọi là người nhỏ làm việc nhỏ mà :D

     

    @ lp_hai : (entget (car(entsel))) lệnh hay lắm bác , tuy ko uyên thâm như chiêu của bác ketxu nhưng lại có ưu điểm nhanh hơn cho việc tìm hiểu DXF


  13. Như em vừa nói ở trên em còn vài chục cái idea nữa chưa dám kể ra , nhưng có 1 idea em vừa lóe lên ko nói ra ko dc bởi nghe xong có bác sẽ bảo em mơ mộng quá , nhưng thực sự với khả năng của em thì 1 năm nữa ngâm cứu Lisp cũng chưa viết nổi nên đành viết ra yêu cầu ở đây :

     

    Nội dung : Bản thân CAD cơ bản đã có lệnh Filter & QSELECT để lọc các đốii tượng trong bản vẽ rồi . Như vậy theo như bác ketxu nói " Dxf là mã thuộc tính của đối tượng. Mỗi 1 đặc tính của đối tượng đều được gán vào 1 mã " thì rõ ràng là 2 lệnh này phải lọc theo các mã Dxf rồi , chứ ko thì làm sao mà lọc đc ? Mong muốn của em là ... xuất đc đoạn mã lọc của 2 lệnh đó ra sau khi thực hiện lệnh Filter & QSELECT cơ bản ====> thành các Files , thành các đoạn văn bản để đưa vô Lisp mình sẽ làm . Như vậy sẽ đỡ.... tốn công viết bộ lọc trong lisp rất nhiều ===> bộ lọc khó đến mấy cũng viết đc , dài đến mấy nhiều bộ lọc đến mầy cũng nhanh hơn .

     

    Idea trên có gì dở hơi quá mong các bác dù cười nhưng đừng ... mất hi vọng :D Nếu ko ai viết đc cũng ko sao đâu , chắc tại em mơ mộng cái phi thực tế quá thôi . Nhưng vẫn rất mong các bác cao thủ viết được cho em rút ngắn thời gian học về bộ lọc trong lisp :D

     

    PS: mấy bác viết Lisp bằng trình soạn thảo gì mà chữ mầu xanh đỏ dễ quan sát các hàm thế , chắc ko phải như em viết bằng Notepad đấy chứ ?


  14. @ Doan Van Ha : em mới tập tẹo nên cũng ko biết nhưng yêu cầu đó là hơi nhiều trong 1 đoạn mã & tốn công sức thời gian của người viết , cứ nghĩ đơn giản có Lisp chọn theo Color rồi vù 1 cái các bác đã thêm chọn theo LineType cũng trong 1 lệnh

     

    @ ketxu : Bác kextu thật quá pro , đã giỏi lại nhiệt tình chỉ bảo , em cảm động quá . Thấy bài viết trả lời của bác quá là công phu , tuy hiện giờ bác nói 10 em chưa hiểu hết 1 nhưng hiệu quả là em thấy có hướng đi để ngâm cứu rồi . Mấy lisp của bác viết cho em chưa test nhưng sẽ dùng làm mẫu nghiên cứu dần . Nhiều cái chưa biết quá , chài chài ,... Vạn sự khởi đầu nan gian nan bắt đầu ... nản :D . Hay là .... em tán bác thêm vài câu nữa bác viết nốt cho em độ ... vài chục cái idea nữa , cho nó nhanh khỏi nghiên cứu nọ kia , với trình EL của em mà nghiền ngẫm mấy trang Help của CAD bác chỉ cho có mà DaVitSiMân . Nói thế thôi dù gì em cũng rất hứng thứ nghiên cứu LISP , mong sau này sẽ hoc hỏi thêm thậm chí chia sẻ với các bác nhiều nhiều

     

    PS: bác admin đừng Close thớt này sớm quá nhé , để em có thời gian DaVitSiMân xong còn có chỗ hỏi han về bộ lọc trong LISP

    Xin cảm ơn mọi người


  15. Tham khảo : Lisp chọn các đối tượng cùng màu

    hay : Lisp chọn các đối tượng theo màu hay linetype

    link :

    - Viết lisp theo yêu cầu [phần 2] # 6

    - Viết lisp theo yêu cầu [phần 2] #8

    Vì thớt bác cho em link bên kia Close mất rồi nên em mạn phép

    Xin bác Bach viết tiếp LISP chọn đối tượng theo :

    - Theo kiểu Hatch : lọc theo Hacth Style , VD: chọn tất cả hacth BêTông ko cần biết nằm trong Layer nào để hiệu chỉnh , nếu có thêm tùy chọn lọc theo Scale của cùng 1 kiểu hatch nữa thì tốt quá

    - Theo Dim : lọc theo Dim Style , thêm lọc theo kiểu cùng 1 Dim nhưng Scale factor khác nhau , lọc các DIM có Scale factor = 1 , lọc các DIM có Scale factor # 1 , lọc các DIM có Scale factor = một số do user nhập vào hoặc chọn Dim mẫu trên bản vẽ

    - Theo Style của Text & MText : Lọc theo Style , thêm lọc theo chiều cao của cùng 1 Style

    - Theo Layer : dùng để hiện tất cả các Layer đc chọn lên dù nằm trong Block , với GRIP giúp dễ nhận biết các Layer đc chọn trong Bản vẽ hơn , bởi có thể Layer đó cùng màu nhiều Layer khác , tất nhiên khi đó biến hệ thống tổng thể GRIPOBJLIMIT trong Option mặc định là 100 nên đưa lên mức cao hơn ( cao nhất là 32767)

    - Theo Bock : dùng để hiện các Block cùng tên trong bản vẽ hay trong vùng chọn với GRIP cho dễ quan sát , thêm lọc phát hiện các Block có Scale mà scale theo 3 trục xyz không giống nhau

     

    Trên là 1 số công dụng LISP mà em mong muốn nhưng trình độ có hạn nên mong các bác Bach cùng các bác cao thủ lisper ra tay . Ý tưởng về công dụng trên có gì dở hơi xin các bác cứ phang luôn :D

    Xin cảm ơn rất nhiều


  16. Tôi tưởng bạn biết lisp nên viết cho bạn chỉ với màu 3 theo y/c của bạn để bạn tuỳ nghi sử dụng.

    Chỉ cần thêm 1 dòng code thì bạn có thể chọn 257 màu, chứ không phải viết 257 đoạn code đâu.

    Tôi sửa cho bạn trên link cũ rồi đó.

    Ôi , bác viết nhanh thế , em vừa ăn trưa xong đã có hàng rồi , cảm ơn cả 2 bác , em dùng cả 2 Lisp luôn

    Thưa bác là em đang tập tẹo viết LISP dựa theo những LIPS đã sưu tầm đc , ko hiểu hết bản chất nên em quan tâm tìm hiểu cái hàm ssget này để lọc đc các đối tượng cho 1 vài LISP định viết mà


  17. Cảm ơn bác Ha & bác Bach

    Lips của bác Hà rất hay nhưng chỉ có tác dụng cho màu 3 , Muốn có tác dụng cho 255 màu + màu 0 (ByBlock) +màu 256 (ByLayer) thì phải viết từng đó đoạn mã cho từng màu , tương ứng sẽ có từng đó lệnh tắt , Nhung ưu điểm LISP của bác hơn bác Bach là có thể nhập số mầu vào nếu có đủ 257 đoạn mã như trên tương ứng với từng mầu

     

    Lisp của bác Bach mới thực sự là tổng quát , cho tất cả các màu , nhưng nhược điểm & cũng là ưu điểm đó là chọn đối tượng có sãn trong bản vẽ để xác định màu cần lọc mà ko nhập số mầu vào như bác Ha . Ưu điểm là cũng chẳng cần quan tâm màu đó số mấy . Nhưng nhiều lúc tư duy vẽ đã xác đinh rõ là ISO của Cty thì là tường màu 4 , tim tường màu 1 .... thì việc nhập số màu từ bàn phím lại nhanh hơn . Hơn nữa nếu đối tượng ta chọn lại nằm trong Block thì màu của bộ lọc lúc đó lại theo màu của Block chứ chưa chắc đã theo màu đối tượng mà ta muốn chọn

    Bác Bach giúp em nốt 2 yêu cầu nàu đc ko ? LISP chọn theo màu SBC của bác mà em muốn có thêm chức năng nhập số màu từ bàn phím nữa , và tự động nhận biết đưa vào bộ lọc màu của đối tượng nằm trong Block nũa , được thêm 2 yêu cầu đó nữa thì quá hoàn hảo rồi bác ạ

    Cảm ơn các bác rất nhiều


  18. mình muốn chọn tất cả các đối tượng màu xanh(green) chẳng hạn, thì câu lệnh như thế nào vậy bạn?

     

     

    (sssetfirst nil (ssget "X" '((62 . 3)))) ko thấy hoạt động :(

     

    Câu lệnh như thế là đúng, sẽ chọn các đối tượng có màu chỉ định 3 (nhưng không chọn các đối tượng màu ByLayer mà Layer màu 3)

     

    Em cũng đang rất thắc mắc vấn đề này : Làm sao để viết 1 đoạn mã lọc ra đc các đối tượng có mầu là ByLayer mà các Layer chứa các đối tượng đó có chung 1 mầu nào đó , mầu 3 chẳng hạn ?

    Mong các bắc cao thủ viết dùm em LISP nè , cảm ơn nhiều nhiều


  19. Tue_NV viết gọn lại 1 tí :

     

    1./- Lọc thêm màu 4, và Linetype không phải Bylayer:

    (setq ss (ssget '((0 . "*LINE") (62 . 4) (6 . "~Bylayer") )))

    2./ Lọc loại trừ Dim và Hatch:

    (setq ss (ssget '((-4 . "<NOT") (0 . "HATCH,DIMENSION") (-4 . "NOT>"))))

    Hoặc:

    (setq ss (ssget '((0 . "~HATCH") (0 . "~DIMENSION"))))

     

    Bạn NTD đọc thêm trong Help về hàm WCMATCH

    Cách sử dụng Wild-card characters

     

     

    Cảm ơn các bác , các bác chỉ em toàn thứ cao siêu em chưa ngấm vào luôn đc có bác Tue_NV chỉ em mấy chiêu như sư dụng dấu ngã ~ để loại trừ chẳng hạn em thấy đoạn mã lọc ngắn gọn dễ hiểu hơn vì dấu ngã ~ ở đây có chức năng loại trừ y như dấu ngã khi dùng lệnh LAYWALK để loại trừ khỏi danh sách chọn các Layer

     

    Đây là cách hiểu của em các bác góp ý cho xem hiểu nhầm ko ? nếu thiếu xin các bác chỉ thêm cho

     

    * : Ký hiệu bất kỳ , bao nhiêu cũng đc , ko có cũng OK

    ~ : Nghịch đảo hay loại trừ các ký tự đứng sau nó

    @ : Đại diện cho 1 ký tự là chữ cái bất kỳ & chỉ 1 ký tự mà thôi

    # : Đại diện cho 1 ký tự là chữ số bất kỳ & chỉ 1 ký tụ mà thôi & chỉ 1 ký tự mà thôi

    dấu chấm . : Đại diện cho 1 ký tự trong các ký tự sau ~ ! @ # $ % & ( ) , bao nhiêu ký tự trong dãy ký tự này cũng đc


  20. Cảm ơn bác

    (0 . "*LINE,ARC") , chuẩn luôn thêm dấu phẩy thôi mà em ko biết ,

    Bác nào trả lòi đc câu hỏi khó thì giúp em với , em tập tọe chế Lisp theo mấy cái sẵn có nên ko nắm đc cái gốc cơ bản ---> đọc mấy cái cao siêu ngay ko hiểu ngay đc . Nhưng lại đang cần chế mấy cái Lisp ... cao siêu cho công việc hiện tại . Mục đích cuối cùng của em vẫn là giải quyết đc việc nhanh hơn hiệu quả hơn trong việc vẽ CAD = LISP mà thôi , Lập trình viết LISP em xin học theo các bác ... cho nó ngấm nhanh hơn :D


  21. em có 2 đoạn mã như sau :

     

    đoạn mã 1 là :

    ;;Chuc Nang : Chuyen đối tượng đc chọn vao` 1 lop- Lenh T``

    (Defun C:T`` ( ) (princ "\nChuyen Line & PolyLine & SpLine & Mline vao` 1 Layer Tuong-Gach-NetCat:")

    (Setq lis (Ssget '((0 . "*"))))

    (command ".Chprop" "p" "" "La" "Tuong-Gach-NetCat" "c" "Bylayer" "")

    (princ))

     

    đoạn mã 2 là :

    ;;Chuc Nang : Chuyen Line & PolyLine & SpLine & Mline vao` 1 lop- Lenh T`

    (Defun C:T` ( ) (princ "\nChuyen Line & PolyLine & SpLine & Mline vao` 1 Layer Tuong-Gach-NetCat:")

    (Setq lis (Ssget '((0 . "*Line"))))

    (command ".Chprop" "p" "" "La" "Tuong-Gach-NetCat" "c" "Bylayer" "")

    (princ))

     

    - Em đã dùng đấu * để chọn tất cả

    - Em đã dùng dấu * đứng trước Line để lọc được tất cả các đối tượng Line & PolyLine & SpLine & Mline . Vấn đề là em muốn thêm cả đối tượng arc vào trong 1 lệnh chọn cả arc cả *Line( các đối tượng có chữ Line ) thì phải làm sao (ko muốn viết thêm 1 lệnh nữa cho arc , vì như vậy mất time thao tác ) , các bác giúp em với

    - Câu hỏi lớn hơn 1 chút nữa là em muốn lọc nhiều đối tượng với nhiều tính chất trong 1 lệnh thì làm sao ? VD :chức năng y như đoạn mã 2 nhưng lọc thêm các đối tượng có mầu 4 và Linetype không phải là Bylayer

    - Lọc kiểu loại trừ thì sao ? VD : Chỉ chọn đối tượng ko phải là Hatch và Dim

     

    Các bác đừng bảo em dùng lệnh Filter nhé , em muốn lọc trong 1 đoạn mã LSP để viết lệnh riêng

    Cảm ơn mọi góp ý của các bác

×