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

phamthanhbinh

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

    5864
  • Đã tham gia

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

  • Ngày trúng

    184

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


  1. Cảm ơn bác rất nhiều.bác có thể ghi chú từng dòng trong lisp giúp e xem nó có ý nghĩa ntn đc ko?e đang mày mò về lisp,nên muốn hiểu mấy cái thực tế như thế này.hì

    Hề hề hề,

    Bạn có thể tham khảo cái này chăng;

     

    http://www.cadviet.com/upfiles/6/5194_updateattribute.lsp

     

    (defun c:upat (/ elst e a als) 
    (setq elst (acet-ss-to-list (ssget (list (cons 0 "insert") (cons 2 "haba"))))) ;;;; Lấy danh sách tên các block có tên HABA
    (foreach e elst                                                                                          ;;;; Duyệt qua danh sách này
        (setq a (entnext e) als (entget a))                                                        ;;;;; Lấy các đối tượng thuộc block
        (while (and a (/= (cdr (assoc 0 als)) "SEQEND"))
                (if (and (= (cdr (assoc 2 als)) "E") (/= (substr (cdr(assoc 1 als)) 1 1) "F") ) ;;;;; Chon thuộc tính cần xủ lý
                    (progn
                        (setq a nil)
                        ( cond 
                              ((< (atof (cdr (assoc 1 als))) 40) (setq als (subst (cons 1 "F07") (assoc 1 als) als)))
                              (( and (>= (atof (cdr (assoc 1 als))) 40) (< (atof (cdr (assoc 1 als))) 95)  ) (setq als (subst (cons 1 "F12") (assoc 1 als) als)))
                              (( and (>= (atof (cdr (assoc 1 als))) 95) (< (atof (cdr (assoc 1 als))) 150) ) (setq als (subst (cons 1 "F18") (assoc 1 als) als)))
                              (( and (>= (atof (cdr (assoc 1 als))) 150) (< (atof (cdr (assoc 1 als))) 200) ) (setq als (subst (cons 1 "F23") (assoc 1 als) als)))
                              (T nil)
                        )
                     )
                     (progn 
                         (setq a (entnext a) )
                         (setq als (entget a))
                     )
                 )
           )
           (entmod als) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Cập nhật thuộc tính đã xử lý
           (entupd e)    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Cập nhật block
    )
    )
    
    • Vote tăng 1

  2. Thấy cái phần mềm này chủ yếu dùng để mô phỏng . Ý mình hỏi có cách nào vẽ mô phỏng như vậy trong cad mà nhanh không ??? Nếu có lisp thì càng tốt . Thanks bác đã quan tâm

    Hề hề hề,

    Theo thiển ý của mình thì việc này không cần chi tới phần mềm hay lisp nào cả. Bạn cứ xài lệnh measure với block là OK xa lem, xem xem giống y chanh sự mô phỏng của bạn.


  3. https://www.youtube.com/watch?v=DbEuITh3JTw

    TẠI SAO GÓC LẠI BỊ ÂM, NÓ CHỈ LÀM TRÒN 2 SỐ LẺ, KO LÀM TRÒN 3 SỐ LẺ ĐƯỢC À? KC XIÊN CŨNG CHÍNH LÀ KC NGANG!!!

    THANKS

    Hề hề hề,

    Bác Duy782006, nói chuẩn đó.

    Bạn muốn nhờ viết lisp thì bạn phải gửi file gốc và file kết quả bạn cần lên. Nếu có thể được bạn thêm vài chục dòng giải thích rõ cái bạn hiểu về điều bạn cần để người làm lisp có thể đối chiếu và kiểm tra trong quá trình làm lisp. Như vậy may ra mới có được cái mà bạn mong muốn. Là thành viên của diễn đàn, mong bạn hãy xem kỹ các yêu cầu của diễn đàn về vấn đề này trước khi bạn có các yêu cầu riêng của mình.


  4. Chào các bác!

     

    Em đang viết một cái list, nhưng em muốn lấy các thông số của một đối tượng để gán vào biến thì phải làm thế nào ạ.

     

    Ví dụ:

                + Chiều dài đoạn thẳng, tọa độ End X, End Y,…

                + Chiều cao của text, màu của text,…

                + Hoặc với đối tượng phức hợp gồm nhiều đối tượng khác như viewport bên layout (gồm Pline và Veiwport): Em muốn lấy tỷ lệ scare của viewport thì phải làm thế nào ạ.

     

    Hóng thánh :3

    Cảm ơn các bác đã đọc bài viết của em.

    Dạ… Em xin hết ạ. :3

    Hề hề hề,

    Tham khảo mã DXF của các đối tượng trong help của CAD.


  5. Nhờ có bác Phamthanhbinh chỉ bảo và các bác trên diễn đàn hỗ trợ. Em cũng tạo cho mình 1 ít công cụ đủ dùng cho mình.

    P/s: Hum trước em vào SG, em mất số dth bác Bình nên không gọi cho bác được.

    Hề hề hề,

    Hổng sao cả, lần sau có vào thì cứ ới qua số điện thoại 0902918229 hoặc ới trên diễn đàn này cũng được mà. Vui là chính quýnh quáng là một chục ấy mà.

    • Vote tăng 1

  6. đúng là ăn gỏi anh ạ. Em nhiều khi khúc mắc 1 hàm, đc các anh gợi ý, tìm hiểu đọc mới vỡ ra chứ k ai chỉ 100% cho mình dc cả

    Hề hề hề,

    Muốn ăn gỏi thì dễ thôi mà. Bạn cứ đọc qua một lượt, nếu thấy hiểu hết là Ok, Gặp cái chi chưa hiểu thì chỉ post nguyên một cái đó lên thôi. Mọi người sẽ giải đáp và khi bạn hiểu lại ăn tiếp khúc sau. Tuy chậm nhưng đỡ hóc bạn ạ. Các cụ day nhai kỹ no lâu là thế.....


  7.  

    Anh đi ...em nợ chất chồng

    Tiền lương.... em vẫn chờ trông từng ngày :( :(

    Anh đi xa cách tháng ngày

    Ruộng hoang em mướn người... cày được không??? :)  :)  :) 

     

    Hề hề hề,

    Anh đi anh mất chức chồng

    Tiền lương em lĩnh chả không tháng nào.

    Nơi xa anh có làm sao,

    Ruộng em vẫn chả ngày nào bỏ hoang......

    • Vote tăng 1

  8.  

    040811010450.jpg

     

    MÙA HOA ĐỎ CHO ANH

    Có những giọt nước mắt của mùa hè

    Rơi xuống nở thành chùm hoa phượng đỏ

    Để một chiều khi tiếng ve chạm ngõ

    Có một người thảng thốt, rưng rưng

    Điều gì trên môi sao cứ ngập ngừng?

    Để những nụ hôn rơi

    đỏ

    từng

    con phố

    Ai nỡ giận ai giữa mùa phượng nở?

    Để cháy lòng từng cánh hoa rơi

    Những yêu thương chúm chím gửi lên trời

    Rồi lặng lẽ cháy ngời mùa hoa đỏ

    Người con gái cũng yêu như thế đó

    Cũng cháy hết mình cho một tình yêu

    rồi cũng rơi trong gió một buổi chiều

    Để sáng mai, sẽ chẳng còn hoa đỏ

    ...

    Vì thế hôm nay khi tiếng ve chạm ngõ

    Có một người thảng thốt

    rưng

    rưng

    Thơ: Nguyễn Phan Quế Mai

     

    Hề hề hề,

    Hoa đỏ chả tặng cho ai

    Hoa đỏ em để cài tai một mình.

    Hoa đỏ trong giỏ rung rinh,

    Còn em chỉ thấy trong mình ..... dửng dưng

    Thản nhiên chẹt cánh hoa rơi,

    Mặc ai "thảng thốt" những  lời thẩn thơ.

    • Vote tăng 1

  9. Theo mình thì nếu bạn nào gần nhau có thể học offline vì dễ trao đổi hơn.

    Nhân tiện cho mình hỏi, mình đang muốn chỉnh số liệu theo kiểu parameter ( kiểu thay đổi một thông số thì tất cả các số kia sẽ đổi theo). Nhưng khi mình dùng lệnh define thì bản solid của mình không hiện ra mục nhập thông số theo phép tính mà chỉ là nhập số liệu đơn thuần. Bạn nào rành chỉ giúp mình với, xin cám ơn.

    Hề hề hề,

    Bạn có thể mở phần help của Solidwork trong mục solidwork tutorial có hướng dẫn bạn khá cụ thể. (bài vẽ cái bản lề) Cứ thực hành dần rồi sẽ quen thôi mà.

    • Vote tăng 1

  10. em chưa test :D. Tiện bác cho em trường hợp nhiều biến xem với

    Hề hề hề,

    Theo mình bạn có thể làm đơn giản là.

    1/- Đặt các biến: (setq b1 a1 b2 a2 .......)

     

    2/- Trong vòng lặp

     Đặt bến phụ: (setq an (gesting "Ban muon thay doi gia tri cac bien da có? < Y or N>"))

    đưa vào hàm điều kiện

    (if (= (strcase an) "Y")

       Lặp lại việc đặt biến (setq .....)

    )


  11. em theo ý tưởng bản thân đã lập lisp như sau:

    - có khuôn bao hình dầm, thép dầm

    - gõ lệnh lisp qq

    - Nhập tọa độ 2 điểm.... nhập chiều cao dầm

    - vòng lặp: nhập 2 điểm.... nhập chiều cao dầm

    - kết thúc enter

    13179067_1061434650546326_76187915834725

    (defun c:qq(/  cd pt1 pt2 kc kc1 kc2 d1 d2 d3 d4 d5 d6 d7 d8 d9 
    
    da)
      (setq luu (getvar "osmode"))
      (setq lay (getvar "clayer"))
    (SETQ TXT (GETVAR "DIMTXT"))
    (SETQ DC (GETVAR "DIMSCALE"))
    (setq C (* TXT DC))
    ;;;nhap du lieu
      (setvar "osmode" 111)
    ;(COMMAND "OSNAP" "END,INT,INS,NOD,CEN,MID,QUA,PERP")
      (COMMAND "LAYER" "M" "THEPDOC" "C" "1" "" "LW" "0.4" "" "")
      (vl-cmdf "clayer" "THEPDOC")
      (INITGET 7)
    (setvar "cmdecho" 1)
      (defun roundup (so)
        (* (atoi (rtos (/ so 50) 2 0)) 50))
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
       (while (setq pt1 (getpoint "nhap toa do diem dau duoi 
    
    dam:"))
        (setq pt2 (getpoint pt1 "nhap toa do diem cuoi duoi dam:"))
        (or	cd (setq cd 400))
    (setq cd (cond ((getdist (strcat"\nchieu cao dam <" (rtos cd 2 
    
    2) ">:"))) (cd)))
    (setq kc (distance pt1 pt2))
    (SETQ kc1 (- (roundup (/ (+ kc 220) 5)) 110))
    (SETQ kc2 (- (roundup (/ (+ kc 220) 3)) 110))
    (SETQ d1 (POLAR pt1 (/ pi 2) 50))
    (SETQ d2 (POLAR d1 0 kc1))
    (SETQ d3 (POLAR d2 (/ pi 6) 50))
    (SETQ d4 (POLAR d1 0 (- kc kc1)))
    (SETQ d5 (POLAR d4 (* 5 (/ pi 6)) 50))
    (SETQ da (POLAR pt1 (/ pi 2) (- cd 50)))
    (SETQ d6 (POLAR da 0 kc2))
    (SETQ d7 (POLAR d6 (* 7 (/ pi 6)) 50))
    (SETQ d8 (POLAR da 0 (- kc kc2)))
    (SETQ d9 (POLAR d8 (- 0 (/ pi 6)) 50))
    (SETQ pt (POLAR da (/ pi 2) (* 8 c)))
    (SETQ pd (POLAR d1 (* 3 (/ pi 2)) (* 8 c)))
      (setvar "osmode" 0)
    		(COMMAND "LINE" d2 d3 "")
    		(COMMAND "LINE" d4 d5 "")
    		(COMMAND "LINE" d6 d7 "")
    		(COMMAND "LINE" d8 d9 "")
    (COMMAND "dimlinear" da d6 pt)
    (COMMAND "DIMCONTINUE" d8 pt2 "" "")
    (COMMAND "dimlinear" d1 d2 pd)
    (COMMAND "DIMCONTINUE" d4 pt2 "" "")
    (setvar "osmode" 111)
    )
    ;;;;het vong lap
    (setvar "osmode" luu)
    (setvar "clayer" lay)
    		(princ)
    )
    

    - nhờ các bác chỉnh cho em chút làm sao để trong vòng lặp (hoặc ngay cả ban đầu) không hiển thị nhập chiều cao dầm mà chỉ cần pick 2 điểm. cao dầm mặc định là 400, khi gõ lệnh thì khi hiển thị dòng pick điếm 1,2 có gợi ý :(Caodam), nhấn C để thay đổi cao dầm, ko nhấn thì bỏ qua thì nhấn 2 điểm bình thường. Phần này hơi khó, mình chưa lập được :D

    Hề hề hề,

    Bạn cần coi lại cú pháp của các hàm. Tỷ như hàm 

    (getdist ("\nchieu cao dam <" (rtos cd 2 2) ">:")) là sai nặng đó. làm sao lisp chạy được.

    Phải hiểu rõ cú pháp từng hàm rồi mới ứng dụng được.

    Yêu cầu của bạn không phải quá khó. chỉ cần thêm một biến phụ yes or no trước khi nhập biến chiều cao dầm là được. 

    • Vote tăng 2

  12. :D :D :D

    Bản quyền thì 2 lúa không có để bán bác Bình ạ. Vì nó ... free. Nghe đồn nó sẽ tính phí khi xuất file, mà đoạn đó thì 2 lúa chưa nghiên cứu tới. Link đây:

     

    Ah, phải bấm share mới thấy link, share ở CV luôn phải tốn thêm một bước. 

    http://www.sensopia.com/english/index.html

    :D :D :D

    Hề hề hề,

    Cám ơn bác Hai cho quà. Song để xài được lại phải sắm con Iphone hay Ipad chi đó thì thực là khó quá. Để em phải lừa xin tiền vợ đã mới được..... hề hề hề...


  13. :D :D :D

     

    Do hầu hết các kỹ năng cửa 2 lúa là ở trình thấp, khoảng 1/2 của bạn. Tuy vậy, các thông số của 2 lúa thì tương đối rõ ràng nên dù bạn không biết trình của bạn ở đâu, vẫn dễ dàng chia 2 để biết trình của 2 lúa. Lấy ví dụ:

    - Vẽ ghi thì 2 lúa làm được 1/2, tức làm phần vẽ, phần ghi thì không biết.

    - Lúc vẽ thì cũng không rành, nên mới mượn kiến thức đồ họa để vẽ.

    - Đồ họa thì 2 lúa cũng không rành, bạn cứ chia 2  là ra. Phần họa thì 2 lúa không biết, còn phần ... đồ. Tức là tới hiện trường, chụp lại rồi ngồi đố -> ra sản phầm. (Xem video đoạn 3:20)

    - Ví dụ thì nhiều lắm, chỉ kể vài cái như trên thôi. Mấy cái khác bạn tự suy ra. Nếu bạn nào năm ngoái có đọc phần parametric của 2 lúa sẽ hiểu rõ hơn, do không biết cầm thước & compa mà ra đấy bạn.

    - Thôi, dài dòng chi, mời bạn xem video vẽ ... ghi!

    :D :D :D

    Hề hề hề.

    Bác Hai có bán bản quyền cái cần câu nè không vậy. Nếu có xin bác để phần cho một suất ưu tiên để em về kiếm cơm nuôi bồ nhí ạ......


  14. 20160315094514-bo-anh-co-lang-y-mac-ao-y

    20160315094514-bo-anh-co-lang-y-mac-ao-y

     

    Khi Thành viên Hội Hai Lúa làm THẦY LANG - LƯƠNG Y NHƯ TỪ MẪU

    Nguồn: http://vietnamnet.vn/vn/doi-song/gioi-tre/294133/co-gai-tre-mac-ao-yem-trong-suot-chup-anh-gay-phan-cam.html

    Hề hề hề,

    Thầy lang mào cũng như thế này thì toàn dân sẽ bị bệnh miết thôi...... Mong rằng hội Hai lúa sẽ có các thầy lang ...... chặt hơn


  15. Cái bình đồ của mình nó khoảng cách chênh cao là 5, các bác thử kiểm tra cao độ bằng lệnh list  hay properties-->elevation cũng được rõ ràng là có cao độ rồi mà vẫn không ra trắc dọc được .................akay thật.

    Hề hề hề,

    1/- Đã kiểm tra bản vẽ bạn mới gửi lên thì đúng là đã có cao độ cho các đường đồng mức.

    2/- Việc bạn chạy no va không ra được trắc dọc có lẽ do no va không hiểu ý bạn chăng??? Mình không phải dân giao thông hay trắc địa nên đoán mò rằng do cái đường tim tuyến của bạn là polyline 2D có cao độ bằng 0 nên không tìm ra giao điểm với các polyline đồng mức có cao độ khác 0.(vì chúng không thể cắt nhau bạn ạ). Do vậy mình nghĩ rằng cần phải có bước nội suy cao độ của các đỉnh polyline tim tuyến theo bình đồ này.Có được các cao độ này thì việc vẽ mặt cắt dọc chả khó chi. Nếu biết nguyên tắc nội suy của bạn , mình có thể giúp bạn vẽ được mặt cắt dọc này bằng lisp. Còn nova thì mình mù tịt.


  16. @bác Bình: DNDM là thao tác nhập cao độ cho đường đồng mức trong Nova rồi đó bác !

     

    @thuongtran: Có thể do lỗi phần mềm hay gì gì đó mà bạn vẫn chưa thể DNDM thành công.

    Mình gửi bạn đoạn quick code để bạn định nghĩa thủ công hàng loạt cho đỡ chán vậy:

    http://www.cadviet.com/upfiles/5/80156_dm.lsp

     

    Là quick code nên vẫn còn hạn chế (VD: Nếu bạn chọn 1 DDM thì lisp lỗi "; error: divide by zero" ...) ==> Khắc phục bằng cách nhập từ bảng Propeties cho trường hợp định nghĩa mỗi lần 1 đường ĐM ... :D :D :D

     

    >>> Chạy lisp để định nghĩa đường ĐM trước, xong vào nova chỉ cần LTG ...

     

    p/s: Mình đang bận nhưng thấy bạn vẫn còn vướng nên code đại, hy vọng giúp được bạn phần nào vậy !

    Hề hề hề.

    Lisp của bác Hieptr hình như còn thiếu hàm con (ham ........)


  17. phần DNDM mình đã khai báo xong nhưng khi enter thì trên bảng hiện lên thông báo No changeable object selected All selections have been undone 

    mình đã khai báo LTG như hướng dẫn rồi, nhưng kiểm tra CDTN thì cao đọ vẫn bằng 0. hic. mong mọi người giúp đỡ

    Hề hề hề,

    Bạn đã nhập cao độ cho các đường đồng mức như bác huunhantvxdts hướng dẫn chưa?????


  18. (defun c:h2 () 

    (setq oslast (getvar "OSMODE"))

    (setq lay (getvar "clayer"))

    (command "layer" "new" "9.Thai" "c" "9" "9.Thai" "")

    (command "layer" "S" "9.Thai" "")

    (command "osnap" "")

    (setq pt1 (getpoint "\nPick diem trong vung can Hatch : "))

    (while (/= pt1 nil)

    (setq vsize ( /(getvar "VIEWSIZE") 50 ))

    (command "bhatch" "p" "angle" vsize "0" "last" "")

    (setq pt1 (getpoint "\nPick diem trong vung can Hatch : "))

    (exit))

    (princ)

    (command(setvar "clayer" lay)) 

    (command "setvar" "OSMODE" oslast)

    )

     

    khi chay lsp này em bị những sau:

     

    1.

    Pick diem trong vung can Hatch :

    2D point or option keyword required.

    ; error: Function cancelled

     

    2. 2 dòng lệnh cuối không thiết lập về giá trị ban đầu???

     

    Các anh giúp em với ạ. em thanks trước.

    Hề hề hề,

    Bạn xem lại dòng lệnh  (command "bhatch" "p" "angle" vsize "0" "last" ""). Dòng này có cấu trúc không phù hợp với lệnh bhatch. Tham số "last" ở đây có ý nghĩa gì vậy???

    Do dòng lệnh này sai nên lisp không chạy hết và do vậy các dòng lệnh cuối không được thực thi bạn ạ. 


  19. 11837_fsa.png

     

    Nếu mặt cắt là đường cong , anh chủ thớt bắt buộc phải dùng cách của anh Hantinhsaycad

     

    Nếu mặt cắt của nó là bán kính r lượn, thì không cần  thiết phải dùng lệnh REV mà vẽ khối trụ mầu xanh rồi Fillet theo bán kính R lượn, sẽ được như ý

     

    P/S: anh chủ thớt đặt tên chủ đề không đúng với quy định của diễn đàn: http://www.cadviet.com/forum/topic/4-post-bai-len-dien-dan/

    Hề hề hề,

    Có thể dùng lệnh loft theo đường dẫn được mà.

×