QUẢNG CÁO ĐẦU TRANG

Collapse

Thông báo

Collapse
No announcement yet.

Visual Lisp

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • #76
    Ðề: Visual Lisp

    Trong dữ liệu của lisp không có kiểu mảng đâu, chỉ có list thay mảng thôi. Nhưng các biến trong Lisp đều tự động xóa khỏi bộ nhớ khi thực hiện xong lệnh, trừ các biến toàn cục.

    Ghi chú


    • #77
      Ðề: Visual Lisp

      Đấy là tôi trêu bạn thôi(mà bán 50 phiên bản NS thì thừa tiến ấy chứ ). Trong đây có một topic về ObjectARX rồi đó, bạn sẽ tìm thấy một số link hữu ích trong đó.
      Have fun!

      Ghi chú


      • #78
        Ðề: Visual Lisp

        Em có đaọn lisp sau dùng để đưa các đường kích thước về cùng một lớp "Dim" trong
        bản vẽ Autocad. Nhưng không hiểu sao các đường kích thước được tạo ra không nằm ở
        lớp Dim mà nằm ở lớp hiện hành. Các bác giúp em với.
        ;;; chuong trinh dua cac dimension ve lop "dim"
        (defun C:dd ( )
        (setq olderr *error*
        *error* myerror)
        (setq ocmd (getvar "cmdecho"))
        (setq osme (getvar "osmode"))
        (setvar "cmdecho" 0)
        (setq olay (getvar "clayer"))
        (command "clayer" "DIM")
        (command "_dimlinear")
        (setvar "clayer" olay)
        (setvar "cmdecho" ocmd)
        (setvar "osmode" osme)
        (setq *error* olderr)
        (princ)

        ;;;
        ;;; ====================== END OF FUNCTION "dimlinear"

        Ghi chú


        • #79
          Ðề: Visual Lisp

          Các đường kích thước được tạo không nằm ở lớp hiện hành là vì lệnh : (command "_dimlinear") thực hiện sau cùng, sau cả hàm gọi : (setvar "clayer" olay).

          Ghi chú


          • #80
            Ðề: Visual Lisp

            lệnh gọi (command "_dimlinear") còn thiếu mất 3 đối số. Bạn thử thay nó bằng (command "_dimlinear" PAUSE PAUSE PAUSE) thử xem. Đây là cách thử thô thiển nhất.
            Cách bạn tạo dim bằng lệnh command không chuyên lắm. Tạo bằng mã DXF hoặc VisualLisp Automation tốt hơn. Chúc thành công.

            Ghi chú


            • #81
              Ðề: Visual Lisp

              (setq olderr *error*
              *error* myerror
              )
              (setq *error* olderr)

              Xin vui lòng giải thích dùm mấy cái khai báo biến *error*, em không hiểu tác dụng của nó! mà thấy nhiều người viết nó, không biết câu lệnh đó làm việc như thế nào?

              Ghi chú


              • #82
                Ðề: Visual Lisp

                Em đang thắc mắc 1 chút, mong các anh chỉ dùm em:
                Giả sử trong bản vẽ Cad em tạo 1 định nghĩa thuộc tính 1 Block "cao độ", em đã ghi các cao độ tại các điểm vào 1 bản vẽ. Bây giờ vì cao độ mốc giả định bị thay đổi lên 0.3 -> tất cả các cao độ tại các điểm khác thay đổi theo. Vậy những lệnh nào của Lisp giúp em có thể lấy ra được những thuộc tính của các Block ra rồi cộng thêm 1 lượng 0.3 nữa?

                Em mò hoài mà ko biết, mong các anh giải nghĩa cụ thể từng dòng để em nắm được cách thức làm.

                Ghi chú


                • #83
                  Ðề: Visual Lisp

                  Sorrrrrry cac baccc!
                  E thay bac TaoTao395 noi cung co cai dung, ma bac Robinho gi do noi cung dung. Nhung em man phep cac bac the nay! Thoi thi ta manh cai gi thi ta lam cai day. Tot nhat la phat trien song song cung voi cong nghẹ Bac nao di truoc cong nghe thi cung kho vi moi nguoi dau co dung duoc cai ma bac vua lam ra lai phai thay doi ca 1 he thong keo theo no. Nhung bac nao bao thu qua thi cung khong duoc!! Vi moi nguoi chay ve dich het roi ma bac van let det o xa thi cung khong xong.
                  Bac TaoTao395 lap co so du lieu tren Exel roi chuyen sang cho anh CAD cung hay, Tui co nghien cưu EXel cung kha nhieu tu Version 3- 4 co no dung la bang tinh van nang day, nhung co cai la neu ma su dung khong quen thi hay bi co van de lam! Bac cung nen chuyen dan sang cai khac di, Exel tot nhat la phat trien ve Thong Ke va xu ly bieu do thoi, chu de tao co so du lieu cho cad thi lau lam va phai qua nhieu cong doạn Bac nen nghien cưu them 1 so mon nhu C,C++ hay cu chuoi thi dung Pascal nhu cac cu ta cung duoc cung nhanh lam ma xuat File chinh xac hon anh Exel cua bac nhieu. Ma neu co thoi gian thi bac dung VB thi cang hay, trong vua khoa hoc ma lai cho nhieu nguoi su dung de dang. Kien thuc la cua nhan loai ma cung nen chia xe cho moi nguoi chu.....Hehe.
                  Thoi gian sau em se Post cho cac bac may cai Lisp cua em, nhung chi choi boi va tham khao thui, chu yeu phuc vu cho dan DCCT thui con cac bac ket cau thi SUPER rui em khong dam ban toi...

                  Ghi chú


                  • #84
                    Ðề: Visual Lisp

                    Nguyên văn bởi nglam_adg
                    Đây là hàm bắt lỗi chương trình trong trường hợp chương trình bị dừng không đúng quy trình (Esc - Exit).
                    Cấu trúc đầy đủ là:
                    (defun MyErr (msg)
                    (if (or
                    (= msg "Function cancelled")
                    (= msg "console break")
                    (= msg "quit / exit abort") )
                    (princ)
                    (princ (strcat "\nError: " msg))
                    )
                    ...
                    (defun .... ()
                    (setq old_err *error*
                    *error* MyErr)
                    ...
                    (setq *error* old_err)
                    )

                    Hàm trên sẽ thông báo lỗi gặp phải và dừng chương trình ngay lập tức, đồng thời giải phóng biến hoặc hàm gây lỗi.
                    Anh lâm ơi em viết Lisp và sửa lỗi, lúc chạy và ngắt lỗi vẫn tốt nhưng có một lỗi xảy ra là sẽ mất chế độ bắt điểm nếu người dùng undo lại lệnh vừa thục hiện. Anh có cách chỉ giúp.

                    Ghi chú


                    • #85
                      Ðề: Visual Lisp

                      Nguyên văn bởi nglam_adg
                      Với AutoLisp, có 3 cách gán thuộc tính hệ thống cho việc bắt điểm:
                      - Gán thông qua hàm lệnh command.
                      - Gán trực tiếp (bằng hàm osnap).
                      - Gán toàn cục (bằng hàm setvar).
                      Cách thứ nhất rất dẽ bị mất thuộc tính - không nên dùng.
                      Cách thứ 2 chỉ nên dùng khi đối tượng chọn có vị trí xác định.
                      Cách thứ 3 linh hoạt và "chuyên nghiệp" nhất. Thông thường, khi viết các hàm lệnh (defun), chúng ta thường gán thuộc tính cho biến hệ thống ngay từ đầu hàm lệnh và chỉ trả lại giá trị ban đầu khi kết thúc hàm lệnh đó. Cách viết này ngắn gọn và đơn giản, dễ quản lý nhưng nhược điểm là sẽ mất thuộc tính của biến hệ thống nếu dùng lệnh Undo. Tốt nhất, chỉ gán thuộc tính hệ thống khi cần và trả lại giá trị ngay sau khi thực hiện xong tác vụ.
                      VD:
                      (setq old_osm (getvar "Osmode")) ; Lấy giá trị bắt điểm hiện thời.
                      (setvar "Osmode" (+ 1 2 4)) ; Đặt bắt điểm = End+Mid+Cen.
                      (command ......)
                      (setvar "Osmode" old_osm) ; Trả lại giá trị ban đầu.
                      Cám ơn anh Lam nhiều. Chúc anh giáng sinh vui vẽ và một năm mới với nhiều thành công mới.

                      Ghi chú


                      • #86
                        Ðề: Visual Lisp

                        Anh Nguyễn Lam chỉ Cho em cách viết mã Lệnh cho nút <-Prev và Next->
                        để bật qua lại cho các nút Image-button.
                        Em viết chương trình thống kê thép như bản nhập liệu em không biết mã lệnh cho hai nút đó.
                        Chỉ dùm em nhe

                        Ghi chú


                        • #87
                          Ðề: Visual Lisp

                          Anh Lâm kiểm tra xem dùm em đoạn lisp dưới đây
                          Mục đích của em là :
                          Từ một hình chữ nhật có sẵn trên bản vẽ với hai cạnh là L1, L2 -> cần tạo ra một hình chữ nhật mới nằm bên trong hình chữ nhật cũ với các cạnh là (L1-2d, L2-2d) trong đó d=min(0.25L1, 0.25L2). Em chạy đoạn lisp trên thì kết quả cho ra tọa độ 3D của một điểm, không tạo được hình chữ nhât.

                          (defun c:rt ()
                          (setq olderr *error*
                          *error* myerror)
                          (setq pt1 (getpoint "\nFirst point of rectangle..."))
                          (setq pt2 (getpoint pt1 "\nCorner of rectangle..."))
                          (setq a(angle pt1 pt2)
                          dis(distance pt1 pt2))
                          (setq co (* dis (cos a))
                          si (* dis (sin a)))
                          (setq delta (min (* 0.25 co) (* 0.25 si)))
                          (setq pta (polar pt1 (* 0.25 pi) (* delta (cos (/ pi 4)) ))) )
                          (setq ptb (polar pta (/ pi 2.0) (- si (* 2 delta))) )
                          (setq ptc (polar ptb 0 (- co (* 2 delta))) )
                          (setq ptd (polar pta 0 (- co (* 2 delta))) )
                          (command "_.pline" pta ptb ptc ptd "c")
                          (setq *error* olderr)
                          (princ)
                          )

                          Ghi chú


                          • #88
                            Ðề: Visual Lisp

                            Đây là 1 chương trình nhỏ do mình viết để tự dùng lấy, CT này dùng để hỗ trợ triển khai bản vẽ KC. Mong các bạn xài thử và cho ý kiến, mình kg viết được bộ cài đặt cho nên các bạn chịu khó tự cài lấy (đoc nội dung từ file huongdan.txt). Thank.
                            Attached Files

                            Ghi chú


                            • #89
                              Ðề: Visual Lisp

                              Nguyên văn bởi Tu ACC
                              Cam on ban Dong Viet Thien da dua len dien dan mot chuong trinh hay. Toi down ve va cai nhu trong huong dan nhung chua su dung duoc, ban co the huong dan ky hon khong? Hinh nhu chuong trinh con thieu mot so file nao do ban a!Rat mong ban hoi am som.Thank!
                              không biết bạn bị kẹt ở đâu? Ở khâu cài đặt hay khâu sử dụng, bạn phải nói rõ hơn. Nhưng có ma71y điều cần chú ý như sau:
                              1- Phải khởi động lại CAD sau khi cài đặt.
                              1- Hầu như tất cả các lệnh trong Menu "Ket Cau" chỉ thực hiện được sau khi bạn thực hiện động tác này 01 lần duy nhất là: "Khoi tao ban ve" trong menu "Ket Cau". Chúc bạn Thành Công.
                              Last edited by Đồng Viết Thiện; 06-05-2006, 01:13 PM.

                              Ghi chú


                              • #90
                                Ðề: Visual Lisp

                                File hướng dẫn cài đặt & sử dụng FASTCAD dạng *.pdf ver7.0.
                                Attached Files

                                Ghi chú

                                Working...
                                X