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.  

    http://www.cadviet.com/upfiles/5/149803_ghicdkc.lsp

     

    Đây. bác giúp e với!

    (defun C:gcl ()
    (setq os (getvar "osmode"))
    (setvar "osmode" 163)
    (prompt"\nHay scale ban ve theo ti le 1:1;")
    (prompt"\nChon diem co cao do tren ban ve:")
    (setq d (getpoint))
    (setq dy (cadr d))
    (setq dx (car d))
    (prompt"\nNhap cao do diem vua pick(m):")
    (setq c (getreal))
    (setq i 1)
    (prompt"\nDien gia tri ben trai:")
    (while (= i 1)
    (setvar "osmode" 163)
    (prompt"\nChon diem can ghi tren ban ve:")
    (setq g (getpoint))
    (if (= g nill) (setq i 0)
    (progn
    (setq gy (cadr g))
    (setq gx (car g))
    (setq cdo (+ c (- gy dy)))
    (setq kc (abs (- gx dx)))
    (setq gc (list (- gx 0.1) gy))
    (setq gkc (list (+ gx 0.3) (+ gy 0.01)))
    (command "layer" "N" "ghic" "C" "green" "ghic" "")
    (command "style" "chu" "TXT.shx" "" "" "" "" "" "")
    (setvar "osmode" 0)
    (command "layer" "S" "ghic" "")
    (command "style" "chu" "" "" "" "" "" "" "")
    (setq cdo (rtos cdo 2 2))
    (setq kc (rtos kc 2 2))
    (command "text" "j" "br" gc "0.1" "0" cdo)
    (command "text" "j" "bl" gkc "0.1" "0" kc)
    )
    )
    )
    (prompt"\nDien gia tri ben phai:")
    (setq i 1)
    (while (= i 1)
    (setvar "osmode" 163)
    (prompt"\nChon diem can ghi tren ban ve:")
    (setq g (getpoint))
    (if (= g nill) (setq i 0)
    (progn
    (setq gy (cadr g))
    (setq gx (car g))
    (setq cdo (+ c (- gy dy)))
    (setq kc (abs (- gx dx)))
    (setq gc (list (+ gx 0.1) gy))
    (setq gkc (list (- gx 0.3) (+ gy 0.01)))
    (command "layer" "N" "ghic" "C" "green" "ghic" "")
    (command "style" "chu" "TXT.shx" "" "" "" "" "" "")
    (setvar "osmode" 0)
    (command "layer" "S" "ghic" "")
    (command "style" "chu" "" "" "" "" "" "" "")
    (setq cdo (rtos cdo 2 2))
    (setq kc (rtos kc 2 2))
    (command "text" "j" "bl" gc "0.1" "0" cdo)
    (command "text" "j" "bl" gkc "0.1" "0" kc)
    )
    )
    )
    (prompt"\nDien gia tri cao do tai tim:")
    (setq i 1)
    (while (= i 1)
    (setvar "osmode" 163)
    (prompt"\nChon diem can ghi tren ban ve:")
    (setq g (getpoint))
     
    (if (= g nill) (setq i 0)
    (progn
    (setq gy (cadr g))
    (setq gx (car g))
    (setq cdo (+ c (- gy dy)))
    (setq kc (abs (- gx dx)))
    (setq gc (list (+ gx 0.07) gy))
    (command "layer" "N" "ghic" "C" "green" "ghic" "")
    (command "style" "chu" "TXT.shx" "" "" "" "" "" "")
    (setvar "osmode" 0)
    (command "layer" "S" "ghic" "")
    (command "style" "chu" "" "" "" "" "" "" "")
    (setq cdo (rtos cdo 2 2))
    ;(setq kc (rtos kc 2 2))
    (command "text" "j" "bl" gc "0.1" "0" cdo)
    ;(command "text" "j" "bl" gkc "0.1" "0" kc)
    )
    )
    )
    (prompt"\nDien ten lop:")
    (setq i 1)
    (setq j (getint "Nhap lop so ???"))
    (while (= i 1)
    (setvar "osmode" 163)
    (prompt"\nChon diem can ghi Ten lop:")
    (setq g (getpoint))
    (if (= g nill) (setq i 0)
    (progn
    (setq gy (cadr g))
    (setq gx (car g))
    ;(setq cdo (+ c (- gy dy)))
    ;(setq kc (abs (- gx dx)))
    (setq gc (list (+ gx 1) (+ gy 0.03)))
    (setq gc1 (list (+ gx 1.05) (+ gy 0.03)))
    (command "layer" "N" "ghic" "C" "green" "ghic" "")
    (command "style" "chu" "TXT.shx" "" "" "" "" "" "")
    (setvar "osmode" 0)
    (command "layer" "S" "ghic" "")
    (command "style" "chu" "" "" "" "" "" "" "")
    ;(setq cdo (rtos cdo 2 2))
    ;(setq kc (rtos kc 2 2))
     
    (command "text" "j" "br" gc "0.1" "0" "L")
    (command "text" "j" "bl" gc1 "0.1" "0" j)
    (setq j (+ j 1))
    )
    )
    )
    (command "layer" "S" "0" "")
    (setvar "osmode" os)
    )

     

    Hề hề hề,

    Hãy thử thay tất cả các hàm (rtos .... 2 2) thành (rtos .... 2 5) coi sao nhé.


  2. bạn có thể chỉ mình cụ thể ở bước nhập cao độ cho đuờng đồng mức không, tuy là có số cao độ nhưng kiểm tra bằng lệnh mo thì tất cả cao độ đều bằng 0, mình hoang mang quá, những bước còn lại như kẻ tuyến tạo tim đường thì mình rành hết rồi ............help

    Hề hề hề,

    Như bác huunhantvxdts đã nói, việc nhập cao độ cho các đường đồng mức bạn sẽ phải làm tay, dựa trên các đường đồng mức đã có ghi cao độ sẵn và bước nhảy cao độ giữa các đường đồng mức. Việc này đòi hỏi bạn phải thận trọng vì nếu nhập nhầm sẽ gây khó khăn cho công việc tiếp theo. Thực chất bản vẽ của bạn chỉ là mặt bằng của các đường đồng mức chư không phải đường đồng mức thực tế. Do vậy khi bạn kiểm tra sẽ thấy tất cả đều có cao độ là 0.


  3. Thân chào anh em ! chúc mọi người năm mới nhiều may mắn! :)

     

    Nhờ anh em viết dùm mình lisp chia hình chữ nhật bất kỳ bằng các đường thẳng (màu xanh) số lượng bất kì như hình vẽ, cám ơn mọi người đã quan tâm .

     

    Trân trọng

     

     

    149809_untitled.png

    Hề hề hề, 

    hãy gửi bản vẽ lên nhé, Bản vẽ chớ không phải hình ảnh vì bản vẽ mới biết được các dạng HCN của bạn ra sao.

    • Vote tăng 1

  4. Hiện tại mình đang làm đồ án thiết kế đường thầy có giao cho 1 file bình đồ đã được số hoá nhưng không hiện cao độ, mình đang sử dụng Nova 2004 chạy trên CAD 2005, mình đã làm nhiều cách nhưng vẫn không hiện được cao độ

    MONG MỌI NGƯỜI GIÚP ĐỠ

    http://www.cadviet.com/upfiles/5/149808_bd_1.dwg

    Hề hề hề

    Bản vẽ bạn gửi là bản vẽ mặt bằng của địa hình, tất cả các đường đồng mức trên đó đều có cao độ là 0 cả . Chỉ có điều các đường đồng mức này có ghi các giá trị cao độ của đường đồng mức trên đó. Các đường đồng mức này có độ chênh cao độ giữa hai đường lỉền kề là 5m. Như vậy theo mình hiểu là bạn phải nội suy ra cao độ tại các vị trí được đánh dấu dựa trên các đường đồng mức này. Sau đó từ các vị trí đánh dấu này bạn sẽ phải tạo một polyline thể hiện tim tuyến đường định mở . Từ tim tuyến này, dựa vào các giao điểm với các đường đồng mức với tim tuyến và các cao độ đã nội suy tại các vị trí không trùng đường đồng mức, bạn sẽ phải tạo ra  các mặt cắt dọc của tuyến.. Cũng từ tim tuyến bạn sẽ có hai đường giới hạn của mép đường cần mở và dựa vào hai đường này bạn sẽ có cao độ của các điểm bên hai mép đường, tương tự như tìm cao độ tim tuyến. Từ đó bạn sẽ phải xác định khối lượng đất đào và đắp để thành con đường có mặt cắt ngang theo thiết kế.

    Ấy là mình đoán mò cái nhiệm vụ của bạn như vậy. Trúng hay trật nhờ ...... bạn phán. Khối lượng công việc như vầy không hề nhẹ nếu như bạn không có đầy đủ cá công cụ hỗ trợ. Mình là dân ngoại đạo nên chỉ hóng hớt được chừng đó. Còn về chuyên môn chắc bạn đã được học khá nhiều các công cụ để làm rồi. Vậy bạn hãy từ từ tính tiếp theo từng bước của công việc bạn nhé. Bước đầu tiên có lẽ chính là việc nội suy cao độ đó.

    Chúc thành công. 

    • Vote tăng 1

  5. Có người nhờ mình yêu cầu như sau

    Có 3 điểm trong không gian, tìm góc nằm và góc đứng tạo bởi 3 điểm đó. Nói thật cái thuật ngữ này mình không hiểu, mà cái bạn nhờ mình thì giải thích không ra. Bác nào biết lisp mà rành bên khảo sát chắc biết vụ này. Cho mình xin cái hàm này được không? cám ơn!

    Hề hề hề,

    Đầu xuân , rách việc, ngồi đọc thậy yêu cầu của bác và dựa trên cái định nghĩa mà bác ndtnv cung cấp, mình việt đại cái lisp như sau để bác check lại xem bố cháu đã đồng ý chưa nhé. Trúng thì tốt mà không trúng lại càng tốt hơn. Mong phản hồi từ các bác.

     

    http://www.cadviet.com/upfiles/5/5194_timgoctracdia.lsp

     

    Kính chúc toàn thể anh em trên diễn đàn một năm mới phát triển và thành công.

     

     

    (defun  c:gtrd (/ p1 p2 p3 d1 d2 h1 h2 a1 a2 gb gd1 gd2)
    (setq p1 (getpoint "\n Chon diem 3D goc")
              p2 (getpoint  p1 "\n Chon diem 3D thu hai")
              p3 (getpoint p1 "\n Chon diem 3D thu ba")
              d1 (distance p1 p2)
              d2 (distance p1 p3)
              h1 (- (caddr p2) (caddr p1))
              h2 (- (caddr p3) (caddr p1))
              a1 (angle (list (car p1) (cadr p1)) (list (car p2) (cadr p2)) )
              a2 (angle (list (car p1) (cadr p1)) (list (car p3) (cadr p3)) )
              gb (- a2 a1)
              gd1 (atan (/ (/ h1 d1) (sqrt (- 1 (/ (* h1 h1) (* d1 d1))))))
              gd2 (atan (/ (/ h2 d2) (sqrt (- 1 (/ (* h2 h2) (* d2 d2))))))
              kq (list gb gd1 gd2)
    )
    kq
    )
    
    • Vote tăng 1

  6. Hàm đổi từ decimal => dms

    (list (fix d) (fix (rem (* d 60) 60)) (rem (* d 3600) 60))

    Bạn tự chuyển qua dạng string, nếu d<0 dùng abs cho m & s

    Nếu làm tròn s thêm if

     

     

    Chắc bố muốn nói về góc bằng và góc đứng trong trắc địa

    http://muce.edu.vn/fckeditor/editor/filemanager/connectors/asp/image/chuong3.pdf

    Hề hề hề,

    Cứ theo cái định nghĩa này thì muốn xác định góc bằng và góc đứng, còn phải xét điểm nào là diểm gốc trong 3 điểm đã cho mới ổn......


  7. Mọi người ơi cho mình hỏi làm sau để tìm giao điểm của môt đường và một mặt trong solidwork vậy. mình đang tự học SW

    114853_aadaff.png

    Hề hề hề,

    Sw chỉ là 1 công cụ để thực hiện ý định của bạn chứ không phải nó là công cụ vạn năng. Do vậy để tìm được giao điểm của một đường với một mặt phẳng bất kỳ, bạn cần nắm rõ các nguyên tắc dựng skecht của sw, đồng thời bạn phải hiểu rõ các phương pháp tìm giao điểm của một đường với một mặt phẳng trong hình học không gian và trong môn hình học họa hình. Từ đó tùy vào điều kiện cụ thể của đường và mặt phẳng bạn có để tiến hành dựng các đường hay mặt phụ trợ và cuối cùng mới là xác định giao điểm..

    Tỷ như với hình bạn đưa ra, bạn cần xác định được mặt phẳng chứa đường tròn, từ đó xác định giao tuyến của mặt phẳng đó và mặt phẳng plane1. Cuối cùng là tìm giao điểm của giao tuyến này và vòng tròn.

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


  8. Chào cadviet.com!

    Nhân dip đầu năm mới, cho tôi gửi lời chúc sức khỏe và thành công đến gia đình các thành viên ngôi nhà cadviet.com.

    Tôi có môt xíu khó khăn vơi Attribute text.

    Đối với text thì tôi đã có thể copy nôi dung của text này cho các text còn lai, song với attribute text thì tôi chưa làm đươc. Để dễ hiểu tôi xin đính kèm ảnh.

    Xin cảm ơn!

    132006_01.png

    Hề hề hề,

    1/- Bạn chịu khó tìm kiếm, trên diễn đàn đã có lisp về vấn đề này rồi. Nếu chưa hoàn toàn trùng ý bạn thì hãy post lên để mọi người sửa.

    2/- Bạn phải post bản vẽ mẫu bao gồm cả text và block có chứa các thuộc tinh cần thay thế lên, dồng thời với bản vẽ thể hiện kết quả bạn mong muốn thì mọi người mới có thể giúp đúng theo ý bạn được. Việc trình bày vắn tắt như vậy có thể sẽ dẫn tới sự hiểu lầm và làm mất công người viết lisp vì nó cho kết quả không đúng ý của bạn.


  9. Chào các Bro.

     

    Mình có dữ liệu ban đầu là nhiều đoạn Line nối liền nhau (nhiều đoạn và dài lắm ạ) và các Point (các điểm này nằm tương đối gần Line). 

     

    Nhờ các Bro viết giúp Lsp để có được một đoạn Line mới đi từ điểm point và vuông góc với Line cũ gần nhất.

     

    Mình seach rồi mà không tìm thấy Lsp phù hợp. Mong các Bro giúp đỡ.

    Hề hề hề,

    Hãy gửi bản vẽ mẫu lên nhé.


  10. Hi, mình tự mài mò sửa nhưng bị vướng chổ điều kiện cho hàm if

     

    mọi người gúp mình thực hiện thêm  logicExpr của hàm if với, mình mới tìm hiểu autolisp nên ko rành lăm, ko biết điều kiện để xác định đối tượng là arc phải viết thế nào

     

     

    (setq taphop(ssget '((0 . "ARC,LINE,POLYLINE,LWPOLYLINE"))))

    ;=======================

    ;start if

    ;if taphop is arc

     

    (if ..........................

    ; moi người giúp mình logicExpr chổ này để xác định đối tượng taphop là arc

     

      (command ".pedit" "M" taphop "" "" "")

     

      (princ "\n Object Arc converted to Polyline, Please select this object again")

     

      (setq taphop(ssget '((0 . "ARC,LINE,POLYLINE,LWPOLYLINE"))))

     

    ;if taphop is not arc => don't do anything

     

    ) ;end if

     

    ;=======================

    Hề hề hề,

    Cứ theo cái logic của bạn là : ;if taphop is not arc => don't do anything

    thì sao phải khổ vậy?????

    Chỉ dơn giản là hãy chọn tập hợp chỉ bao gồm các arc là xong. Vậy thì chỉ cần  (setq taphop(ssget '((0 . "ARC"))))

    • Vote tăng 1

  11. chào các bạn,

    mình đang học mastercam x6, nhưng do tình hình công việc cần gấp nên ko có thời gian tìm tài liệu nghiên cứu. công việc của mình dùng mastercam rất đơn giản là lập trình cho máy cắt dây. mình vẽ autocad cũng tương đối. cái mình cần là chuyển file từ cad sang mastercam rồi lập trình. nhưng mình tìm tài liệu trên mạng ko dc. mình đã thử đổi đuôi cad qua các dạng khác nhau nhưng khi mở bên mc thì ko có bản vẽ. mình nghe nói có cách này nhưng thử cũng ko dc: trong file cad nhấp phải chuột vào mc trong mc vào file vào mục file merge/ rồi vào phần chương trình trong ổ C chọn mục nào đó là dc. nhưng mình mò hoài ko dc. mình dang dung autocad 2007 và mastercam X6. bạn nào biết chỉ giúp mình với nha. cảm ơn nhiều lắm luôn đó. có dịp xuống củ chi mình mời cafe nha. để mình nhận dc tin sớm mong bạn nào biết gửi vào mail này nha: tieuthem.107@gmail.com

    Hề hề hề,

    Theo cái mình biết thì việc chuyển trực tiếp từ file Cad *.dwg sang master cam là hơi khó, nhất là với đời CAd thấp. Vì vậy bạn nên sử dụng sw hay inventor để dựng hình lại từ Cad rồi chuyển sang Master Cam sẽ thuận lợi hơn nhiều.


  12. có file ko cho mình xin đi, chứ chưa học 3d sao vẽ đây :)

    Hề hề hề,

    Vẽ giùm chắc là chả ai muốn vẽ đâu. Còn gợi ý để bạn vẽ thì bác sgcq đã làm rồi đó. Bạn hãy xem cái hình của bác ấy rồi tìm thử xem trúng trật ra sao, có gì thắc mắc thì hỏi lại. Sau đó bạn phải tự vẽ thôi chớ mong chi người vẽ giùm.

    Mọi người chỉ có thể giúp bạn học chớ không học hộ bạn được. Bạn muốn học cho ra trò thì phải hành chớ sao có thể nhờ học hộ được. Bạn đã mất tiền để mua kiến thức mà không chịu hành thì bạn định xài đồ dỏm à????


  13.  

    Kính nhờ MOD sửa giúp với ạ : Em thấy Lisp "udt" của bác Tue_NV chỉnh lại sử dụng rất tốt. 

    MOD Phạm Thanh Bình đã chỉnh sửa theo bạn ( V77 ) rồi nhưng khi sử dụng nó bị thế này ạ : 

     Command: udt

     Kich thuoc cua chuong trinh tinh theo don vi mm
     Nhap ti le chuyen doi don vi <0.001> :
     Nhap So chu so thap phan <2> :
     Chon doi tuong de tinh dien tich hay Enter de tinh dien tich theo Pick diem
    Select objects: 1 found
    Select objects:
    ; error: no function definition: SS2ENT
    Command:
    * Nhờ MOD chỉnh sửa lại giúp với ạ
    - Theo ý kiến của em MOD có thể bổ sung thêm là : Sau khi có kết quả thì Pick điểm để ghi kết quả ra. Kết quả ra có thể là Text hiện hành hoặc theo Dim hiện hành hoặc trong ô giống khi sử dụng lênh TOLERANCE.
    Em xin chân thành cảm ơn.!!!
    P/S: Em gửi kèm theo file của MOD Bình sửa ạ.http://www.cadviet.com/upfiles/5/149353_udt.lsp

     

    Hề hề hề,

    Bạn phải post cả cái lisp và bản vẽ chạy bị lỗi lên mới có thể biết mà sửa chứ.

    • Vote tăng 1

  14. ý em là ý nghĩa của mối lắp ghép ý ạ ? sao lại không chọn kiểu lắp khác ạ

    Hề hề hề,

    Kiểu lắp được chọn theo yêu cầu làm việc của chi tiết. Do đó nếu chọn kiểu lắp không đúng thì sẽ dẫn tới việc chi tiết làm việc không tốt và ảnh hưởng tới chất lượng làm việc của chi tiết.

    Với câu hỏi của bạn trước hết bạn cần hiểu yêu cầu làm việc của chi tiết, cần hiểu rõ mục đích việc cần phải có chi tiết đó. Từ đó mà quyết định chọn kiểu lắp.H7/g6 chỉ là một kiểu thông dụng chứ không phải là kiểu bắt buộc. Vấn đề là bạn hiểu vì sao bạn chọn chứ không phải là việc chọn cụ thể một kiểu lắp nào đó. Bạn chọn kiểu lắp chi cũng được nhưng bạn phải lý giải được vì sao bạn chọn nó. Bạn có thể chọn sai do thiếu kinh nghiệm hay do nhầm lẫn, nhưng việc bạn không lý giải được vì sao bạn chọn sẽ làm bạn mất giá hơn là bản thân cái việc chọn sai.

    • Vote tăng 1

  15. Không mở được file khi đã chuyển text thành cao độ ý bác. Em làm lại thì đã mở được nhưng không thể mô hình địa hình được ạ. Bác giúp em với!!!!

    Ví dụ file này http://www.cadviet.com/upfiles/5/119084_binh_do_ho_2.dwg của em không vẽ được lưới tám giác và đường đồng mức ạ.

    Hề hề hề,

    Bạn cho hỏi rằng cái text cao độ của bạn thể hiện cao độ theo đơn vị là m hay là mm?

    Nếu là mm thì bạn có thể dùng lisp sau đây để chèn một point vào điểm đặt của text với cao độ là giá trị của text và trả về một list các point này. Từ đó bạn muốn làm chi với nó thì tùy nhé.

    http://www.cadviet.com/upfiles/5/5194_chendiem.lsp

     

    (defun c:gpad  ( / sslt pls cd pd p )
    (vl-load-com)
    (setq sslt (acet-ss-to-list (ssget (list (cons 0 "text") (cons 8 "docaoct")))))
    (setq pls (list))
    (foreach tp sslt
           (setq cd (atof (cdr (assoc 1 (entget tp))))
                     pd (cdr (assoc 10 (entget tp)))
                     p (list (car pd) (cadr pd) cd)  )
          (command "point" p )
          (setq pls (append pls (list p)))
    )
    )
    

  16. Đây là bài toán về số Kaprekar

    Bạn tham khảo:

    (defun chua ( a / b b1 b2 b3 b4  )
    ;;;;;(setq i 0)
    (if (not (equal a 6174 0.1))
      (progn
      (setq  ;;;;;a (getint "\n Nhap so co 4 chu so: ")
                b (itoa a)
                b1 (+ (atoi (substr b 1 1)) 0.1)
                b2 (+ (atoi (substr b 2 1)) 0.2)
                b3 (+ (atoi (substr b 3 1)) 0.3)
                b4 (+ (atoi (substr b 4 1)) 0.4)
                bls1 (vl-sort (list b1 b2 b3 b4) '(lambda (x y) (>= x y)))
                bls2 (vl-sort (list b1 b2 b3 b4) '(lambda (x y) (<= x y)))
                bmax (atoi (strcat (itoa (fix (nth 0 bls1))) (itoa (fix (nth 1 bls1))) (itoa (fix (nth 2 bls1))) (itoa (fix (nth 3 bls1)))))
                bmin (atoi (strcat (itoa (fix (nth 0 bls2))) (itoa (fix (nth 1 bls2))) (itoa (fix (nth 2 bls2))) (itoa (fix (nth 3 bls2)))))
                a (- bmax bmin)   )
      (setq i (1+ i))
      
      (if (>= a 1000)
          (progn
                (setq a (chua a))
               
          )
          (progn
                (if (>= a 100)
                    (setq a (* a 10))
                    (setq a (* a 100))
                )
                (setq a (chua a))
               
          )
      )
      ;)
     
    ))
    a
    )
    

    Code còn dài dòng nhiều chỗ VD:

    - Đổi số <-> string chậm hơn dùng rem nhiều lần

    - b1, b2, b3, b4 không cần thiết phải là số thực

    - bls2 là reverse của bls1 nên không cần tính

    - bmax = 1000*(nth 0 bls1) + 100*(nth 1 bls1) +.....

      có thể dùng mapcar cho gọn hơn

    Hề hề hề,

    Cảm ơn sự chỉ dẫn của bác ndtnv.

    1/- Về việc tách các chữ số, mình quên cái hàm (rem ....) nên mới dùng cái cách lẩm cẩm như vậy.

    2/- Về các biến b1 b2 b3 b4 sở dĩ mình cho nó thành các số thực như vậy để tránh trường hợp có các giá trị nguyên trùng nhau. (Khi đó hàm (vl-sort ...) sẽ luôn trả về đủ 4 giá trị )

    3/- Đúng là không cần tới biến bls2


  17. 1/ (setq ed (entget (car (entsel "\nChon cao do tim: "))))

          (setq cdd (atof (cdr(assoc 1 (entget(car(entsel "\n Pick chon Text cao do dau :")))))))

    cho hỏi 2 câu lệnh này khác nhau như thế nào. không hiểu sao những lisp mình tải về xem thì đến bước chọn text cao độ ở câu lệnh 1 cho kết quả toàn bằng 0 hay trật lất còn câu 2 thì đúng. 

    2/ file cdx.lsp mình tải về xài toàn cho kết quả bằng 0 . các bác chỉ dùm...

    Hề hề hề,

    1/- (setq ed (entget (car (entsel "\n Chon cao do tim)))) trả về kết quả là một danh sách chứa các mã dxf của đối tượng text được chọn.

         (setq cdd (atof (cdr (assoc 1 (entget (car (entsel "\n Pick chon text cao do"))))))) trả về giá trị số của text cao độ được chọn

    2/- Việc sử dụng 2 code này ở đâu và ra sao tùy vào ý định của người viết lisp hay người dùng lisp . Không thể thay thề cái nọ bằng cái kia được.

    3/- bạn sử dụng lisp nào và với bản vẽ nào mà thấy không đúng thì phải gửi cả hai cái đó lên mới có thể tìm được lỗi. Hỏi như bạn là đánh đố mọi người vì họ chẳng biết bạn dùng lisp nào và với bản vẽ nào cả.

    4/- Lisp không phải là công cụ vạn năng có thể dùng cho mọi bản vẽ bạn có mà nó chỉ có thể dùng với những bản vẽ thỏa mãn điều kiện sử dụng nó do người viết lisp xác định mà thôi. Muốn sử dụng tốt lisp thì người dùng phải có những kiến thức tối thiểu về lisp để có thể đọc và hiểu nội dung của nó và hiểu được nó dùng cho việc gì, trong môi trường bản vẽ nào bạn ạ.

    • Vote tăng 1
×