求柱梁名称加前缀或后缀lsp程序
本帖最后由 品茗新秀 于 2012-9-4 18:26 编辑求名称加前缀或后缀lsp程序
本帖最后由 yjr111 于 2012-9-4 14:22 编辑
(DEFUN GETSTR(SS sign QZ HZ)
(REPEAT (SETQ N(SSLENGTH SS))
(SETQ STR(CDR(ASSOC 1(SETQ S(ENTGET(SETQ E(SSNAME SS(SETQ N(1- N)))))))))
(SETQ NUM (STRLEN STR))
(IF(and(SETQ POS(vl-string-search sign STR))
(not(vl-string-search "QL" STR))
(not(vl-string-search "GZ" STR))
)
(PROGN
(SETQ POS1(vl-string-search "(" STR))
(IF (/= QZ "")
(SETQ NEWSTR(STRCAT QZ(SUBSTR STR 1 (1+ POS))(SUBSTR STR (+ 3 POS))))
(IF POS1
(SETQ NEWSTR(STRCAT (SUBSTR STR 1 POS1)HZ(SUBSTR STR (1+ POS1))))
(SETQ NEWSTR(STRCAT (SUBSTR STR 1 POS1)HZ))
)
)
(ENTMOD (SUBST (CONS 1 NEWSTR)(ASSOC 1 S)S))
(ENTUPD E)
)
)
)
)
(DEFUN C:TT()
(COMMAND "UNDO" "BE")
(PROMPT"\n选择梁柱")
(IF (SETQ SS(SSGET'((0 . "*TEXT"))))
(PROGN
(initget "LQ LH ZQ ZH")
(SETQ KEY(GETKWORD"\n选择梁柱及前后缀:[梁前缀(LQ)/梁后缀(LH)/柱前缀(ZQ)/柱后缀(ZH)]"))
(COND
((= KEY "LQ")
(SETQ QZ (GETSTRING"\n输入前缀"))
(GETSTR SS "L" QZ "")
)
((= KEY "LH")
(SETQ HZ (GETSTRING"\n输入后缀"))
(GETSTR SS "L" "" HZ)
)
((= KEY "ZQ")
(SETQ QZ (GETSTRING"\n输入前缀"))
(GETSTR SS "Z" QZ "")
)
((= KEY "ZH")
(SETQ HZ (GETSTRING"\n输入后缀"))
(GETSTR SS "Z" "" HZ)
)
)
)
)
(COMMAND "UNDO" "E")
(PRINC)
)
本帖最后由 品茗新秀 于 2012-9-4 06:04 编辑
测了一下,次梁和连梁也要能加前后缀 Ñ¡ÔñáoÖù?不懂 程序中有非中文、非英文字符,能否改改 来晚了 非常好的代码,谢谢分享好的代码
页:
[1]