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

Các bài được khuyến nghị

Em đã học xong chương trình ACAD Online của trung tâm. Em thấy rất hay và bổ ích.Em rất cảm ơn trung tâm!

Nhưng em có thắc mắc là em vẫn chưa biết cách tạo nên 1 file giống file CADVIETSTANDARD ?

Anh có thể chỉ giúp em cách tạo nên 1 file giống như vậy được không ạ?

Em cám ơn!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Cảm ơn bạn đã theo học cả 3 khóa học từ Cơ bản, Trung cấp đến Nâng cao của CADViet.

 

Về block CADViet Standard, thực tế là file CADVietStandard, nó là 1 file chứa đủ tất cả các block thôi mà bạn,

Bạn cứ tạo lần lượt các layer, block, text style, dim style rồi lưu lại thành 1 file cadstandard là được.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Anh kiểm tra giúp E lisp đo chiều dài của các đối tượng là line, polyline, mline... bị lỗi khi sử dụng trong

AutoCad 2015 (lisp bị lỗi khi chọn nhiều đối tượng 1 lúc ah). Cám ơn Anh.

http://www.cadviet.com/upfiles/4/136894_tg_do_chieu_dai.lsp

 

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Bạn có thể paste mã lisp vào bài viết được không?

File bạn upload bị lỗi.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Mã lísp đây ah. Anh kiểm tra giúp E.

 
;; free lisp from cadviet.com
(defun add_mline ()
  (foreach e_record_sub e_record
    (cond ((= 10 (car e_record_sub))
  (setq pt1   (cdr e_record_sub)
mline_len 0.0
  )
 )
 ((= 11 (car e_record_sub))
  (setq pt2   (cdr e_record_sub)
mline_len (+ mline_len (distance pt2 pt1))
pt1   pt2
  )
 )
    )
  )
  (setq tot_len (+ tot_len mline_len))
  (ssdel e_name ss)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun C:tg (/ tot_len ss e_name e_record e_type)
  (setq tot_len 0.0)
  (setq ss (ssget))
  (if (null ss)
    (exit)
  )
  (while (> (sslength ss) 0)
    (setq e_name (ssname ss 0))
    (setq e_record (entget e_name))
    (setq e_type (cdr (assoc '0 e_record)))
    (cond ((wcmatch e_type "LINE,ARC,CIRCLE,POLYLINE,LWPOLYLINE,ELLIPSE,SPLINE")
  (command "lengthen" e_name "")
  (setq tot_len (+ tot_len (getvar "PERIMETER")))
  (ssdel e_name ss)
 )
 ((wcmatch e_type "MLINE") (add_mline))
 (e_type (ssdel e_name ss))
    )
  )
  (prompt (strcat "\nTotal length is: " (rtos tot_len 2 2)))
  (princ)
)
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun c:GG ( / *error* vl ov LastEntity ent ss )
 
CADVIET
 
(defun *error* ( msg )
 
(mapcar 'setvar vl ov)
 
(or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
 
(princ (strcat "\n** Error: " msg " **")))
 
(princ)
 
)
 
(setq vl '("CMDECHO" "PEDITACCEPT" "QAFLAGS")
 
ov (mapcar 'getvar vl))
 
(setq LastEntity (entlast))
 
(command "_.mline")
 
(while (= 1 (logand 1 (getvar 'CMDACTIVE)))
 
(command pause)
 
)
 
(if (not (equal LastEntity (setq ent (entlast))))
 
(progn
 
(mapcar 'setvar vl '(0 1 5))
 
(vl-cmdf "_.explode" ent "")
 
(setq ss (ssadd))
 
(mapcar '(lambda ( e ) (ssadd e ss)) (LM:EntnexttoEnd ent))
 
(vl-cmdf "_.pedit" "_M" ss "" "_J" "" "")
 
)
 
)
 
(mapcar 'setvar vl ov)
 
(princ)
 
)
 
(defun LM:EntnexttoEnd ( e )
 
(if (setq e (entnext e))
 
(cons e (LM:EntnexttoEnd e))
 
)
 
)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

;; free lisp from cadviet.com
(defun add_mline ()
(foreach e_record_sub e_record
(cond ((= 10 (car e_record_sub))
(setq pt1 (cdr e_record_sub)
mline_len 0.0
)
)
((= 11 (car e_record_sub))
(setq pt2 (cdr e_record_sub)
mline_len (+ mline_len (distance pt2 pt1))
pt1 pt2
)
)
)
)
(setq tot_len (+ tot_len mline_len))
(ssdel e_name ss)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun C:tg (/ tot_len ss e_name e_record e_type)
(setq tot_len 0.0)
(setq ss (ssget))
(if (null ss)
(exit)
)
(while (> (sslength ss) 0)
(setq e_name (ssname ss 0))
(setq e_record (entget e_name))
(setq e_type (cdr (assoc '0 e_record)))
(cond ((wcmatch e_type "LINE,ARC,CIRCLE,POLYLINE,LWPOLYLINE,ELLIPSE,SPLINE")
(command "lengthen" e_name "")
(setq tot_len (+ tot_len (getvar "PERIMETER")))
(ssdel e_name ss)
)
((wcmatch e_type "MLINE") (add_mline))
(e_type (ssdel e_name ss))
)
)
(prompt (strcat "\nTotal length is: " (rtos tot_len 2 2)))
(princ)
)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun c:GG ( / *error* vl ov LastEntity ent ss )

CADVIET

(defun *error* ( msg )

(mapcar 'setvar vl ov)

(or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")

(princ (strcat "\n** Error: " msg " **")))

(princ)

)

(setq vl '("CMDECHO" "PEDITACCEPT" "QAFLAGS")

ov (mapcar 'getvar vl))

(setq LastEntity (entlast))

(command "_.mline")

(while (= 1 (logand 1 (getvar 'CMDACTIVE)))

(command pause)

)

(if (not (equal LastEntity (setq ent (entlast))))

(progn

(mapcar 'setvar vl '(0 1 5))

(vl-cmdf "_.explode" ent "")

(setq ss (ssadd))

(mapcar '(lambda ( e ) (ssadd e ss)) (LM:EntnexttoEnd ent))

(vl-cmdf "_.pedit" "_M" ss "" "_J" "" "")

)

)

(mapcar 'setvar vl ov)

(princ)

)

(defun LM:EntnexttoEnd ( e )

(if (setq e (entnext e))

(cons e (LM:EntnexttoEnd e))

)

)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Nội dung cần sửa:

Sửa đoạn mã

(command "lengthen" e_name "")

(setq tot_len (+ tot_len (getvar "PERIMETER")))

 

Bằng

(setq tot_len (+ tot_len (setq dai (vlax-curve-getDistAtParam e_name (vlax-curve-getEndParam e_name )))))

 

Và đây là toàn bộ lisp sau khi sửa:

;; free lisp from cadviet.com

;;; this lisp was downloaded from http://www.cadviet.com/forum/topic/109599-no-bai-10-bien-he-thong-lisp/#entry333892

;; free lisp from cadviet.com

 

(defun add_mline ()

 

(foreach e_record_sub e_record

 

(cond ((= 10 (car e_record_sub))

 

(setq pt1 (cdr e_record_sub)

 

mline_len 0.0

 

)

 

)

 

((= 11 (car e_record_sub))

 

(setq pt2 (cdr e_record_sub)

 

mline_len (+ mline_len (distance pt2 pt1))

 

pt1 pt2

 

)

 

)

 

)

 

)

 

(setq tot_len (+ tot_len mline_len))

 

(ssdel e_name ss)

 

)

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

(defun C:tg (/ tot_len ss e_name e_record e_type)

 

(setq tot_len 0.0)

 

(setq ss (ssget))

 

(if (null ss)

 

(exit)

 

)

 

(while (> (sslength ss) 0)

 

(setq e_name (ssname ss 0))

 

(setq e_record (entget e_name))

 

(setq e_type (cdr (assoc '0 e_record)))

 

(cond ((wcmatch e_type

"LINE,ARC,CIRCLE,POLYLINE,LWPOLYLINE,ELLIPSE,SPLINE"

)

 

;(command "lengthen" e_name "")

 

(setq tot_len (+ tot_len (setq dai (vlax-curve-getDistAtParam e_name (vlax-curve-getEndParam e_name )))))

 

(ssdel e_name ss)

 

)

 

((wcmatch e_type "MLINE") (add_mline))

 

(e_type (ssdel e_name ss))

 

)

 

)

 

(prompt (strcat "\nTotal length is: " (rtos tot_len 2 2)))

 

(princ)

 

)

 

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

(defun c:GG (/ *error* vl ov LastEntity ent ss)

 

 

CADVIET

 

 

(defun *error* (msg)

 

 

(mapcar 'setvar vl ov)

 

 

(or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")

 

 

(princ (strcat "\n** Error: " msg " **"))

)

 

 

(princ)

 

 

)

 

 

(setq vl '("CMDECHO" "PEDITACCEPT" "QAFLAGS")

 

 

ov (mapcar 'getvar vl)

)

 

 

(setq LastEntity (entlast))

 

 

(command "_.mline")

 

 

(while (= 1 (logand 1 (getvar 'CMDACTIVE)))

 

 

(command pause)

 

 

)

 

 

(if (not (equal LastEntity (setq ent (entlast))))

 

 

(progn

 

 

(mapcar 'setvar vl '(0 1 5))

 

 

(vl-cmdf "_.explode" ent "")

 

 

(setq ss (ssadd))

 

 

(mapcar '(lambda (e) (ssadd e ss)) (LM:EntnexttoEnd ent))

 

 

(vl-cmdf "_.pedit" "_M" ss "" "_J" "" "")

 

 

)

 

 

)

 

 

(mapcar 'setvar vl ov)

 

 

(princ)

 

 

)

 

 

(defun LM:EntnexttoEnd (e)

 

 

(if (setq e (entnext e))

 

 

(cons e (LM:EntnexttoEnd e))

 

 

)

 

 

)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Không biết em post bài ở đây có đúng hay không, nếu không đúng xin anh di chuyển bài tới topic phù hợp hộ em nhé. 

- Em sử dụng Sheet set, khi em etransmist hoặc archive thì cad hiện ra cái dòng sau:"  Archive ( etransmit) can not continue because the following drawing(s) require saving: E:\huy\..." 

- Mong anh chỉ giúp em với

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Bạn thử kiểm tra xem đường dẫn của bạn có tiếng Việt có dấu không?

 

Nếu có thì phải sửa đường dẫn (tên thư mục, tên file) về không dấu.

 

Lệnh etransmit không thực hiện được khi tên file hoặc tên thư mục có dấu.

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay


×