明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: caoyin

【分享明经——发程序、拜新年专贴】

    [复制链接]
 楼主| 发表于 2009-2-8 13:15 | 显示全部楼层
本帖最后由 作者 于 2009-2-8 13:21:41 编辑

就是vlax-ename->vla-object,我本帖中没有使用en2obj啊
发表于 2009-2-10 08:33 | 显示全部楼层
本帖最后由 作者 于 2009-2-10 9:01:10 编辑

缺少函数(en2obj)把 en2obj 改为 vlax-ename->vla-object 即可。
见下面这个,其实你写这么多代码,和这个一样:不适用于不等比例缩放的块
  1. (defun c:bcopy (/ e el ss p1)
  2.   (setq ss (ssadd))
  3.   (while (and (setq e (nentselp "\n选择块内实体: "))
  4.        (= (length e) 4)
  5.   )
  6.     (setq el (entget (car e)))
  7.     (entmake el)
  8.      ;(vla-transformby ;该函数不能用于不等比例缩放的实体对象
  9.      ; (vlax-ename->vla-object (entlast))
  10.      ;(vlax-tmatrix (caddr e))
  11.      ;)
  12.     (setq ss (ssadd (entlast) ss))
  13.   )
  14.   (if (and SS (/= (sslength SS) 0))
  15.     (progn
  16.       (if (setq P1 (getpoint "\n指定基点 <原位置>: "))
  17. (progn
  18.    (command "_.move" SS "" "_non" P1)
  19.    (princ "指定第二点: ")
  20.    (command "\")
  21. )
  22.       )
  23.       (command "_.select" SS "")
  24.     )
  25.   )
  26.   (princ)
  27. )
 楼主| 发表于 2009-2-11 09:03 | 显示全部楼层

 

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2009-2-17 17:42 | 显示全部楼层
老大,我9楼和10楼的程序下载率最高哟,给个什么奖给我呀,caoyin老大
发表于 2009-3-2 13:03 | 显示全部楼层
本帖最后由 作者 于 2009-3-2 16:24:11 编辑

Delete the spaces before and after the strings 删除字符串中前后的空格
Cutting string of spaces before and after 裁剪字符串中前后的空格
Trimming spaces before and after the strings 修剪字符串中前后的空格
  1. ;; Delete the spaces before and after the strings 删除字符串中前后的空格
  2. ;; Cutting string of spaces before and after 裁剪字符串中前后的空格
  3. ;; Trimming spaces before and after the strings 修剪字符串中前后的空格
  4. ;;  by 小李子 木子CAD 2009.3.2
  5. (defun trim32B&A (str / lst)
  6.   ;;先检测字符串前后有没有包含空格
  7.   (if (or (wcmatch str " *") (wcmatch str "* "))
  8.     (progn
  9.       (setq lst (vl-string->list str))
  10.       (while (= 32 (car lst))
  11. (setq lst (cdr lst))
  12.       )
  13.       (setq lst (reverse lst))
  14.       (while (= 32 (car lst))
  15. (setq lst (cdr lst))
  16.       )
  17.       (vl-list->string (reverse lst))
  18.     )
  19.     str
  20.   )
  21. )
多谢caoyin提醒,例程:
_$ (vl-list->string (vl-string->list "  adf 123  4648   dddd   "))
"  adf 123  4648   dddd   "
_$ (vl-string-left-trim " \t\n" "\n\t STR ")
"STR "
_$ (vl-string-left-trim "12456789" "12463CPO is not R2D2")
"3CPO is not R2D2"
_$ (vl-string-left-trim " " "     There are too many spaces here")
"There are too many spaces here"
_$ (vl-string-right-trim " \t\n" " STR \n\t ")
" STR"
_$ (vl-string-right-trim "1356789" "3CPO is not R2D267891")
"3CPO is not R2D2"
_$ (vl-string-right-trim " " "There are too many spaces here      ")
"There are too many spaces here"

只要用这个函数就可以删除字符串的前后空格了:(vl-string-trim " " str) 删除前后空格
发表于 2009-3-2 13:43 | 显示全部楼层

;; 去除字符串中的所有空格
;; by 小李子 2009-2-28
(defun trim32str (str /)
  (repeat (strlen str)
    (setq str (vl-string-subst "" " " str 0))
  )
)

发表于 2009-3-2 13:44 | 显示全部楼层
本帖最后由 作者 于 2009-3-2 13:48:10 编辑

;; 删除去除字符串中的所有空格
;; by 小李子 木子CAD 2009-3-2
(defun No32strs (str / no item NewLst)
  (setq no 0 NewLst "")
  (repeat (strlen str)
    (setq item (substr str (setq no (1+ no)) 1))
    (if (/= item " ")
      (setq NewLst (strcat NeWLst item))
    )
  )
  NewLst
)

发表于 2009-3-2 13:47 | 显示全部楼层

最简洁代码为:

;; 删除去除字符串中的所有空格
;; by 小李子 木子CAD 2009-3-2
(defun strs->No32 (str /)
  (vl-list->string (vl-remove 32 (vl-string->list str)))
)

 楼主| 发表于 2009-3-2 14:32 | 显示全部楼层
jxphklibin发表于2009-3-2 13:03:00Delete the spaces before and after the strings 删除字符串中前后的空格Cutting string of spaces before and after 裁剪字符串中前后的空格Trimming spaces before and after the strings 修

删除前后空格用 vl-string-left-trim   vl-string-right-trim就好了

发表于 2009-3-3 17:31 | 显示全部楼层

都是强人呀

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

本版积分规则

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

GMT+8, 2024-5-2 20:54 , Processed in 0.305325 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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