LISP批量选择文字,改文字,代码用不了。本人刚学LISP,是逻辑错误还是函数用错了啊,求帮忙看下。 lisp程序图元选取问题

\u7528lisp\u8bed\u8a00\u5982\u4f55\u6279\u91cf\u4fee\u6539\u6587\u5b57\u4e2d\u7684\u67d0\u4e00\u4e2a\u5b57\uff1f\u8bf7\u9ad8\u624b\u6307\u6559\uff0c\u4e07\u5206\u611f\u8c22\uff01

\u7528ssget\u53d6\u9009\u62e9\u96c6
\u7528assoc\u628a\u5b57\u53d6\u51fa\u6765\uff0c\u7136\u540e\u6362\u6389
\u7528subst\u628aentget\u51fa\u6765\u7684\u8868\u66ff\u6362\u6389
\u7136\u540eentmod\u6216entupt\uff0c\u66f4\u65b0\u4e0b

\u4e00\u822c\u6709\u4e24\u4e2a\u65b9\u6848
\u7b2c\u4e00\u4e2a\u65b9\u6848\uff1a\u7528AutoLisp\u65b9\u6848\uff0c\u9996\u5148\u7528 \u53d6\u5f97\u56fe\u5757\u8fd9\u4e2a\u56fe\u5143\uff0c\u7136\u540e\u7528 entnext \u9010\u4e00\u627e\u5230\u5c5e\u6027\u5757\u6765\u627e\u5230\u5176\u4e2dlength\u7684\u5c5e\u6027\uff0c\u7136\u540e\u5c06\u5b83\u7684\u503c\u7ed9\u627e\u51fa\u6765\uff0c\u7136\u540e\u8fdb\u884c\u8fd0\u7b97\uff0c\u6ce8\u610f entnext \u7684\u8fd0\u7528\u3002\u8fd9\u4e2a\u5f88\u7b80\u5355\uff0c\u4f60\u81ea\u5df1\u5e94\u8be5\u5199\u5427\u3002
\u7b2c\u4e8c\u4e2a\u65b9\u6848\uff1a\u7528VisualLisp\u65b9\u6848\uff0c\u6ce8\u610fvla-getattributes\uff0cvlax-variant-value\uff0cvlax-safeArray->list\u8fd9\u51e0\u4e2a\u51fd\u6570\u7684\u8fd0\u7528\uff0c\u4ee5\u4e0b\u4e3a VisualLisp\u7684\u4f8b\u5b50
(Defun C:Test ()
(setq en0 (car (entsel)))
;;\u6b64\u5904\u8bf7\u9009\u6709\u5c5e\u6027\u5b9a\u4e49\u7684\u56fe\u5757
(setq vn0 (vlax-ename->vla-object en0))
(setq lstVar (vla-getattributes vn0))
(setq lstAttrs (vlax-safeArray->list (vlax-variant-value lstVar)))
(setq TextString nil)
(foreach attrlstAttrs
(setq TagString (vla-get-TagString attr))
(if(equal TagString "length");\u6b64\u5904\u4e3a\u4f60\u60f3\u8981\u7684\u5143\u7d20
(setq TextString (vla-get-TextString attr))
)
)
(if TextString
(princ (strcat "The content of length = " TextString))
(princ "\u6ca1\u6709\u627e\u5230length ")
)
(prin1)
)

