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

  • Autocad2008
    replied
    Ðề: Visual Lisp

    Nguyên văn bởi minhce
    Khi chọn xong nó hỏi "Kind of area" là gì vậy Bác?
    ((= ldt "dx") (setq ldt "SÐáxây="))
    ((= ldt "bt") (setq ldt "SBêtông="))
    ((= ldt "d" ) (setq ldt "SÐào="))
    ((= ldt "dd") (setq ldt "SÐ?p="))
    ((= ldt "ph") (setq ldt "SP.hoá="))
    ((= ldt "ck") (setq ldt "SC.khay="))
    ((= ldt "dl") (setq ldt "SDam l?c="))
    ((= ldt "cl") (setq ldt "SCát l?c="))
    ((= ldt "tc") (setq ldt "SÐàoTC="))
    ((= ldt "tcc") (setq ldt "SÐ?p TC="))
    ((= ldt "lk") (setq ldt "SÐálkhan= "))
    ((= ldt "cp") (setq ldt "SC.ph?i= "))
    ((= ldt "dm") (setq ldt "Fdm = "))
    )
    Nếu như bạn cần tính diện tích hình đó là bê tông thì kind là bt
    sẽ ra kết quả lkà Sbêtông=......m²
    OK chứ

    Leave a comment:


  • minhce
    replied
    Ðề: Visual Lisp

    Khi chọn xong nó hỏi "Kind of area" là gì vậy Bác?

    Leave a comment:


  • Autocad2008
    replied
    Ðề: Visual Lisp

    Nguyên văn bởi HOÀNG TRUNG HẬU-00X3C
    Cái này em đã thử thêm dấu nháy rồi mà cũng chỉ thực hiện được boundary, còn area thì không thực hiện .
    Có phải khi mình viết 1 đoạn chương trình mà thay đổi các biến hệ thống thì kết thúc phải trả lại đúng giá trị cũ không. Vì em thấy anh Lam đưa biến old_bou, nhưng em không biết vì sao anh lại chuyển giá trị Hpbound=1, hay là nếu giá trị =0 (tức là miền) thì không chọn được. Em lại thấy anh dùng lệnh undo lại rất nhiều, không biết có phải là sau khi tạo được đa tuyến bao kín thì đưa nó về lại nguyên trạng bản vẽ, mà "mark" là gì thế anh? Trước undo có dấu gạch thì theo em là để chuyển ngôn ngữ, ngoài ra còn tác dụng gì ko? Anh giải thích giùm em câu này nha :

    Em đang thử viết thêm 1 đoạn để tính diện tích nhiều hình cùng 1 lúc. Lúc nào viết xong em sẽ đưa lên nhờ các anh chỉnh giúp
    Tặng đồng chí nhé viết làm gì cho mệt óc thử xem có ra gì khổng
    (Defun c:aer ()
    (setvar "cmdecho" 0)
    (command "osnap" "none")
    (setq tl (getreal "\n Scale for Drawing : "))

    (setq r 50 )
    (repeat r
    (setq pt (getpoint "\n Pick point : "))
    (setq am (* tl tl))
    (setq s 0)

    (progn
    (while pt
    (setq entold (cdr (assoc 5 (entget (entlast)))))
    (command "boundary" pt "")
    (setq entnew (cdr (assoc 5 (entget (entlast)))))
    (if (/= entold entnew)
    (progn
    (setq entnew (entget (entlast)))
    (if (assoc 62 entnew)
    (setq
    entnew (subst (cons 62 (+ 3 (cdr (assoc 62 entnew))))
    (assoc 62 entnew)
    entnew
    )
    )
    (setq entnew
    (append
    entnew
    (list
    (cons
    62
    (+ 3
    (cdr
    (assoc 62
    (tblsearch "layer"
    (cdr (assoc 8 entnew))
    )
    )
    )
    )
    )
    )
    )
    )
    )


    (entmod entnew)
    (Command "area" "o" (entlast))
    (setq s (+ s (getvar "area")))
    (setq pt (getpoint "\n Pick point: "))
    (entdel (entlast))
    )
    (progn
    (princ "Error Wrong Point")
    (setq pt (getpoint "\n Pick point: "))
    )
    )
    )

    )

    (setq pt1 (getpoint "\nPick any point to draw area : "))
    (setq dt (/ (* s am) 1000000))
    (setq dt (strcat (rtos dt 2 2) " m²."))


    (Setq ldt (Getstring t "\n Kind of area : "))
    (cond

    ((= ldt "dx") (setq ldt "SÐáxây="))
    ((= ldt "bt") (setq ldt "SBêtông="))
    ((= ldt "d" ) (setq ldt "SÐào="))
    ((= ldt "dd") (setq ldt "SÐ?p="))
    ((= ldt "ph") (setq ldt "SP.hoá="))
    ((= ldt "ck") (setq ldt "SC.khay="))
    ((= ldt "dl") (setq ldt "SDam l?c="))
    ((= ldt "cl") (setq ldt "SCát l?c="))
    ((= ldt "tc") (setq ldt "SÐàoTC="))
    ((= ldt "tcc") (setq ldt "SÐ?p TC="))
    ((= ldt "lk") (setq ldt "SÐálkhan= "))
    ((= ldt "cp") (setq ldt "SC.ph?i= "))
    ((= ldt "dm") (setq ldt "Fdm = "))
    )
    (command "text" pt1 3.0 0 (strcat ldt dt))
    (ALERT (strcat "\t\t
    DiÖn tÝch = " dt))

    ))

    Leave a comment:


  • Autocad2008
    replied
    Ðề: Chuyên nghiệp

    Nguyên văn bởi taotao395
    He he he... anh là dân chuyên nghiệp mà anh đã so sánh tốc độ với một đồng chí làm theo một số chương trình thống kê phổ biến => kết quả anh ăn đứt Nói chung là dân chuyên nghiệp thì cần xác lập phong cách riêng, không nên thay đổi chương trình làm nhiều, anh đánh giá cao tính kế thừa của các bộ hồ sơ, nó tiết kiệm đáng kể công sức. .
    Còn các đồng chí lập trình cho cái vụ thống kê nên xem thêm mảng excel ứng dụng mạnh hơn nhiều (và không phải dùng máy tính tay hỗ trợ khi thống kê bằng CAD - cho các phép tính phụ : cộng các nhịp cho chiều dài tổng chẳng hạn)
    DF9úng thế tôi cũng đã từng dùng thử nhưng thực ra chẳng hơn gì nhau vì mỗi ông khi thiết kế có ý tưởng uốn thép khác nhau và phức tạp nên thêm bớt là chuyện bình thường nên khi so sánh tôi thầy Ex của tôi vẫn nhanh hơn và dan năng hơn còn mấy cái nhỏ lẽ kia chuyện nhỏ xin thua font thì lại xấu không đẹp chút nào

    Leave a comment:


  • thanhtamct
    replied
    Ðề: Visual Lisp

    Nguyên văn bởi nglam_adg
    Tình trạng trên có thể do 2 nguyên nhân:
    1. Đường dẫn đến chương trình không chính xác. Mặc định, các bản AutoCAD đều nằm trong thư mục Program Files nhưng có tên khác nhau (AutoCAD 2004....2007). Khi viết, có thể người viết đã đặt sẵn đường dẫn cho CAD2006 vì thế khi dùng cho bản 2007 nó không tìm thấy các files liên kết (files hình ảnh *.sld hoặc *.slb).
    2. Do thiết lập hoặc sử dụng trùng biến ("môi trường" hoặc "toàn cục") với 1 chương trình hay 1 file Lisp nào đó đang sử dụng. Lỗi này thường có hiện tượng chương trình chạy được 1 vài bước hoặc 1 vài lần thì sinh lỗi do các biến nhận sai kiểu giá trị. Kiểm tra và chỉnh sửa lỗi này là ngại nhất !
    Anh Lam ơi, e mò hoài mà chẳng thấy có hiệu quả gì hết, theo kinh nghiệm của anh thì nên tập trung vào những files này? Anh có thể chỉ giúp em ko? E nghĩ là bị trường hợp 2, có thể bị trùng biến. Cám ơn

    Leave a comment:


  • myngan
    replied
    Ðề: Visual Lisp

    Có bác nào có sách điện tử về Visual lisp không ạ? Bản tiếng Việt hoặc tiếng anh đều tốt cả. Nếu bác nào có thì tải lên mạng cho anh em sinh viên, em cảm ơn các bác nhiều!

    Leave a comment:


  • tadaoando in vietnam
    replied
    Ðề: Visual Lisp

    Tôi Thấy đa Số Các Lisp Mà Các Bạn Giới Thiệu Rất Hay , Nhưng Gần Như Tất Cả đều Có Trong Phần Mềm Của đại Ca Nglam Rồi.các Bạn Tham Khảo Nhé. Nếu Bác Nglam Có Thời Gian Phát Triển Thêm Phần Vẽ Nước Và Vẽ Sơ đồ Nguyên Lý điện Nữa Thì Càng Tốt.về Cách Thức Xây Dựng ý Tưởng Phần Này Thì Em Chưa Nghĩ Ra Nhưng đại Ca Nglam Nếu Có Time Thì Anh Em Cùng Bàn.

    Leave a comment:


  • thanhtamct
    replied
    Ðề: Visual Lisp

    Cám ơn Anh Lam nhé.

    Leave a comment:


  • thanhtamct
    replied
    Ðề: Visual Lisp

    Nguyên văn bởi nglam_adg
    Nếu muốn TKXD30 cùng lúc chạy trên nhiều phiên bản AutoCAD khác nhau (trên cùng 1 máy) bạn cần cài TKXD30 cho 1 phiên bản CAD bất kỳ đang có. Đăng ký sử dụng chính thức (bằng mã 19741979). Sau khi TKXD30 đã chạy bình thường, bạn vào thư mục C:\TKXD30 và chạy file: Menu_set.exe, chọn thư mục AutoCAD cần cài thêm TKXD30 vào và chọn phần Support Update (trong mục Setup type).
    Nếu muốn dùng cho AutoCAD 2007, bạn có thể download file cập nhật support tại: http://www.ketcau.com/forum/showthre...?t=1774&page=7
    Chúc thành công !
    Anh Lam hiểu lầm ý của em rồi, TKXD 3.0 của anh chạy rất la ok như đây là thu viện khác của người bạn cài cho. Nó chạy trên CAD 2006 được như khi qua CAD 2007 thì chạy được 1 hay la 2 bước là bị như hình trên em đã gởi. ( Nó chạy được trên CAD 2007 được vài bước là hư). Vậy theo anh nó bị vấn đề gì? Cám ơn

    Leave a comment:


  • thanhtamct
    replied
    Ðề: Visual Lisp

    Anh Lam ơi cho xin hỏi
    Lúc trước thư viện này mở lên thì có hình trong đó còn bây giờ sử dụng CAD 2007 thì nó ko sử dụng được và hình được gởi kèm theo? Có cách nào khắc phục ko anh Lam? thư viện này Share ko co sourse? Cám ơn
    Attached Files
    Last edited by thanhtamct; 12-08-2006, 12:02 AM.

    Leave a comment:


  • Honey
    replied
    Ðề: Visual Lisp

    Autolisp ,Visual lisp , là 1 còn VBA in autoCad giong như VB vây

    Leave a comment:


  • duong2000
    replied
    Ðề: Visual Lisp

    Anh Lam ơi!
    Em cũng đang tự học lập trình autolisp ,em cũng tìm những sách anh nêu ở trên.Em tìm quyển "Ngôn ngữ lập trình AutoLisp (Nguyễn hữu Lộc - Nguyễn Thanh Trung)" nhưng hiện giờ ở những cửa hàng sách chuyên về xây dựng em tìm đều ko có.Em cũng cần tìm sách về VBA in autoCad.
    Vậy anh hay bạn nào có thể biết mua sách này ở đâu tại Hà Nội thì chỉ cho em được ko.
    Anh cho em hỏi thêm Autolisp ,Visual lisp ,và VBA in autoCad khác nhau ở điểm gì.Hiện này cái nào được dùng phổ biến nhất.
    Em xin cảm ơn!
    Last edited by duong2000; 25-07-2006, 04:30 PM.

    Leave a comment:


  • Snowman
    replied
    Ðề: Visual Lisp

    Chào anh Ng Lam !
    Em mới học Lisp và đã thử viết 1 số ứng dụng nho nhỏ, có 1 số điều em muốn nhờ anh chỉ dẫn :
    Em muốn vẽ hatch, sử dụng nentselp để chọn đường bao, nhưng mặt cắt vẽ ra lại chồng lên 1 số đối tượng khác (text, dim..)làm bản vẽ ko đc đẹp lắm. Vậy có cách nào khắc phục điểm này ko anh?
    Trong ứng dụng, em có sử dụng hai vòng lặp ***g nhau để tìm ra phương án theo yêu cầu, nhưng thỉnh thoảng chạy lệnh không ra được kết quả, có phải do số lần lặp quá lớn hay bộ nhớ ko đủ?
    Mong anh giải đáp giúp em. Thks !

    Leave a comment:


  • RNDCE
    replied
    Ðề: Visual Lisp

    Gửi anh Nguyễn Lâm:
    Đầu tiên xin cảm ơn anh Lâm đã tận tình giúp đỡ anh em trong diễn đàn.
    Em có một đoạn lisp với mục đích là: Lấy text của một dim rối trừ đi số của tổng các dim khác rối lấy kết quả này gán cho cho một dim thứ 3. Nhưng em viết ra chay không cho ra kết quả. Anh Lâm kiểm tra dùm em thử.
    ";------------------------------------------------------------------------------------------------;
    (defun bocchu (ss1 c) (setq ob (entget (ssname ss1 c))) (setq ts (assoc 1 ob)) (setq a (cdr ts)))
    (defun bocchudt (ob) (setq ts (assoc 1 ob)) (setq a (cdr ts)))
    (defun bocdt (ss1 c) (entget (ssname ss1 c)))
    (defun sothanhchu (num) (if (< num 1) (strcat "0" (rtos num 2 2)) (rtos num 2 2)))
    (defun thaychu (Ob newstr) (setq txtstr (assoc 1 Ob)) (setq newstr (cons 1 newstr)) (entmod (subst newstr txtstr Ob)))
    (defun chonchu (dongnhac) (prompt dongnhac) (ssget '((-4 . "<OR") (0 . "text") (0 . "mtext") (-4 . "OR>"))))
    (defun chon (str) (ssget '((cons(0 str)))))
    (defun bamchon(st) (entget (car (entsel st))))

    ; TRUDIM.LSP (TRU DIM TRONG BAN VE ACAD) ;
    ;;;----------------------------------------------------------------;
    (DEFUN C:TRUDIM()
    (setq a1 (ssget '((0 . "DIMENSION"))))
    (setq n1 (sslength a1))
    (SETQ TONG 0)
    (setq i1 -1)
    (while ( > (- n1 1) i1)
    (setq i1 (+ i1 1))
    (setq at1 (ssname a1 i1))(setq et1 (entget at1))
    (setq TONG (+ TONG ATOF(CDR(assoc 1 et1)) ))
    )
    (setq a2 (ssget '((0 . "DIMENSION"))))
    (setq n2 (sslength a2))
    (SETQ HIEU 0)
    (setq i2 -1)
    (while ( > (- n2 1) i2)
    (setq i2 (+ i2 1))
    (setq at2 (ssname a2 i2))(setq et2 (entget at2))
    (setq HIEU ( ATOF (CDR(assoc 1 et2)) ))
    )
    (SETQ KQ (- TONG HIEU))
    (PRINC "KET QUA TINH RA LA:" TONG)
    (setq A3 (ssget ))
    (THAYCHU A3 (SOTHANHCHU(KQ)))
    )
    ;;;--------------------------------------------------------------------------;"
    Và đây là đoạn lisp dùng để tạo ra lớp có tên là : “hatch”. Rồi khi thực hiện lệnh BH (HS, HT, …) các đối tượng hatch tạo ra tự động được gán cho lớp hatch. Sau khi thực hiện hatch xong thì trả lại lớp cũ. Kết quả chạy của em tạo ra được lớp “hatch” nhưng hoặc đối tượng tạo ra không nằm ở lớp “hatch” hoặc đối tượng nằm ở lớp “hatch” nhưng lệnh không trả về lớp trước đó.
    “;;;--------------------------------------------------------------------------;
    (defun nlh_error (s)
    (cond ((= s "quit / exit abort")(princ))((/= s "Function cancelled")(princ (strcat "\nError: " s))))
    (command "undo" "e")
    (setvar "CMDECHO" nlh_cmdecho)
    (setvar "OSMODE" nlh_osmode)
    (setvar "TEXTSTYLE" nlh_textstyle)
    (setvar "CLAYER" nlh_clayer)
    (setvar "CELTYPE" nlh_celtype)
    (setvar "CECOLOR" nlh_cecolor)
    (setvar "HIGHLIGHT" nlh_highlight)
    (setvar "REGENMODE" nlh_regenmode)
    (setq *error* olderr)
    (princ)
    )
    ;*---------------------------------------------------------------------------;
    (defun nlh_save ()
    (setq olderr *error* *error* nlh_error
    nlh_highlight (getvar "HIGHLIGHT")
    nlh_cecolor (getvar "CECOLOR")
    nlh_celtype (getvar "CELTYPE")
    nlh_clayer (getvar "CLAYER")
    nlh_textstyle (getvar "TEXTSTYLE")
    nlh_osmode (getvar "OSMODE")
    nlh_cmdecho (getvar "CMDECHO")
    nlh_regenmode (getvar "REGENMODE")
    )
    (setvar "CMDECHO" 0)
    (command "undo" "g")
    )
    ;*---------------------------------------------------------------------------;
    (defun nlh_hatchlayer ()
    (setq slist (list (cdr (assoc 2 (tblnext "LAYER" T)))))
    (while (setq sname (cdr (assoc 2 (tblnext "LAYER"))))
    (if (/= sname "")(setq slist (cons sname slist)))
    )
    (if (not (member "hatch" slist))
    (command "LAYER" "M" "hatch" "C" "252" "" "")
    (command "LAYER" "S" "hatch" "")
    )
    )
    ;*---------------------------------------------------------------------------;
    (defun nlh_restoreh ()
    (setvar "CMDECHO" nlh_cmdecho)
    (setvar "OSMODE" nlh_osmode)
    (setvar "TEXTSTYLE" nlh_textstyle)
    (setvar "CLAYER" nlh_clayer)
    (setvar "CELTYPE" nlh_celtype)
    (setvar "CECOLOR" nlh_cecolor)
    (setvar "HIGHLIGHT" nlh_highlight)
    (setvar "REGENMODE" nlh_regenmode)
    (setq *error* olderr olderr nil)
    )
    ; HACTH ;
    ;;;--------------------------------------------------------------------------;
    (defun c:bh () (nlh_save)(nlh_hatchlayer)(command "bhatch")(nlh_restoreh)(princ))
    (defun c:hs() (nlh_save)(nlh_hatchlayer)(command "-bhatch" "p" "s") (nlh_restoreh)(princ))
    (defun c:ht() (nlh_save)(nlh_hatchlayer)(command "-bhatch" "p" "u" "45" "100" "n")(nlh_restoreh) (princ))
    (defun c:hG() (nlh_save)(nlh_hatchlayer)(command "-bhatch" "p" "brick" "500" "0")(nlh_restoreh)(princ))
    (defun c:ha() (nlh_save)(nlh_hatchlayer)(command "-bhatch" "p" "ansi32" "100" "0" )(nlh_restoreh)(princ))
    (defun c:hr() (nlh_save)(nlh_hatchlayer)(command "-bhatch" "p" "ar-conc" "50" "0" )(nlh_restoreh)(princ))
    (defun c:hc() (nlh_save)(nlh_hatchlayer)(command "-bhatch" "p" "ar-sand" "100" "0" ) (nlh_restoreh)(princ))
    (defun c:hB() (nlh_save)(nlh_hatchlayer)(command "-bhatch" "p" "CONC-REINF" "50" "0" ) (nlh_restoreh)(princ))

    ;;;--------------------------------------------------------------------------;
    Xin cảm ơn anh Lâm

    Leave a comment:


  • tdhtkcd
    replied
    Ðề: Visual Lisp

    file đính kèm
    Attached Files

    Leave a comment:

Working...
X