明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 8287|回复: 55

请帮帮忙

  [复制链接]
发表于 2004-4-4 18:48 | 显示全部楼层 |阅读模式
请各位高手帮帮忙, (defun c:bia(/ n pt txt pt1 pt2 pt3 pttxt)
(setq n(getint "\n 输入标示零件个数: " )
txt(getstring "\n 输入起始零件序号: " )
pt(getpoint "\n 输入标记线连接点: " )
pt1(list (+ (car pt) 6) (cadr pt))
pttxt(list (+ (car pt) 3) (+ (cadr pt) 2.4))
) (setq cl(getvar "clayer"))
(setq os(getvar "osmode"))
(setvar "clayer" "w文字标注")
(setvar "osmode" 0) (command"line" pt pt1 "")
(command"text" "mc" pttxt 3.5 0 txt)
(repeat (- n 1)
(setq pt2(polar pt1 (/ (* pi 7) 4) 1.4))
(command"line" pt1 pt2 "")
(setq pt3(polar pt2 (/ pi 4) 1.4))
(setq pt4(list (+ (car pt3) 6) (cadr pt3)))
(command"line" pt2 pt3 pt4 "")
(setq pttxt(list (+ (car pt3) 3) (+ (cadr pt) 2.4)))
(setq txt (rtos (+ (atoi txt) 1) 2 0))
(print txt)
(command "text" "MC" pttxt 3.5 0 txt)
(setq pt1 pt4)
)
(setvar "clayer" cl)
(setvar "osmode" os)
)
它只能实现方式1,我想同时实现方式1和方式2,我应该怎么改?
发表于 2004-4-4 19:02 | 显示全部楼层
方式1是什么东西,方式2又是什么东西?说清楚点...
 楼主| 发表于 2004-4-4 19:04 | 显示全部楼层
噢,真不好意思,好久不见你,想你

本帖子中包含更多资源

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

x
 楼主| 发表于 2004-4-4 19:47 | 显示全部楼层
我的意思是,我只要告诉程序我是想用方式一,还是方式二,然后它选择用哪种方式标。您是这样理解的吗
发表于 2004-4-4 20:22 | 显示全部楼层
如果你选择了跟PT连的那条直线,或许可以根据直线的角度来判断使用方式1还是方式2


做的时候,你最好将方式1或2做成子函数,在主还是只要根据需要调用某一个就可以了
发表于 2004-4-4 21:43 | 显示全部楼层
(command "line" poi
(progn (setvar "osmode" 0)
(princ "\n 退出/<下一点>:")
pause) ;第二点
(progn
(setq qz (entget (entlast))
qpoi (cadr (assoc 10 qz))
zpoi (cadr (assoc 11 qz))
)
(if (< qpoi zpoi)
(strcat "@" (rtos (* zxcd blab) 2 jqab) "<0")
(strcat "@" (rtos (* zxcd blab) 2 jqab) "<180")
)
) ;第三点
""
) 上面是我的程序中的一段,可以实现你的想法,希望对你有所帮助.
发表于 2004-4-4 21:47 | 显示全部楼层



如图

本帖子中包含更多资源

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

x
 楼主| 发表于 2004-4-5 14:36 | 显示全部楼层
(defun c:bia(/ n pt txt pt1 pt2 pt3 pttxt d)
(setq n(getint "\n 输入标示零件个数: " )
txt(getstring "\n 输入起始零件序号: " )
d(getstring "\n 在左还是在右<在左>: ")
pt(getpoint "\n 输入标记线连接点: " )
)
(if(= "r" d)
(setq pt(list (- (car pt) (+ (* 6 n) (* 2 (- n 1)))) (cadr pt)))
)
(setq pt1(list (+ (car pt) 6) (cadr pt))
pttxt(list (+ (car pt) 3) (+ (cadr pt) 2.4))
) (setq cl(getvar "clayer"))
(setq os(getvar "osmode"))
(setvar "clayer" "w文字标注")
(setvar "osmode" 0) (command"line" pt pt1 "")
(command"text" "mc" pttxt 3.5 0 txt)
(repeat (- n 1)
(setq pt2(polar pt1 (/ (* pi 7) 4) 1.41421))
(command"line" pt1 pt2 "")
(setq pt3(polar pt2 (/ pi 4) 1.41421))
(setq pt4(list (+ (car pt3) 6) (cadr pt3)))
(command"line" pt2 pt3 pt4 "")
(setq pttxt(list (+ (car pt3) 3) (+ (cadr pt) 2.4)))
(setq txt (rtos (+ (atoi txt) 1) 2 0))
(print txt)
(command "text" "MC" pttxt 3.5 0 txt)
(setq pt1 pt4)
)
(setvar "clayer" cl)
(setvar "osmode" os)
)
发表于 2004-4-5 15:15 | 显示全部楼层
左右方向未提示用户该输入什么,总不能输入一个“在左”或“在右”吧,提示语最好这样写:[在右(R)]&lt;在左(L)&gt;:


判断这样:(if (= "R"        (strcase d))...


ps:头像是你本人照片吗?好靓哦,发到社区留言里置顶的帖子里吧,好多人
 楼主| 发表于 2004-4-5 18:54 | 显示全部楼层
你告诉我,这张照片给你的感觉是不是我很土,不许说谎,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-2 16:30 , Processed in 0.530029 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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