Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
mrphuocvie

Lỗi Do Thiếu Font Hay Lỗi Do Lisp

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

Chào cadviet.com,

Em có sửa đoạn code để làm công việc riêng của mình, song nó có nảy ra 1 vấn đề là BỊ LỖI FONT.

Em đã trình bày vấn đề này trong file .dwg, nhờ mọi người xem qua và chỉ em cách giải quyết.

Vấn đề ở đây em thấy kỳ lạ là: Nếu vì bị thiếu font thì trong mọi lúc nó sẽ không hiển thị được (Bản vẽ tiếng Nhật), nhưng ở đây, text sẽ bị lỗi font trong quá trình thực hiện lệnh. Để dễ hiểu mọi người hãy run lệnh đó giúp em.

Cảm ơn!132006_01_1.png

;GetAtt
	(defun GetAtt (obj)
		(mapcar '(lambda (att) (cons (vla-get-TagString att) (vla-get-TextString att))) (vlax-invoke obj 'GetAttributes)))
;SetAtt
	(defun SetAtt (obj lst / attval)
		(mapcar '(lambda (att) (if (setq attval (cdr (assoc (vla-get-TagString att) lst))) (vla-put-TextString att attval))) (vlax-invoke obj 'GetAttributes))
		(vla-update obj))
;tao ham con
	(defun Asign_Att (tag_txt tag_Att / txt_i Att_i lst lst1 lst2 lst3)
		(setq txt_i (cdr (assoc 1 (entget (car (entsel (strcat "\nSelect text for " tag_txt ": ")))))))
		(setq Att_i tag_Att)
		(foreach obj objlst
			(setq lst (GetAtt obj))
			(foreach lst1 lst
				(if (= (strcase (car lst1)) (strcase Att_i))
					(setq lst2 (cons (car lst1) txt_i))
					(setq lst2 lst1))
				(setq lst3 (cons lst2 lst3)))
			(SetAtt obj lst3)))
;Main code SHIAGE
(defun C:SHIAGE ()
	(vl-load-com)
	(princ "\nSelect DynamicBlock '0-Shiage_Obayashi': ")
	(setq ss (ssget (list (cons 0 "insert"))))
	(setq objlst (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))))
	;Thay the text_0i cho Att_0i-----------------------------------------------------
	(Asign_Att "室 名" "S01")
	(Asign_Att "CH=" "S02")
	(Asign_Att "FL" "S03")
	(Asign_Att "天井 仕上" "S04")
	(Asign_Att "天井 下地" "S05")
	(Asign_Att "廻縁" "S06")
	(Asign_Att "壁 仕上" "S07")
	(Asign_Att "壁 下地" "S08")
	(Asign_Att "巾木" "S09")
	(Asign_Att "床 仕上" "S10")
	(Asign_Att "床 下地" "S11")
	(Asign_Att "備考_1" "S12")
	(Asign_Att "備考_2" "S13")
	(Asign_Att "(巾木)H=" "S14")
	(Asign_Att "準" "S15")
	(princ)
)
;Main code TAG_D&W
(defun C:TAGDW ()
	(vl-load-com)
	(princ "\nSelect DynamicBlock '0-Tag_DW_Obayashi': ")
	(setq ss (ssget (list (cons 0 "insert"))))
	(setq objlst (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))))
	;Thay the text_0i cho Att_0i-----------------------------------------------------
	(Asign_Att "建具符号(Name)" "D01")
	(Asign_Att "建具番号(Type)" "D02")
	(Asign_Att "W=" "D03")
	(Asign_Att "H=" "D04")
	(Asign_Att "h=" "D05")
	(Asign_Att "電気錠(E)" "D06")
	(Asign_Att "防火性能" "D07")
	(Asign_Att "建具特記(SAT, PAT)" "D08")
	(princ)
) 

File .dwg

http://www.cadviet.com/upfiles/5/132006_02.dwg

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

Lỗi này là do code page không tương  thích

 

Nếu máy bạn có SYSCODEPAGE = ANSI_932 open file lisp trong vilde sẽ thấy các text không còn là tiếng Nhật.

Cách sửa trong vlide:

- Xoá các ký tự lạ

- Đánh lại nội dung bằng tiếng Nhật

  • 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

Đăng nhập để thực hiện theo  

×