明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1446|回复: 11

[LISP群(2)] 2013-05-09 明经 AutoLISP 编程②群(177027547) 群聊记录:(setq s1 (ssget "X" '((0.&

 关闭 [复制链接]
发表于 2013-5-9 10:14 | 显示全部楼层 |阅读模式
风之子 10:14:24
(setq s1 (ssget "X" '((0."INSERT")(66."1")))) 老是提示列表错误,哪里有问题呀,谢谢
 楼主| 发表于 2013-5-9 10:34 | 显示全部楼层
[198526]DZ 10:34:47
0.要 0 .
66.要 66 .
中间要空格开
跟各位大师请教一个问题
我用燕秀的文字分解功能把文字分解成多段线,为什么在有的电脑里直接分解成直线了,我电脑分解出来是多段线,这是有系统变量控制的吗?我找了好久也没找到相应的系统变量
风之子 10:41:50
谢谢
 楼主| 发表于 2013-5-9 12:41 | 显示全部楼层
创雅 12:41:12
多了一个括号
 楼主| 发表于 2013-5-9 14:31 | 显示全部楼层
风之子 14:31:32
(vl-load-com)
(defun c:11()
(SETVAR "CMDECHO" 0)
(setq SS (ssget "X" (list (cons 0 "INSERT,TEXT"))));;;附带处理单行文本
(setq S1 (ssget "" '((0 . "INSERT") (66 . 1))));;;过滤出属性块
(vl-cmdf "SELECT" SS "")
(SETQ S88 (SSGET ""));;;过滤出文本
(setq n1 (sslength s1))
(setq n2 (sslength s88))
(setq ii 0)  
(setq i 0)  
(setq s2 (ssname s1 0))
(setq s20 (getstring "\n请输入要查找的文本内容:"))
(setq s21 (getstring "\n请输入要替换的文本内容:"))
(if s1
  (progn
    (repeat n1
      (setq s2 (ssname s1 i))
      (setq s4 (entnext s2))
      (while s4
        (setq s5 s4)
        (setq s4 (entget s4))
        (setq s15 (cdr (assoc 1 s4)))
     
        (if (/= (vl-string-search s20 s15) nil)
          (progn
        (setq s10 s4)
        (setq s16 (vl-string-subst s21 s20 s15))
        (setq s5 (cons 1 s16))
        (setq s4 (subst s5 (assoc 1 s4) s4))
        (entmod s4)
          )
        )
        (setq s4 (entnext s5))
      )
      (setq i (+ i 1))
    )
  )
)
(if s88
  (progn
    (repeat n2
      (setq s82 (ssname s88 i))
      (setq s83 (entget s82))
      (setq s84 (cdr (assoc 1 s83)))
      (if (/= (vl-string-search s20 s84) nil)
    (progn
      (setq s85 (vl-string-subst s21 s20 s84))
      (setq s86 (cons 1 s85))
      (setq s83 (subst s86 (assoc 1 s83) s83))
      (entmod s83)
    )
      )     
      (setq i (+ i 1))
    )
  )
)
(terpri)
(SETVAR "CMDECHO" 1)
(princ)


文字部分可以了,属性块还是不循环,哪位高手帮看一下,谢谢
 楼主| 发表于 2013-5-9 14:44 | 显示全部楼层
cre8or 14:44:07
[qqimg]oldimg/{CE00DED6-84E4-2ED7-FB37-029E8E00D5B5}.jpg[/qqimg]
谁用cad2008 帮忙传个开发人员文档过来好吗 我的坏了
紧急阿 请求
cre8or 14:45:21
百度没有
 楼主| 发表于 2013-5-9 15:34 | 显示全部楼层
云 15:34:14
下面是一个带公切线的两个圆(即皮带轮)程序,加载时提示表有缺陷。请帮助找出,谢谢!

(defun dtr(a)
  (* a (/ pi 180.0)
  )
  (defun c:belt(/ r1 r2 d a c1 x1 x2 c2 p1 p2 p3 p4)
    (setvar "cmdecho" 0)
    (graphscr)
    (setq r1 (getdist "  enter radius of small pulley:"))
    (setq r2 (getdist "  enter radius of large pulley:"))
    (setq d (getdist "  enter distance between pulleys:"))
    (setq a (getangle "  enter angle of pulleys:"))
    (setq c1 (getpoint "  enter center of small puleys:"))
    (setq x1 (- r2 r1))
    (setq x2 (sqrt (- (* d d) (* (- r2 r1)(- r2 r1)))))
    (setq ang (atan (/ x1 x2)))
    (setq c2 (polar c1 a d))
    (setq p1 (polar c1(+ ang a (dtr 90)) r1))
    (setq p3 (polar c1(- (+ a (dtr 270)) ang) r1))
    (setq p2 (polar c2(+ ang a (dtr 90)) r2))
    (setq p4 (polar c2(- (+ a (dtr 270)) ang) r2))
    (command "circle" c1 p3)
    (command "circle" c2 p2)
    (command "line" p1 p2"")
    (command "line" p3 p4"")
    (setvar "cmdecho" 1)
    (princ)
    )
风之子 15:41:24
(defun dtr(a)
  (* a (/ pi 180.0)
  ))
  (defun c:belt(/ r1 r2 d a c1 x1 x2 c2 p1 p2 p3 p4)
    (setvar "cmdecho" 0)
    (graphscr)
    (setq r1 (getdist "  enter radius of small pulley:"))
    (setq r2 (getdist "  enter radius of large pulley:"))
    (setq d (getdist "  enter distance between pulleys:"))
    (setq a (getangle "  enter angle of pulleys:"))
    (setq c1 (getpoint "  enter center of small puleys:"))
    (setq x1 (- r2 r1))
    (setq x2 (sqrt (- (* d d) (* (- r2 r1)(- r2 r1)))))
    (setq ang (atan (/ x1 x2)))
    (setq c2 (polar c1 a d))
    (setq p1 (polar c1(+ ang a (dtr 90)) r1))
    (setq p3 (polar c1(- (+ a (dtr 270)) ang) r1))
    (setq p2 (polar c2(+ ang a (dtr 90)) r2))
    (setq p4 (polar c2(- (+ a (dtr 270)) ang) r2))
    (command "circle" c1 p3)
    (command "circle" c2 p2)
    (command "line" p1 p2"")
    (command "line" p3 p4"")
    (setvar "cmdecho" 1)
    (princ)
    )
你现在试一下。
[仲文玉][仲文玉]wygjx 15:42:55
少个闭括号
Angel wings 丶﹏ 15:43:49
我想问下 我自己写的lisp文件放在电脑里面不想让人家看 怎么做到?
加密
和光同尘 15:46:09
p编译成vlx
Angel wings 丶﹏ 15:46:23
vlx不会...
唉 再研究研究把握
cre8or 15:52:01
说到我就问问 那个独立名称空间vlx和普通的vlx有什么不同
Angel wings 丶﹏ 15:54:38
哇  qq还有这个功能阿!!
Angel wings 丶﹏ 15:56:39
对了
我cad社区的帐号
被禁止发言了
找谁解除阿?
Angel wings 丶﹏ 15:57:58
[qqimg]oldimg/{9E3E481C-2B1C-F8D8-7AC7-322E754A4549}.jpg[/qqimg]
这个怎么办啊
 楼主| 发表于 2013-5-9 16:09 | 显示全部楼层
[【KAIXIN】][【KAIXIN】]炫翔 16:09:12
找管理
Angel wings 丶﹏ 16:09:31
只有mccad能解除吗?
 楼主| 发表于 2013-5-9 17:24 | 显示全部楼层
cre8or 17:24:53
- -
 楼主| 发表于 2013-5-9 20:47 | 显示全部楼层
[ZZXXQQ] 20:47:48
(vl-load-com)
(defun c:11()
 (SETVAR "CMDECHO" 0)
 (setq SS (ssget "X" (list (cons 0 "INSERT,TEXT"))));;;附带处理单行文本
 (setq S1 (ssget "" '((0 . "INSERT") (66 . 1))));;;过滤出属性块
 (vl-cmdf "SELECT" SS "")
 (SETQ S88 (SSGET "" '((0 . "TEXT"))));;;过滤出文本
 (setq i -1)  
 (setq s2 (ssname s1 0))
 (setq s20 (getstring "\n请输入要查找的文本内容:"))
 (setq s21 (getstring "\n请输入要替换的文本内容:"))
 (if s88 (progn
  (repeat (sslength s88)
   (setq s83 (entget (ssname s88 (setq i (1+ i)))))
   (setq s84 (cdr (assoc 1 s83)))
   (if (vl-string-search s20 s84)
    (entmod (subst (cons 1 (vl-string-subst s21 s20 s84)) (assoc 1 s83) s83))
   )
  )
 ))  
 (if s1 (progn
  (setq i -1)  
  (repeat (sslength S1)
   (setq ENT (entget (ssname S1 (setq I (1+ I))))
         ENT1 ENT)
   (while (/= (cdr(assoc 0 (setq ENT1 (entget(entnext(cdr(assoc -1 ENT1))))))) "SEQEND")
    (if (= (cdr(assoc 0 ENT1)) "ATTRIB") (progn
     (setq s15 (cdr(assoc 1 ent1)))
     (if (vl-string-search s20 s15) (progn
      (entmod (subst (cons 1 (vl-string-subst s21 s20 s15)) (assoc 1 ent1) ent1))
      (entmod ent)
     ))
    ))
   )
  )
 ))
 (terpri)
 (SETVAR "CMDECHO" 1)
 (princ)
)
 楼主| 发表于 2013-5-9 21:03 | 显示全部楼层
cre8or 21:03:21
这是干吗的? 提取数字?
[ZZXXQQ] 21:04:41
风之子(531415703) 2013-5-9 14:34:12
文字部分可以了,属性块还是不循环,哪位高手帮看一下,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-28 03:49 , Processed in 0.609069 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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