Tomislav 发表于 2022-7-5 18:15:16

co中的联机文本问题

你好
我有一个可能很愚蠢的问题,但我到处都找不到答案。
当你有这行代码时
(princ "\nSelect block for attribute extraction : ")
(setq bl (ssget ":S" '((0 . "INSERT")(66 . 1)(8 . "cssa"))))

它在命令栏中显示为“选择用于属性提取的块:”
然后acad在新行中写下“选择对象:”,那么有没有办法省略第二行,使其只显示我的文本?

marko_ribar 发表于 2022-7-5 18:26:34

不,这是(ssget)不能忽略的主要功能。。。或者,您可以尝试使用(entsel)函数和(if)的组合来检查过滤器(插入、属性、层-“cssa”)。。。

Tomislav 发表于 2022-7-5 18:31:55

对唯一的问题是,广告的代码量
不过,谢谢你的回复

satishrajdev 发表于 2022-7-5 18:36:13

您可以使用Lee Mac的功能:-
(DEFUN LM:SSGET (MSG PARAMS / SEL)
   (PRINC MSG)
   (SETVAR 'NOMUTT 1)
   (SETQ SEL (VL-CATCH-ALL-APPLY 'SSGET PARAMS))
   (SETVAR 'NOMUTT 0)
   (IF        (NOT (VL-CATCH-ALL-ERROR-P SEL))
   SEL
   )
)
 
示例:-
(LM:SSGET "\nSelect block for attribute extraction : " '(":S" ((0 . "INSERT")(66 . 1)(8 . "cssa"))))

Tomislav 发表于 2022-7-5 18:43:41

好吧,那太好了。。。谢谢你们和李。。。我从没想过要把它变成函数

Lee Mac 发表于 2022-7-5 18:48:28

不客气!

Tomislav 发表于 2022-7-5 18:55:27

嗯,我用LM:SSGET做了一个Lisp程序的小口吃,但它不起作用,它只是贯穿其中,有什么想法吗?
(defun c:incssabl()

   (defun *error* (msg)
   (princ msg)
) ;_ defun

(setq inspt(getpoint"\nSelect insertation point : "))
(setq station(cdr(assoc 1 (entget(ssname(lm:ssget "\nSelect STATION : "
               '("S:" '((0 . "TEXT,MTEXT"))))0)))))
(setq height(cdr(assoc 1 (entget(ssname(lm:ssget "\nSelect HEIGHT on table : "
               '("S:" '((0 . "TEXT,MTEXT"))))0)))))
(command "-insert" "cssabl" inspt "" "" station height)
)


(DEFUN lm:ssget (MSG PARAMS / SEL)
   (PRINC MSG)
   (SETVAR 'NOMUTT 1)
   (SETQ SEL (VL-CATCH-ALL-APPLY 'SSGET PARAMS))
   (SETVAR 'NOMUTT 0)
   (IF        (NOT (VL-CATCH-ALL-ERROR-P SEL))
   SEL
   )

)

satishrajdev 发表于 2022-7-5 19:02:16

 
从实体列表中删除并重试一次。。。
(LM:SSGET "\nSelect STATION : " '(":E:S" ((0 . "TEXT,METXT"))))

Lee Mac 发表于 2022-7-5 19:05:47

 
除了上面Satish的回复之外,您的代码还有两个问题:
 
1.“S:”不是有效的ssget模式字符串,这应该是“:S”-您可以参考我的ssget函数参考以获取有效模式字符串的列表。
 
2.(“S:”((0。“TEXT,MTEXT”))由于第一个引号后面的表达式已标记为文字,因此在此列表中不需要第二个引号。

Tomislav 发表于 2022-7-5 19:10:37

终于有时间看到这些答案并感谢大家。。。萨蒂什和李。。。S: 是我的打字错误,把它抄到了第二个呼叫ssget的地方,所以犯了两个错误
我也没有注意到复制/粘贴导致配额加倍的原因,但现在,当你指出这一点时,很明显,再次感谢你的帮助
p、 李关于非法物品的教程很棒。。
页: [1] 2
查看完整版本: co中的联机文本问题