明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: wuwubaibai

[提问] 尾数.00字串去除(已解决多谢飞雪神光大大帮忙及各位大大的解答)

[复制链接]
发表于 2023-12-31 09:12:40 | 显示全部楼层
本帖最后由 llsheng_73 于 2023-12-31 09:18 编辑
wuwubaibai 发表于 2023-12-31 00:29
小弟不才~使用大大的代码乱套一通
因为还要变更图层
结果套不出来~惭愧

entmod里边再加上8组指定图层名就行,entmake,entmakex,entmod处理dxf数据时,如果涉及8组,不管8组指定的图层是否已存在都能成功,如果所指定的图层不存在,这三个函数均会自动创建这个图层,当然图层特性不能指定,全是用的图层DXF数据的缺省值
发表于 2023-12-31 11:31:43 | 显示全部楼层
wuwubaibai 发表于 2023-12-31 00:27
下面的代码不敢删除是因为参考的代码有写上这段(如下)~让我以为没了这段那我就不能变更图层了~所以不敢删 ...

你这是哪个版本的CAD  第一次见这样的提示 "2_正折" 对应的 sObjtype  CAD中是不存在这种图元类型的
 楼主| 发表于 2023-12-31 14:27:33 | 显示全部楼层
llsheng_73 发表于 2023-12-31 09:12
entmod里边再加上8组指定图层名就行,entmake,entmakex,entmod处理dxf数据时,如果涉及8组,不管8组指定的 ...

大大您说得太高深了~我看代码是完全看不懂的~如要变图层我就找图层相关文章去复制贴上~所以才无法直接带入大大您的代码
 楼主| 发表于 2023-12-31 14:28:59 | 显示全部楼层
飞雪神光 发表于 2023-12-31 11:31
你这是哪个版本的CAD  第一次见这样的提示 "2_正折" 对应的 sObjtype  CAD中是不存在这种图元类型的

2016版本~所以请问大大我这需要改哪里呢!?谢谢
发表于 2023-12-31 15:16:14 | 显示全部楼层
发表于 2023-12-31 15:58:23 | 显示全部楼层
本帖最后由 飞雪神光 于 2023-12-31 16:00 编辑
wuwubaibai 发表于 2023-12-31 14:28
2016版本~所以请问大大我这需要改哪里呢!?谢谢

不清楚  不知道你要做什么 你的需求 字串去除 .00都完成了 你还在弄什么
 楼主| 发表于 2023-12-31 22:12:18 | 显示全部楼层
飞雪神光 发表于 2023-12-31 15:58
不清楚  不知道你要做什么 你的需求 字串去除 .00都完成了 你还在弄什么

把那个出现的错误消除~看到错误讯息就觉得是不是会有其他影响
发表于 2023-12-31 22:37:05 | 显示全部楼层
wuwubaibai 发表于 2023-12-31 22:12
把那个出现的错误消除~看到错误讯息就觉得是不是会有其他影响

把那个CClay 整个删掉 也就是用之前的我发的就可以了  还是你还有别的需求? 这个CClay不能用 代码不合逻辑
 楼主| 发表于 2024-1-1 00:37:26 | 显示全部楼层
飞雪神光 发表于 2023-12-31 22:37
把那个CClay 整个删掉 也就是用之前的我发的就可以了  还是你还有别的需求? 这个CClay不能用 代码不合逻 ...

有的~我还需要把 "2_正折" 图层替换成" bend"图层颜色为211
发表于 2024-1-1 10:03:10 | 显示全部楼层
  1. (defun c:de3 (/ a lm-entmake-layer ss ss-enlst str wz wz0 wz1 wz2 wz3)
  2.         (defun lm-entmake-layer(datalst)
  3.                 (mapcar'set '(tc co) datalst)
  4.                 (or co (setq co 256))
  5.                 (or tc (setq tc (getvar "clayer")))
  6.                 (entmake (list '(0 . "LAYER")'(100 . "AcDbSymbolTableRecord")'(100 . "AcDbLayerTableRecord")(cons 2 tc)(cons 62 co)'(70 . 0)'(6 . "CONTINUOUS")))
  7.         )
  8.         (defun ss-enlst (ss / enlst)
  9.                 (cond
  10.                         ((= (type ss) 'PICKSET)
  11.                                 (vl-remove-if-not '(lambda (x) (= (type x) 'ENAME)) (mapcar 'cadr (ssnamex SS)))
  12.                         )
  13.                         ((= (type ss) 'LIST)
  14.                                 (setq enlst (ssadd))
  15.                                 (last (mapcar '(lambda (x) (ssadd x enlst)) ss))
  16.                         )
  17.                 )
  18.         )
  19.         (if (null (tblsearch "layer" "2_正折"))
  20.                 (lm-entmake-layer (list "2_正折" 211))
  21.         )
  22.         (setq a (ssget "X" '((8 . "2_正折"))))
  23.         (foreach ty (ss-enlst a)
  24.                 (vla-put-Layer (vlax-ename->vla-object ty) "bend")
  25.         )
  26.   (setq ss (ssget '((0 . "*TEXT") (1 . "上DOWN*,下DOWN*"))))
  27.   (foreach ty (vl-remove-if-not '(lambda (x) (= (type x) 'ENAME)) (mapcar 'cadr (ssnamex ss)))
  28.     (setq str (vla-get-TextString (vlax-ename->vla-object ty)))
  29.     (setq wz (vl-string-search "." str))
  30.     (if wz
  31.       (progn
  32.         (setq wz0 (substr str (+ wz 1) 3))
  33.         (if (= wz0 ".00")
  34.           (progn
  35.             (setq wz1 (substr str 1 wz))
  36.             (setq wz2 (substr str (+ wz 4)))
  37.             (setq wz3 (strcat wz1 wz2))
  38.             (vla-put-TextString (vlax-ename->vla-object ty) wz3)
  39.           )
  40.         )
  41.       )
  42.     )
  43.   )
  44.   (princ)
  45. )
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 02:54 , Processed in 0.169594 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表