Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
9 replies to this topic

#1 buithengan1

buithengan1

    biết vẽ line

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

Đã gửi 06 January 2015 - 05:07 PM

(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


  • 0

#2 Tot77

Tot77

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 990 Bài viết
Điểm đánh giá: 498 (tốt)

Đã gửi 08 January 2015 - 08:50 AM

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)
)

  • 1

#3 buithengan1

buithengan1

    biết vẽ line

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

Đã gửi 08 January 2015 - 12:04 PM

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


  • 0

#4 pawuta

pawuta

    biết lệnh move

  • Members
  • PipPipPip
  • 126 Bài viết
Điểm đánh giá: -12 (hơi kém)

Đã gửi 17 April 2015 - 11:19 AM

để tắt nền background ngay text link làm sao vậy bạn


  • 0

#5 Tot77

Tot77

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 990 Bài viết
Điểm đánh giá: 498 (tốt)

Đã gửi 17 April 2015 - 12:33 PM

Cho FIELDDISPLAY = 0


  • 1

#6 pawuta

pawuta

    biết lệnh move

  • Members
  • PipPipPip
  • 126 Bài viết
Điểm đánh giá: -12 (hơi kém)

Đã gửi 17 April 2015 - 12:55 PM

cảm ơn bạn

 

Cho FIELDDISPLAY = 0

cảm ơn bạn


  • 0

#7 conghoa

conghoa

    biết lệnh attdef

  • Members
  • PipPipPipPipPipPip
  • 411 Bài viết
Điểm đánh giá: 88 (tàm tạm)

Đã gửi 17 April 2015 - 12:55 PM

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)  )

  • 0

#8 Tot77

Tot77

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 990 Bài viết
Điểm đánh giá: 498 (tốt)

Đã gửi 17 April 2015 - 01:16 PM

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)
)
 

  • 0

#9 conghoa

conghoa

    biết lệnh attdef

  • Members
  • PipPipPipPipPipPip
  • 411 Bài viết
Điểm đánh giá: 88 (tàm tạm)

Đã gửi 17 April 2015 - 01:33 PM

 

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

  • 0

#10 Tot77

Tot77

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 990 Bài viết
Điểm đánh giá: 498 (tốt)

Đã gửi 17 April 2015 - 02:43 PM

Có lẽ do trình download của CV thêm nhiều ký tự lạ nên lsp bị lỗi, bạn down lại.

http://www.cadviet.c...27168_linkt.rar


  • 1