Đến nội dung


Hình ảnh

INSERT ĐỐI TƯỢNG TRONG THƯ VIỆN


  • Please log in to reply
11 replies to this topic

#1 Han Tinh

Han Tinh

    biết vẽ pline

  • Members
  • PipPip
  • 63 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 21 January 2014 - 08:10 PM

127675_insert_doi_tuong.jpgChào các anh em trong điễn đàn cadviet, mình có tạo một tiện ích dùng trong cad(tạo thư viện trong cad với file ảnh là *sld), với phần mở rộng là *.mns trên thanh toolbar, nhưng khi insert thì đối tượng đó không nằm ngay con trỏ mà nằm ở rất xa so với con trỏ. khi insert xong ta phải zoom all mới thấy được đối tượng đó. Có cách nào khi ta insert thì đối tượng nằm ngay con trỏ không vậy. Cảm ơn các anh em! 


  • 0

#2 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5678 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 21 January 2014 - 08:44 PM

Nếu sử dụng Block chắc bạn sẽ hiểu nó phụ thuộc vào điểm chèn Block lúc tạo


  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#3 nguyenbd1

nguyenbd1

    biết lệnh text

  • Members
  • PipPipPipPip
  • 276 Bài viết
Điểm đánh giá: 13 (tàm tạm)

Đã gửi 21 January 2014 - 09:00 PM

không phải block mà la bản vẽ. moj khung nhjn tren tjen jch dó là 1 bản vẻ hã di chuen bả ve về gốc toạ do
  • 0

#4 Han Tinh

Han Tinh

    biết vẽ pline

  • Members
  • PipPip
  • 63 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 21 January 2014 - 09:15 PM

Cam ơn bạn nguyenbd1 nhiều nha! mình làm được rồi. Là phải đem bản vẽ trong khung nhìn về góc tọa độ. Thanks bạn! 

Với lại cho mình hỏi thêm tí nữa là: mình muốn dùng Lisp để gọi bản vẽ trong tiện ích ra mà không phải dùng chuột để chọn chúng trên toolbar thì được không vậy? 


  • 0

#5 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 21 January 2014 - 09:22 PM

Cho "vô duyên" tí: Han tinh có "bà con" gì với Banglang_tim không vậy?


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#6 namnhim

namnhim

    biết vẽ polygon

  • Members
  • PipPip
  • 73 Bài viết
Điểm đánh giá: 5 (bình thường)

Đã gửi 21 January 2014 - 10:04 PM

Cam ơn bạn nguyenbd1 nhiều nha! mình làm được rồi. Là phải đem bản vẽ trong khung nhìn về góc tọa độ. Thanks bạn! 

Với lại cho mình hỏi thêm tí nữa là: mình muốn dùng Lisp để gọi bản vẽ trong tiện ích ra mà không phải dùng chuột để chọn chúng trên toolbar thì được không vậy? 

nếu muốn dùng lisp bạn có thể dùng đoạn code này:

(DEFUN C:GBV() (prompt "\n DE GOI BVE TRONG THU VIEN")
(setq ms 1) (setq x (getpoint "\nCHON GOC TRAI-DUOI BAN VE :"))
(setenv "ACAD" (strcat (GETENV "ACAD") ";" "C:\\Program Files\\AutoCAD 2004\\Thu Vien"))
(command "-insert" "C:\\Program Files\\AutoCAD 2004\\Thu Vien\\TENBVE.DWG" x ms ms "0") 
(Command "explode" (ssget "L")) (Command "-purge" "b" "TENBVE" "y" "y") 
(Command "zoom" "e")
(prompt "\nDA GOI BVE RA")(princ))

lưu ý là bve mẫu được lưu theo đường dẫn "C:\\Program Files\\AutoCAD 2004\\Thu Vien" là ok


  • 0

#7 juny

juny

    biết zoom

  • Members
  • Pip
  • 17 Bài viết
Điểm đánh giá: 3 (bình thường)

Đã gửi 21 January 2014 - 11:54 PM

facebook autocad tutorial


  • 0

Hướng dẫn học AutoCAD
AutoCAD Tutorial | AutoCAD Tips | AutoCAD Library


#8 nguyenbd1

nguyenbd1

    biết lệnh text

  • Members
  • PipPipPipPip
  • 276 Bài viết
Điểm đánh giá: 13 (tàm tạm)

Đã gửi 22 January 2014 - 06:49 AM

bạn hãy tham khao lisp geo cua bak ssg. da up tren djen dan
  • 0

#9 Han Tinh

Han Tinh

    biết vẽ pline

  • Members
  • PipPip
  • 63 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 22 January 2014 - 09:29 PM

