Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Đăng nhập để thực hiện theo  
buithengan1

nhờ sửa lisp link giá trị đối tượng

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

(defun C:LGT (/ obn Tkq Lob)
	(START_PG)
	(setq obn (vlax-ename->vla-object (car (nentsel "\nChon doi tuong nguon")))
				obd	(vlax-ename->vla-object (car (nentsel "\nChon text dich")))
				Tkq	(strcat "%<\\AcObjProp Object(%<\\_ObjId "
										(rtos (vla-get-objectid obn) 2 0)
										">%).TextString>%"
						)
	)
	(vla-put-textstring obd Tkq)
	(vla-update obd)
	(vl-cmdf "regen")
	(END_PG)
	(princ)
)

lisp này copy text từ đối tượng này sang đối tượng khác và tự động thay đổi khi đối tượng nguồn thay đổi nó có khuyết điểm là chỉ chọn đc 1 đối tượng đích giờ mình muốn chọn nhiều giá trị đích hơn nhờ mọi người sửa giúp mình. cảm ơn

  • Vote tăng 1
  • Vote giảm 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

Bạn thử cái này.

 

(defun C:LGT (/ obn Tkq Lob)
(setq obn (vlax-ename->vla-object (car (nentsel "\nChon doi tuong nguon")))
Tkq (strcat "%<\\AcObjProp Object(%<\\_ObjId " (itoa (vla-get-objectid obn)) ">%).TextString>%")
)
(while (setq obd (car (nentsel "\nChon text dich")))
(vla-put-textstring (vlax-ename->vla-object obd) Tkq)
)
(vl-cmdf "regen")
(princ)
)
  • 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

 

Bạn thử cái này.

 

(defun C:LGT (/ obn Tkq Lob)
(setq obn (vlax-ename->vla-object (car (nentsel "\nChon doi tuong nguon")))
Tkq (strcat "%<\\AcObjProp Object(%<\\_ObjId " (itoa (vla-get-objectid obn)) ">%).TextString>%")
)
(while (setq obd (car (nentsel "\nChon text dich")))
(vla-put-textstring (vlax-ename->vla-object obd) Tkq)
)
(vl-cmdf "regen")
(princ)
)

hay quá cảm ơn bạn nhiều

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

Ké chút, Tot77 chỉnh hộ mình cái lisp link giá trị đối tượng này nhé

 

khi appload nó hiện thông báo sau: ; error: malformed list on input

APPLOAD linkt.lsp successfully loaded.
Command: ; error: malformed list on input
Command:
 
ps: upload trên diễn đàn bị đơ, mình copy code lên luôn
(defun c:LinkT (/ ss objlst ); Link Text  (if (setq ss (ssget  '((0 . "TEXT"))) )	    (progn      (vl-load-com)      (setq objlst (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))))      (if (and obj_reactor (vlr-added-p obj_reactor))	(vlr-remove obj_reactor))      (setq obj_reactor (vlr-pers (vlr-object-reactor  objlst  nil '((:vlr-modified . LinkText)								     (:vlr-erased . eraseEnt)  ))))      (princ (strcat "\n   Da thuc hien Link " (itoa(sslength ss)) " Text voi nhau !"		     "\n   Goi lenh Edit Text (ddedit) de cap nhat gia tri."))      (princ)      )    )  )(defun LinkText (notifier-object obj_reactor parameter-list / objlist str)  (setq objlist (vlr-owners obj_reactor)	str (vla-get-TextString notifier-object))  (foreach obj objlist    (if (/= (vla-get-TextString obj)str)      (vla-put-TextString obj str)      )    )  )(defun eraseEnt (notifier-object obj_reactor parameter-list)  (alert "Ban da thuc hien lenh Erase tu doi tuong REACTOR.\nLinkText da bi huy bo : Cac Text khong con Link voi nhau !")  (vlr-owner-remove  obj_reactor notifier-object)  (vlr-remove obj_reactor)  (princ)  )

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ử lại xem.

 

(defun c:LinkT (/ ss objlst ); Link Text
(if (setq ss (ssget  '((0 . "TEXT"))) )
(progn
(vl-load-com)
(setq objlst (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))))
(if (and obj_reactor (vlr-added-p obj_reactor)) (vlr-remove obj_reactor))
(setq obj_reactor (vlr-pers (vlr-object-reactor  objlst  nil '((:vlr-modified . LinkText)
(:vlr-erased . eraseEnt)  ))))
(princ (strcat "\n   Da thuc hien Link " (itoa(sslength ss)) " Text voi nhau !"      "\n   Goi lenh Edit Text (ddedit) de cap nhat gia tri."))
(princ)))
)
 
(defun LinkText (notifier-object obj_reactor parameter-list / objlist str)
(setq objlist (vlr-owners obj_reactor)
str (vla-get-TextString notifier-object))
(foreach obj objlist
(if (/= (vla-get-TextString obj)str)
(vla-put-TextString obj str) )    )
)
 
(defun eraseEnt (notifier-object obj_reactor parameter-list)
(alert "Ban da thuc hien lenh Erase tu doi tuong REACTOR.\nLinkText da bi huy bo : Cac Text khong con Link voi nhau !")
(vlr-owner-remove  obj_reactor notifier-object)
(vlr-remove obj_reactor)
(princ)
)
 

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ử lại xem.

(defun c:LinkT (/ ss objlst ); Link Text
(if (setq ss (ssget  '((0 . "TEXT"))) )
(progn
(vl-load-com)
(setq objlst (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))))
(if (and obj_reactor (vlr-added-p obj_reactor)) (vlr-remove obj_reactor))
(setq obj_reactor (vlr-pers (vlr-object-reactor  objlst  nil '((:vlr-modified . LinkText)
(:vlr-erased . eraseEnt)  ))))
(princ (strcat "\n   Da thuc hien Link " (itoa(sslength ss)) " Text voi nhau !"      "\n   Goi lenh Edit Text (ddedit) de cap nhat gia tri."))
(princ)))
)
 
(defun LinkText (notifier-object obj_reactor parameter-list / objlist str)
(setq objlist (vlr-owners obj_reactor)
str (vla-get-TextString notifier-object))
(foreach obj objlist
(if (/= (vla-get-TextString obj)str)
(vla-put-TextString obj str) )    )
)
 
(defun eraseEnt (notifier-object obj_reactor parameter-list)
(alert "Ban da thuc hien lenh Erase tu doi tuong REACTOR.\nLinkText da bi huy bo : Cac Text khong con Link voi nhau !")
(vlr-owner-remove  obj_reactor notifier-object)
(vlr-remove obj_reactor)
(princ)
)
 

Load thì không bị nữa nhưng thực hiện lệnh thì lại bị thông báo sau: ; error: too many arguments

Command:
LINKT
; error: too many arguments

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  

×