提取数据库里的信息,函数用错了
(SETQ T1 (ENTGET E1)
T2 (ENTGET E2)
)
E1与E2都是一个数据集合,不能用ENTGET直接读取,应该使用sslength函数,将该集合的数据进行统计,已确定有多少个图元数据,然后用ssname函数进行提取,程序这样改:
(DEFUN C:dff ()
(setq index 0)
(SETQ E1 (SSGET "X" '((0 . "*TEXT") (1 . "宗地代码*")))
E2 (SSGET "X" '((0 . "*TEXT") (1 . "513*")))
)
(setq sl1 (sslength E1))
(setq sl2 (sslength E2))
(setq ent1 (ssname E1 index))
;;;;index为序号变量,初始设置为0,代表第一个图元
(setq ent2 (ssname E2 index))
;;;;index为序号变量,初始设置为0,代表第一个图元
(TEXTJOIN ent1 ent2)
(princ)
)
(DEFUN TEXTJOIN (ent1 ent2 / T1 T2)
(SETQ T1 (ENTGET ent1)
T2 (ENTGET ent2)
)
(ENTMOD
(SUBST (CONS 1 (STRCAT (CDR (ASSOC 1 T1)) (CDR (ASSOC 1 T2))))
(ASSOC 1 T1)
T1
)
)

(ENTDEL ent2)
)
这个程序还不完整,可以再添加循环程序,自动执行数据库的下一个数据
而且有点疑问,E1与E2之间有什么联系吗,因为你是直接对整个图形进行条件提取数据
所以它们之间的关系很重要,比如坐标关系等等,最后还直接的删除了一个图元,这样的删除是随机的

  • LISP鎵归噺閫夋嫨鏂囧瓧,鏀规枃瀛,浠g爜鐢ㄤ笉浜嗐傛湰浜哄垰瀛ISP,鏄昏緫閿欒杩樻槸鍑芥暟...
    绛旓細鎻愬彇鏁版嵁搴撻噷鐨勪俊鎭紝鍑芥暟鐢ㄩ敊浜 (SETQ T1 (ENTGET E1)T2 (ENTGET E2))E1涓嶦2閮芥槸涓涓暟鎹泦鍚堬紝涓嶈兘鐢‥NTGET鐩存帴璇诲彇锛屽簲璇ヤ娇鐢╯slength鍑芥暟锛屽皢璇ラ泦鍚堢殑鏁版嵁杩涜缁熻锛屽凡纭畾鏈夊灏戜釜鍥惧厓鏁版嵁锛岀劧鍚庣敤ssname鍑芥暟杩涜鎻愬彇锛岀▼搴忚繖鏍锋敼锛(DEFUN C:dff ()(setq index 0)(SETQE1 (SSGET "X" '(...
  • 鎬庝箞鎵归噺淇敼cad涓殑鏂囧瓧?
    绛旓細1. 鍦–AD鐨勫懡浠よ涓緭鍏モ淪S鈥濆懡浠わ紝寮瑰嚭閫夋嫨闆嗗璇濇銆2. 鍦ㄥ璇濇涓紝鍙互閫夋嫨瑕侀夋嫨鐨勫璞$被鍨嬶紝渚嬪鏂囧瓧銆佺嚎娈点佸浘褰㈢瓑銆3. 杩樺彲浠ヨ繘涓姝ラ夋嫨瑕侀夋嫨鐨勫璞$殑灞炴э紝渚嬪棰滆壊銆佸浘灞傘佺嚎鍨嬬瓑銆4. 鐐瑰嚮鈥滅‘瀹氣濇寜閽悗锛孋AD灏嗛夋嫨鎵鏈夌鍚堟潯浠剁殑瀵硅薄骞跺垱寤轰竴涓夋嫨闆嗐傞櫎浜嗕娇鐢ㄩ夋嫨闆嗗姛鑳藉锛岀敤鎴疯繕鍙...
  • 鐢lisp璇█濡備綍鎵归噺淇敼鏂囧瓧涓殑鏌愪竴涓瓧?璇烽珮鎵嬫寚鏁,涓囧垎鎰熻阿!
    绛旓細鐢╯sget鍙閫夋嫨闆 鐢╝ssoc鎶婂瓧鍙栧嚭鏉ワ紝鐒跺悗鎹㈡帀 鐢╯ubst鎶奺ntget鍑烘潵鐨勮〃鏇挎崲鎺 鐒跺悗entmod鎴杄ntupt锛屾洿鏂颁笅
  • 鐢lisp璇彞濡備綍淇敼澶╂鐨鏂囧瓧鍜岄鑹查棶棰?
    绛旓細Lisp璇█鍙互閫氳繃璋冪敤AutoCAD鐨凙PI鍑芥暟鏉ヤ慨鏀瑰ぉ姝h蒋浠朵腑鐨勬枃瀛楁牱寮忓拰棰滆壊銆備笅闈㈡槸涓涓ず渚婰isp璇彞锛岀敤浜庝慨鏀瑰綋鍓嶉夋嫨鐨勬枃瀛楀璞$殑鏍峰紡鍜岄鑹诧細lispCopy code(defun modify-text-style-and-color ()(setq ss (ssget "_:L" '((0 . "TEXT")))(if ss (progn (setq text-style "鏂扮殑鏂囧瓧鏍峰紡") ;...
  • cad鎵归噺閫夋嫨鏂囧瓧銆佺嚎娈点佸浘褰㈡柟娉曟槸浠涔?
    绛旓細鍦–AD涓鎵归噺閫夋嫨鏂囧瓧銆佺嚎娈点佸浘褰㈡湁澶氱鏂规硶锛屼互涓嬫槸涓浜涘父鐢ㄧ殑鏂规硶锛氫娇鐢ㄩ夋嫨闆嗗姛鑳斤細鍦–AD鐨勫懡浠よ涓緭鍏モ淪S鈥濆懡浠わ紝寮瑰嚭閫夋嫨闆嗗璇濇銆傚湪瀵硅瘽妗嗕腑锛屽彲浠ラ夋嫨瑕侀夋嫨鐨勫璞$被鍨嬶紝渚嬪鏂囧瓧銆佺嚎娈点佸浘褰㈢瓑銆傝繕鍙互杩涗竴姝ラ夋嫨瑕侀夋嫨鐨勫璞$殑灞炴э紝渚嬪棰滆壊銆佸浘灞傘佺嚎鍨嬬瓑銆傜偣鍑烩滅‘瀹氣濇寜閽悗锛孋AD灏嗛夋嫨鎵鏈...
  • 璇烽棶鎮ㄦ湁lisp鍐欑殑鏂囧瓧涓嬪垝绾跨▼搴忎箞
    绛旓細));;閫夋嫨鏂囧瓧 (if (/= &kw nil) (progn (setq i 0) (repeat (sslength &kw) (setq &kw1 (entget (ssname &kw i))) (setq i (+ i 1)) (setq %k (cdr (assoc 1 &kw1))) (setq %k1 (substr %k 1 3));;妫鏌ユ枃瀛楁槸涓嶆槸鏈変笅鍒掔嚎 (if (...
  • 鐢lisp鎬庝箞鎻愬彇cad涓鏂囧瓧-鍐呭-*閫氱敤绗﹀尮閰(鍊 :璁惧畾)鐢熸垚excel鏂囦欢_鐧 ...
    绛旓細(defun C:WZ ( / n ss &kw L ff %k %k1 %k2 %k3 %k4 %k5 %k6);鎵归噺閫夋嫨鏂囧瓧鍒拌浜嬫湰 (setvar "cmdecho" 0) ;;鍏抽棴鍙橀噺 (setvar "blipmode" 0);;鍏抽棴鎺у埗鐐 (vl-load-com) ;;鍔犺浇vlax鎵╁睍鍑芥暟 (setq n 0 ss '()) ;;鍙栧緱涓涓┖琛 (princ "\n璇烽夋嫨鏂囧瓧") (setq...
  • LISP閫夋嫨CAD閲岃竟鐨鏂囧瓧
    绛旓細棣栧厛浣犺鍒嗘垚涓ら儴璧板惂,浣犵殑璇彞鏈韩璇存潵鏄敊鐨.1.棣栧厛杩囨护鍑篜T鍒楄〃涓殑瀹炰綋,瑕佺敤鍒 (SSGET "CP" PT)2.鍦1鐨勭粨鏋滀腑婊ゅ嚭LBH鍥惧眰涓殑鏂囧瓧.(SSGET "P" '((CONS 0 "TEXT") (CONS 8 LBH)))
  • lisp缂栫▼鍥句腑鏂囧瓧娉ㄨ鍒╃敤鏂囨湰鎵归噺鏇挎崲
    绛旓細dwg浼犱笂鏉ワ紝鍙傝冧竴涓 杩樻湁灏辨槸txt锛屼篃鍙戜竴涓紝
  • lisp瀵煎嚭澶氳鏂囧瓧,鎬庝箞淇敼浠g爜?
    绛旓細(setq la (getstring "\n璇疯緭鍏ュ浘灞傚悕: "))(setq ss (ssget "X" (list (cons 0 "MTEXT") (cons 8 la)))(setq fi (open "C:\\cir.txt" "w"))(setq si 0)(repeat (sslength ss)(setq ct (cdr (assoc 1 (entget (ssname ss si)))(write-line ct fi)(setq si (1+ si...
  • 扩展阅读:一键免费文字转换 ... 文字排版一键生成器 ... 免费的自动排版软件 ... 创意字生成器 ... 永久免费在线文字生成器 ... 手机上p图修改文字 ... 免费文案自动生成app ... ai文案在线生成 ... 文案生成器在线生成 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网