Bạn namnhim cho mình hỏi là: minh vẩn tạo thư mục thư viện trong đó vẫn có flie TENBVE và lưu theo đường dẫn trong ổ C, mà sau khi gọi lệnh thì màn hình hiện lên các dòng như này là sao vậy bạn. 

127675_anh_hien_thi.jpg


  • 0

#10 namnhim

namnhim

    biết vẽ polygon

  • Members
  • PipPip
  • 73 Bài viết
Điểm đánh giá: 5 (bình thường)

Đã gửi 23 January 2014 - 08:25 AM

bạn đổi Cad 2004 thành 2007 (\\Program Files\\AutoCAD 2004\\....) ==> (\\Program Files\\AutoCAD 2007\\....)


  • 0

#11 banglang_tim

banglang_tim

    biết vẽ arc

  • Members
  • PipPip
  • 49 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 23 January 2014 - 07:54 PM

Thanks bạn namnhim nhiều nha! Nhưng có vấn đề là: nếu trong folder Thu Vien mình lưu  nhiều bản vẽ(VD là 50 bản vẽ) thì khi gọi lệnh nó sẽ cho ra một loạt( 50 bản vẽ)  thì rất là bất tiện lắm. Có cách nào khi GỌI LỆNH nó sẽ hiện trên màn hình hay trên thanh toolbar dưới dạng cây folder(thư mục cha và các thư mục con). 


  • 0

#12 namnhim

namnhim

    biết vẽ polygon

  • Members
  • PipPip
  • 73 Bài viết
Điểm đánh giá: 5 (bình thường)

Đã gửi 24 January 2014 - 08:30 AM

cái này chỉ để gọi cho 1 bve do bạn đặt tên trong Thư Viện, 

(command "-insert" "C:\\Program Files\\AutoCAD 2004\\Thu Vien\\TENBVE.DWG" x ms ms "0")

Nếu bạn muốn gọi từng chi tiết bằng bảng điều khiển thì hình như trên diễn đàn đã có rồi, bạn có thể tìm nó tối ưu hơn.

hoặc bạn có thể dùng theo kiểu cùi bắp này là tạo những file chi tiết riêng rồi vất vào trong thư viện, sau đó sử dụng Lisp hiển thị bảng lệnh do anh anh Ketxu viết và gõ LC là hiện ra bảng có tên chi tiết cần gọi rồi chon chi tiết đó và nhấn OK là ra cái chi tiết đó.

(defun c:lc(/ LM:ListBox str lstData ST:SendKeys)
(setq lstData
    (acad_strlsort (list
;Viet tiep cac lenh vao duoi dong nay theo mau "Ten lenh Noi dung"
    "MCA MatcatAA.dwg"
    "MCB MatcatBB.dwg"
    "MCC MatcatCC.dwg"
    "CO Copy th\U+00F4ng minh"    
    ))
)
(defun ST:SendKeys (keys / ws)
  (vlax-invoke-method (setq ws (vlax-create-object "WScript.Shell"))  'sendkeys keys)
  (vlax-release-object ws)
  (princ)
)
(defun LM:ListBox ( title data multiple / file tmp dch return )
  (cond
	(
  	(not
    	(and (setq file (open (setq tmp (vl-filename-mktemp nil nil ".dcl")) "w"))
      	(write-line
        	(strcat "listbox : dialog { label = \"" title
          "\"; spacer; : list_box { key = \"list\"; multiple_select = "
          	(if multiple "true" "false") "; } spacer; ok_cancel;}"
        	)
        	file
      	)
      	(not (close file)) (< 0 (setq dch (load_dialog tmp))) (new_dialog "listbox" dch)
    	)
  	)
	)
	(
  	t    
  	(start_list "list")
  	(mapcar 'add_list data) (end_list)
 
  	(setq return (set_tile "list" "0"))
  	(action_tile "list" "(setq return $value)")
 
  	(setq return
    	(if (= 1 (start_dialog))
      	(mapcar '(lambda ( x ) (nth x data)) (read (strcat "(" return ")")))
    	)
  	)          
	)
  )
  (if (< 0 dch) (unload_dialog dch))
  (if (setq tmp (findfile tmp)) (vl-file-delete tmp))
  return
)
(cond (
        (setq str (LM:ListBox "Ghi ch\U+00FA l\U+1EC7nh - lisp CAD - @ketxu - 2/6/2012 :" lstData nil))
        (setq str (car str))
        (ST:SendKeys (strcat (substr str 1 (vl-string-position 32 str)) "\n"))
        )
)
(princ)
)

  • 0