明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1578|回复: 10

[函数] 求助各路大神指点。

[复制链接]
发表于 2020-5-6 18:09:31 | 显示全部楼层 |阅读模式
(defun ic( b1 h1 r1 p ro)
        (command "-layer""make""yh""COLOR" 30 "yh""");新建图层"翔泰"
        (command "-style""翔泰""romans,gbcbig""0.0""0.7""0.0""N""N""N");新建字体样式"yh"
        ;+++++++++++++++输入变量++++++++++++++
        ;(setq b1 (getdist"\n请输入阴角宽度:"))
        ;(setq h1 (getdist"\n请输入阴角高度:"))
        ;(setq r1 (getdist"\n请输入转角右侧长度:"));转角阴角b1xh1 IC r1
        ;(setq p (getpoint"\n输入插入点:"));转角阴角块的插入点
        ;(setq ro(getangle"\n请输入阴角的角度:"))
        ;+++++++++++++++块名转数据为字符串++++++++++++++
        (setq b (rtos b1 2 0) h (rtos h1 2 0)  r (rtos r1 2 0));转换实体数据b1、h1等为字符串数据b、h等
        (setq t1 (strcat b "x" h " LC "r));多个字符串合并为一个块名字符串
        ;+++++++++++++++判断是否存在块++++++++++++++
        (if(null(setq chkblk(tblsearch"block" t1)))
                (progn
            (setq p2(list (+ (car p) r1)(cadr p)))
            (setq p3(list(+ (car p)r1)(-(cadr p)b1)))
            (setq p4(list (car p)(- (cadr p) b1)))
                        (setq lst (list p p2 p3 p4 p))
                        (entmake (append(list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline") (cons 90 (length lst)))(mapcar '(lambda(pt)(cons 10 pt )) lst )));画直阴角的轮廓线
            (setq en1 (entlast));获取转角阴角轮廓线的图元名
            (setq ss1(ssget "l"));将最近一个图元添加到选择集ss1
            (command "COLOR""green");设为图层颜色为绿色(字体)
            (setq p0(list (/(+(car p3)(car p))2)(/(+(cadr p3)(cadr p))2)));文字的插入点
                        (entmake (list '(0 . "TEXT") (cons 1 t1) (cons 7 "yh") (cons 10 p0)(cons 11 p0) (cons 40 35) (cons 41 0.5)  (cons 72 1) (cons 73 2) ))
            ;(command "-TEXT""m" p0 50 "" t1 "");写块中文字
            (setq en2 (entlast));获取文字的图元名z
            (ssadd en2 ss1);将文字添加到选择集ss1
            (command "COLOR"30)
            (command "-block" t1 p ss1 "" "-insert" t1 p "" "" ro );建块并插入块
                )
                (progn
                        (command "-insert" t1 p "" "" ro );插入块
                )
        )
        (princ)
)
以上为代码以下为效果.绿色名称为代码生产的名称,改变代码的那些位置可以变成红色名称。求指点。


本帖子中包含更多资源

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

x
发表于 2020-5-6 18:47:48 | 显示全部楼层
应该是这句 :  (command "COLOR""green");设为图层颜色为绿色(字体)  ,改为red就行了
 楼主| 发表于 2020-5-7 15:00:42 | 显示全部楼层
start4444 发表于 2020-5-6 18:47
应该是这句 :  (command "COLOR""green");设为图层颜色为绿色(字体)  ,改为red就行了

可能我问的问题有点误解,我的意思是怎么把150x150 变成 1515,怎么把LC变成SN。分别在代码的哪个位置去修改。
发表于 2020-5-7 15:22:34 | 显示全部楼层
试一下改这里 (setq t1 (strcat b h " NS "r));多个字符串合并为一个块名字符串
 楼主| 发表于 2020-5-7 16:03:49 | 显示全部楼层
669423907 发表于 2020-5-7 15:22
试一下改这里 (setq t1 (strcat b h " NS "r));多个字符串合并为一个块名字符串

b h 的实际尺寸是 150 150   如何转换为 15 15
发表于 2020-5-7 16:25:34 | 显示全部楼层
(setq t1 (strcat (* b 0.1) (* h 0.1) " NS "r))
 楼主| 发表于 2020-5-7 16:43:30 | 显示全部楼层
669423907 发表于 2020-5-7 16:25
(setq t1 (strcat (* b 0.1) (* h 0.1) " NS "r))

我刚才按你说的改了,没什么变化啊。你可以生成个LSP文件在CAD里面试下吗?有没有VX啊
发表于 2020-5-7 16:54:48 | 显示全部楼层
(setq b (rtos (* b1 0.1) 2 0) h (rtos (* h1 0.1) 2 0)  r (rtos r1 2 0))
 楼主| 发表于 2020-5-7 17:19:32 | 显示全部楼层
669423907 发表于 2020-5-7 16:54
(setq b (rtos (* b1 0.1) 2 0) h (rtos (* h1 0.1) 2 0)  r (rtos r1 2 0))

虽然块中的文字和尺寸没有改变,还是谢谢你。
发表于 2020-5-7 17:24:50 | 显示全部楼层
程序不全,试不了,你重生成一下试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-18 03:59 , Processed in 0.203059 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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