KataM 发表于 2022-7-5 20:30:05

属性文本字符串到字段

大家好,很抱歉我的英语不好!
这是我创建的lisp例程,用于插入具有属性的块。第一个属性是当前文件名,不带文件扩展名。我需要这个属性的值是一个字段,而不是一个文本字符串,但我不知道如何修改“fext”变量来做到这一点。
块名为identiant,属性标记为PAEPCODE。
 
(defun c:ai ()
(vl-load-com)
   (setvar "luprec" 2)
   (setvar "clayer" "510_textes légendes")
   (if (= (setq txtcam (car (entsel "\n Nr camera: "))) nil)
       (setq nrcam "")
       (progn
         (setq nrcam (cdr (assoc 1 (entget txtcam))))
         (prompt (strcat "\n" " " nrcam))
       )
   )
   (if (= (setq txttipcam (car (entsel "\n Tip camera: "))) nil)
       (setq tipcam "")
       (progn
         (setq tipcam (cdr (assoc 1 (entget txttipcam))))
         (prompt (strcat "\n" " " tipcam))
       )
   )
   (if (= (setq txth (car (entsel "\n Inaltime camera: "))) nil)
       (setq hcam "")
       (progn
         (setq enth (entget txth))
         (setq npr (cdr (assoc 1 enth)))
         (setq pcar (substr npr 1 4))
         (if (= pcar "HSFP")
               (setq hcam (substr npr 6))
               (if (= pcar "HSP ")
                   (setq hcam (substr npr 5))
                   (setq hcam npr)
               )
         )
         (prompt (strcat "\n" " " hcam))
       )
       ;(setq hcam (cdr (assoc 1 (entget txth))))
   )
   (setq nddw (getvar "dwgname"))
   (setq fext (substr nddw 1 (- (strlen nddw) 4)))
   (setq plli (CAR (ENTSEL "\nPick polyline: ")))
   (setq arrea (VLA-GET-AREA (VLAX-ENAME->VLA-OBJECT plli)))
   (command "insert" "Identifiant" pause "" "" "" fext nrcam tipcam arrea hcam "chauffé")
   (princ)
)

Tharwat 发表于 2022-7-5 20:56:20

欢迎来到CADTutor。
 
首先修改代码以包含标签代码阅读
 
回到您的问题,只需将变量ftext替换为“%%”

KataM 发表于 2022-7-5 21:14:40

谢谢,这解决了我的问题。我仅使用tc1和fn2修改tc3和fn7,如下所示:
(setq fext "%<\\AcVar Filename \\f \"%tc1%fn2\">%" )

Tharwat 发表于 2022-7-5 21:43:36

 
太好了,不客气。
页: [1]
查看完整版本: 属性文本字符串到字段