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

phuong44e1

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

    49
  • Đã tham gia

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

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


  1. (COMMAND "LAYER" "M" (getstring "\nNhap ten layer: ") "C" "8" "" "L" "DASHDOT" "" "LW" "2" "" "")

    Mình đã làm được, nhưng nó bị mắc 1 cái là khi gõ dấu cách "Space" thì nó như là enter luôn rồi nên mình không viết tên layer cách ra được mà phải viết liền tù tỳ, dính hết vào nhau. Hehe

    Giúp mình với.

    Tks!


  2. Mình ít vẽ nhưng cũng nói luôn : nếu ai cố gắng quản lý 100 -> 500 layer, tất cả các bộ môn công trình trên cùng 1 bản vẽ thì đã làm 1 việc cực kỳ ngớ ngẩn (nói thật bạn đừng giận nha ^^)

    - Lisp bạn cần trên diễn đàn có hàng nghìn người viết được, nhưng để lên tới 1 con số lớn thế thì tốt nhất bạn dùng file mẫu là hay hơn ^^ Tốc độ load file mẫu chắc chắn nhanh hơn bạn ngồi dùng lisp tạo layer. Và bạn cũng nhớ thêm Layer Filter đôi khi là khởi nguồn của những bản vẽ ... nặng vô cớ

    Bạn Ketxu có thể chỉ mình cách nào để chữ KHUAT trong đoạn code sau được gõ trực tiếp ở dòng nhắc được không?

    (COMMAND "LAYER" "M" "KHUAT" "C" "9" "" "L" "HIDDEN" "" "")

    nó là layer name, nhưng mình muốn mỗi khi tạo layer thì nó sẽ hỏi mình là " Đặt tên cho layer". Khi đó mình sẽ gõ trực tếp tên vào như là: TUONG, NEN, TRAN... Vạy là nó sẽ có 1 layer mới với tên mới.

    Thanks!


  3. Để thêm độ dày nét vẽ bạn làm theo cấu trúc sau

    (COMMAND "LAYER" "M" "TIM" "C" "8" "" "L" "DASHDOT" "" "LW" "2" "" ""); độ dày nét vẽ 2.00 mm nhé bạn

    Làm thế nào để mình không phải tạo name layer trong này trước được không bạn? Như vậy mỗi lần tạo 1 layer mới sẽ phải sửa íp 1 lần. Làm sao để cái chữ "TIM" mình có thể gõ trực tiếp khi tạo layer?

  4. Việc này dùng lệnh Layer và Pline chắc nhanh hơn lisp đó bạn!

    Chào bạn Đoàn Văn Hà.

    Mình biết sử dụng hai lệnh này là rất đơn giản và nhanh. nhưng mình mong muốn được làm như vậy. Nếu được rất mong bạn giúp mình.

    Rất xin lỗi vì mình đăng bài vào chủ đề của bạn. Nhưng quả thực mình tìm cách đang bài mới mà không được. Hihi


  5. Chào các Pro.

    Nhờ các Pro giúp e chút nha, e muốn vẽ 1 polyline với thao tác như sau:

    Gọi lệnh PL1:

    ->Dòng nhắc sẽ báo mình đặt tên cho layer " Vui long dat ten cho layer" -> Name của layer sẽ được gõ trực tiếp vào trên dòng nhắc

    ->Sau khi đặt tên xong thì dòng nhắc sẽ yeu cầu chọn màu cho layer (sẽ hiện ra bảng màu cho mình chọn)

    ->Dòng nhắc sẽ báo chọn loại nét (sẽ hiện bảng ra cho mình chọn loại net liền hay đứt...)

    ->Layer này sẽ được set  thành layer  hiện hành

    ->Sau đó sẽ vẽ polyline như lệnh PL bình thường.

     

    Cảm ơn các Pro nhiều.


  6. Lại nhiều chuyện tí :D

    Bạn repeat xong, thoát repeat mới ... (command "text" ...) thì nó chỉ ghi cho thằng cuối cùng (giá trị cuối của repeat trả về) là đúng rồi :D :D :D

    Mình đã làm dc rồi. Cảm ơn bạn hiepttr rất rất nhiều nhé. Mình mất cả hai ngày để tìm nguyên nhân mà ko tài nào tìm dc. Đúng là học hành chưa đến nơi đến chốn. He he


  7. Chào bạn Ketxu,
    Mình cũng đang mày mò để viết mấy cái lisp cho công việc của mình nhưng nó bị mắc mà hai ngày rồi mình không tài nào hiêu nổi tại sao. Vấn đề của mình là thế này mong bạn Ketxu giúp đỡ mình nhé.
    Mình có bản vẽ và trên đó có nhiều Block và muốn là dùng 1 lệnh để chọn hết tất cả các block đó thì khi đó nó sẽ tự động ghi ra text (với nội dung là block name hoặc block attribute) nằm tại đúng vị của từng Block đó.
    Cụ thể trình tự thế này:
    Mình chọn (bằng quét qua cửa sổ ) 10 block bất kỳ khi đó tại vị trí của các Block đó sẽ được ghi ra 10 cái text
    Nội dung của các Text đó là 1 số thứ tự tăng dần kèm sau đó là nội dung của Block name hoặc block attribute.
     
    Mình cũng đã viết rồi nhưng không hiểu sao nó chỉ có thể ghi dc cho một block mặc dù mình chon nhiều Block. Mất nguyên hai ngày rồi mà vẫn ko thể tìm hiểu dc lý do của nó là gì, mong bạn Ketxu giúp mình nhé.
     
    Đây là code mà mình đã viết:


  8. Chào bạn Ket,

    Mình không hiểu chế độ bắt điểm mà bạn nói thì nó được gán bằng cách nào và có thể tham khảo trong tài liệu nào. Mình có đọ các tài liệu của bạn cũng như tham khảo 1 số tài liệu khác thì không có thấy cách gán chế độ bắt điểm thế nào.

     

    Như mình xem trên diễn đàn thì thấy mọi người viết thêm "non" trước p1, p2, p3 nhưng không hiểu tại sao lại viết vậy. và nếu đó là đặt chế độ bắt điểm thì bạn Ket vui lòng cho biết có thể tham khảo nó trong tài liệu nào.

     

    Cũng cùng vấn đề này mình thấy như lệnh (Command ".Text" "J" "mc"...) Mình không hiểu các biến j, mc, BC trong đó là gì và có thể tìm hiểu nó ở đâu.

     

    Rất mong bạn Ket giúp đỡ


  9. ; bai tap chuong 4-08 cua phuong44e1
    ; 2014-03-06
    
    ; bai tap 4-08a_Tao ham ve line qua 2 diem pt1, pt2. Su dung command
    
    (Defun veline (pt1 pt2)
          (setq pt1 (getpoint "\n Chon diem thu nhat:"))
          (setq pt2 (getpoint "\n Chon diem thu 2:"))
          (Command ".Line" pt1 pt2)
    )
    
    
    ;************************************************
      
    
    
    ; bai tap 4-08b_ Ve duong tron biet tam va duong kinh
    (Defun vedtron (pt d)
          (setq pt (getpoint "\n Chon diem lam tam duong tron:"))
          (setq d (getreal "\n Nhap gia tri duong kinh:"))
          (Command ".Circle" pt (* d 0.5))
    )
    
    
    ;************************************************
    
    ; bai tap 4-08c_ Ve tam giac deu biet toa do 1 dinh va chieu dai 1 canh
    (Defun vetgdeu (pt1 a pt2)
          (setq pt1 (getpoint "\n Chon toa do 1 dinh tam giac:"))
          (setq a (getdist "\n Nhap chieu dai 1 canh tam giac:"))
          (setq pt2 (Polar pt1 0 a))
          (Command ".Polygon" 3 "e" pt1 pt2) 
    )
    
    
    ;************************************************
    
    ; bai tap 4-08d_ Ve hinh chu nhat khi biet toa do hai goc cheo
    (Defun vehcn (pt1 pt2)
          (setq pt1 (getpoint "\n Chon diem thu nhat:"))
          (setq pt2 (getpoint "\n Chon diem doi xung:"))
          (Command ".rectang" pt1 pt2)
    )
    
    
    
    ;************************************************
    
    
     bai tap 4-08e_ Ve hinh vuong khi biet toa do 1 dinh va chi dai 1 canh
    (Defun vehv (pt1 l pt2)
          (setq pt1 (getpoint "\n Chon diem thu nhat:"))
          (setq l (getdist "\n Nhap gia tri canh goc vuong:"))
          (setq pt2 (Polar pt1 0 l))
          (Command ".Polygon" 4 "e" pt1 pt2)
    )
    
    
    ;************************************************
    
     bai tap 4-08f_ Ve elip khi biet toa do 3 dinh truc
    (Defun velip (pt1 pt2 pt3)
          (setq pt1 (getpoint "\n Chon diem thu nhat:"))
          (setq pt2 (getpoint "\n Chon diem thu hai:"))
          (setq pt3 (getpoint "\n Chon diem thu ba:"))
          (Command ".Ellipse" pt1 pt2 pt3)
    )
    
    
    
    ;************************************************
    
     bai tap 4-08g_ Ve cung tron di qua 3 diem
    (Defun vecungtron (pt1 pt2 pt3)
          (setq pt1 (getpoint "\n Chon diem thu nhat:"))
          (setq pt2 (getpoint "\n Chon diem thu hai:"))
          (setq pt3 (getpoint "\n Chon diem thu ba:"))
          (Command ".ARC" pt1 pt2 pt3)
    )
    
    
    
    ;************************************************
    
     bai tap 4-08h_ Xoa doi tuong duoc tao cuoi cung
    (Defun xoadtl ()
          (Command ".ERASE" "Last" ""))
    
    
    
    ;************************************************
    
     bai tap 4-08i_ Xoa nhom doi tuong duoc tao cuoi cung
    (Defun xoadtc ()
          (Command ".ERASE" "Previuos" ""))
    

    Gửi bạn Ketxu bài tập của bài 4-08


  10. ; bai tap cua phuong44e1
    ; 2014-02-28
    
    ; bai tap 3-1_Tinh dien tich tam giac tu hai canh da biet
    (Defun c:DTTG (/ a h dientich)
          (setq a (getreal "\n Nhap gia tri canh day:"))
          (setq h (getreal "\n Nhap gia tri duong cao:"))
          (defun dientich (x y)
          (* 0.5 a h))
          (Prompt "\n Dien tich tam giac la: ")
          (dientich a h))
    
    
    ;************************************************
    
    ; bai tap 3-2_ Tinh trung binh cong cua 3 so nhap vao
    (Defun c:TBC3S (/ a b c)
          (setq a (getreal "\n Nhap gia tri a:"))
          (setq b (getreal "\n Nhap gia tri b:"))
          (setq c (getreal "\n Nhap gia tri c:"))
          (defun trungbinhcong3so (x y z)
          (/ (+ a b c) 3.0))
          (Prompt "\n Gia tri trung binh ba so la: ")
          (trungbinhcong3so a b c))
    (setq trungbinhcong3so nil)  
    

    Gửi lại bạn Ketxu 2 bài tập khử hàm được làm theo hai cách

    1/ khai báo tên hàm định nghĩa vào thủ tục như 1 biến

    2/ Gán hàm định nghĩa bàng nil

    Không biết đã đạt hay chưa?

    • Vote tăng 1

  11. ; bai tap cua phuong44e1
    ; 2014-02-28
    
    ; bai tap 3-1_Tinh dien tich tam giac tu hai canh da biet
    (Defun c:DTTG (/ a h)
          (setq a (getreal "\n Nhap gia tri canh day:"))
          (setq h (getreal "\n Nhap gia tri duong cao:"))
          (Prompt "\n Dien tich tam giac la: ")
          (* 0.5 a h))
    
    ;************************************************
    
    ; bai tap 3-2_ Tinh trung binh cong cua 3 so nhap vao
    (Defun c:TBC3S (/ a b c)
          (setq a (getreal "\n Nhap gia tri a:"))
          (setq b (getreal "\n Nhap gia tri b:"))
          (setq c (getreal "\n Nhap gia tri c:"))
          (Prompt "\n Gia tri trung binh ba so la: ")
          (/ (+ a b c) 3.0))    
    
    
    ;************************************************
    
    ; bai tap 3-3_ Tinh tich 4 so nhap vao
    (Defun c:T4S (/ a b c d)
          (setq a (getreal "\n Nhap gia tri a:"))
          (setq b (getreal "\n Nhap gia tri b:"))
          (setq c (getreal "\n Nhap gia tri c:"))
          (setq d (getreal "\n Nhap gia tri d:"))
          (Prompt "\n Gia tri tich cua 4 so la: ")
          (* a b c d))
    
    
    ;************************************************
    
    ; bai tap 3-4_ Tinh lap phuong so nhap vao
    (Defun c:LP (/ a)
          (setq a (getreal "\n Nhap gia tri a:"))
          (Prompt "\n Gia tri lap phuong la: ")
          (* a a a))
    
    
    
    ;************************************************
    
    ; bai tap 3-5_ Tinh dien tich hinh vanh khan voi d1 va d2
    (Defun c:DTVK (/ d1 d2)
          (setq d1 (getreal "\n Nhap gia tri duong kinh hinh tron lon d1:"))
          (setq d2 (getreal "\n Nhap gia tri duong kinh hinh tron nho d2:"))
          (Prompt "\n Gia tri dien tich hinh vanh khan la: ")
          (* pi (- (* d1 d1 0.25) (* d2 d2 0.25))))
    
    
    
    ;************************************************
    
    ; bai tap 3-6_ Tinh dien tich tam gia voi 3 canh nhap vao
    (Defun c:DTTG2 (/ a b c)
          (setq a (getreal "\n Nhap gia tri chieu dai canh a:"))
          (setq b (getreal "\n Nhap gia tri chieu dai canh b:"))
          (setq c (getreal "\n Nhap gia tri chieu dai canh c:"))
          (setq cv (+ a b c))
          (Prompt "\n Gia tri dien tich tam giac la: ")
          (sqrt (* cv (- cv a) (- cv b) (- cv c))))
    
    
    ;************************************************
    
    ; bai tap 3-7_ Tinh dien tich dien tich mat cat ngang thanh thep voi d
    (Defun c:DTMC (/ d)
          (setq d (getreal "\n Nhap gia tri duong kinh than thep d:"))
          (Prompt "\n Gia tri dien tich mat cat la: ")
          (* pi d d 0.25))
    
    
    ;************************************************
    
    ; bai tap 3-8_ Tinh khoi luong thanh thep voi d
    (Defun c:KLT (/ d)
          (setq d (getreal "\n Nhap gia tri duong kinh than thep d:"))
          (setq KLR 7850 l 11.7)
          (Prompt "\n Gia tri khoi luong thanh thep la: ")
          (* pi d d 0.25 KLR l))
    
    
    ;************************************************
    
    ; bai tap 3-9_Tinh khoi luong thanh thep hop vuong voi 2 doi so la canh ngoai va chieu day
    (Defun c:KLTH (/ a b)
          (setq a (getreal "\n Nhap gia tri kich thuoc canh:"))
          (setq b (getreal "\n Nhap gia tri chieu day thep hop:"))
          (setq KLR 7850 l 11.7)
          (Prompt "\n Gia tri khoi luong thanh thep la: ")
          (* 4 a b KLR l))
    
    
    ;************************************************
    
    ; bai tap 3-10_Tinh khoi luong thanh thep hop vuong voi 2 doi so la canh ngoai va canh trong
    (Defun c:KLTH2 (/ a b)
          (setq a (getreal "\n Nhap gia tri kich thuoc canh ngoai:"))
          (setq b (getreal "\n Nhap gia tri kich thuoc canh trong:"))
          (setq KLR 7850 l 11.7)
          (Prompt "\n Gia tri khoi luong thanh thep la: ")
          (* (- (* a a ) (* b b)) KLR l))
    
    
    ;************************************************
    
    ; bai tap 3-11_Quy doi don vi tu mm sang m
    (Defun c:QDDV (/ a)
          (setq a (getreal "\n Nhap gia tri chieu dai a voi don vi la mm:"))
          (Prompt "\n Gia tri cac bien khi quy doi chieu dai la: ")
          (/ a 1000.0)
    
    

    Bài tập 3.2 Thực sự mình không hiểu tại sao phải loại bỏ hàm con khỏi thủ tục hoặc hàm chính nên cũng ko phân tích dc nó hơn hay thiệt ở chỗ nào.

    Như mình hiểu thì:

    + Các biến trong thủ tục sau dấu/ thì sẽ bị loại khỏi thủ tục sau khi chạy thủ tục nhưng lại không áp dụng cách này được cho hàm con. Như vậy nếu muốn loại hàm con khỏi thủ tục thì nên làm thế nào ( Mong bạn Ketxu chỉ giáo)

    + Khi muốn loại 1 biến ra khỏi bộ nhớ hệ thống thì gán biến đó bằng Nill ví dụ: (setq  a Nill) vậy nếu muốn gán hàm bằng Nill như hàm setq, getreal...thì gán như thế nào? và như vậy nó có bị loại khỏi bộ nhớ hệ thống không ? Nó ảnh hưởng thế nào đến các bước tiếp theo?

    + Mình nghĩ việc có nên loại hàm con khỏi hàm chính hoặc thủ tục hay không, thiệt hơn của nó thế nào là khá quan trọng nên nhờ bạn Ketxu vui lòng có bài chỉ dẫn và phân tích cụ thể.

     

    Mong mọi người thông cảm, đoạn này cái đầu mình hơi bị tối.

     

    Thanks!



  12. ; bai tap cua phuong44e1
    ; 2014-02-25
    ; bai tap 2a
    (Defun DTHVK (R1 R2); R1 la ban kinh duong trong lon, R2 la ban kinh duong tron nho
    (* 3.14 (- (* R1 R1) (* R2 R2)))

    ; bai tap 2b
    (Defun DTTG (cv a b c);
    (setq cv (+ a b c))
    (sqrt (* cv (- cv a) (- cv b) (- cv c))))

    ; bai tap 2c
    (Defun DTMC (R);
    (* 3.14 R R))

    ; bai tap 2d
    (Defun KLT (R);
    (setq KLR 7850 d 11.7)
    (* 3.14 R R d KLR))

    ; bai tap 2e
    (Defun KLT (l t);
    (setq KLR 7850 d 11.7)
    (* t l 4 d KLR))

    ; bai tap 2f
    (Defun KLT2 (l1 l2); L1 la chieu dai canh ngoai, L2 la chieu dai canh trong
    (setq KLR 7850 d 11.7)
    (* (- (* l1 l1) (* l2 l2)) d KLR))


  13. ; bai tap cua phuong44e1
    ; 2014-02-25
    ; bai tap 2-1
    (Defun c:BT2-1 (/ e x y z)
    (setq x (+ 2 7) y (- 3 1.25) z 5.0)
    (setq z (* x y)
    (setq e (+ z (* 0.4 (- x y))))
    (setq ketqua (+ x y z e)))

    ; bai tap 2-2a
    (Defun c:BT2-1 (/ ketqua e x y z)
    (setq x (+ 2 7) y (- 3 1.25) z 5.0)
    (setq z (* x y)
    (setq e (+ z (* 0.4 (- x y))))
    (setq ketqua (+ x y z e)))

    ; bai tap 2-2b
    (Defun c:BT2-2 (/ a b)
    (setq a (getint "\n Nhap gia tri a:"))
    (setq b (getint "\n Nhap gia tri b:"))
    (setq c (* 0.5 a b)))

    ; bai tap 2-3
    ; Ham trung binh cong 2 so phai dung 0.5 thay vi chia 2 la do ca a va b deu la so nguyen, neu chia cho 2 thi ket qua tra ve la so nguyen nen khong chinh xac. vay phai dung 0.5 de ket qua cho ra so thuc


    ; bai tap 2-4
    (Defun TBC3S (a b c)
    (/ (+ a b c) 3.0))


    ; bai tap 2-5
    (Defun DTTG (a h); a la chieu dai canh day, h la chieu cao tam giac
    (* 0.5 a h))


    ; bai tap 2-6
    (Defun T4S (a b c d);
    (* a b c d))


    ; bai tap 2-7
    (Defun LP (a);
    (* a a a))

    ; bai tap 2-8a
    ; sau khi dua vao cad ket qua nhu sau

    Command: (Defun TBC3S (a b c)
    (_> (/ (+ a b c) 3.0))
    TBC3S
    Command: (setq a 1.1 b 2.2 c 3.3)
    3.3
    Command: (tbc3s a b c)
    2.2


    ; bai tap 2-8b
    ; sau khi dua vao cad ket qua nhu sau

    Command: (Defun DTTG (a h); a la chieu dai canh day, h la chieu cao tam giac
    (_> (* 0.5 a h))
    DTTG
    Command: (setq a 1 h 0.5)
    0.5
    Command: (dttg a h)
    0.25


    ; bai tap 2-8c
    ; sau khi dua vao cad ket qua nhu sau

    Command: (Defun T4S (a b c d);
    (_> (* a b c d))
    T4S
    Command: (setq a 1 b 2 c 3 d 4)
    4
    Command: (t4s a b c d)
    24


    ; bai tap 2-8d
    ; sau khi dua vao cad ket qua nhu sau

    Command: (Defun LP (a);
    (_> (* a a a))
    LP
    Command: (setq a 3)
    3
    Command: (lp a)
    27

×