cad lisp语言编写的程序,求修改
(defunC:zbbz(/zbgdcldosm)(setqosm(getvar"osmode"))(setvar"osmode"32)(setvar"clayer""T...
(defun C:zbbz( / zb gd cld osm )
(setq osm (getvar"osmode"))
(setvar "osmode" 32)
(setvar "clayer" "TK" )
(setq gd 2.5)
(if (= gd nil) (setq gd 0.5))
(while (setq zb (getpoint "指定坐标点:"))
(setq cld(getpoint zb "指定文字插入点:"))
(entmake (list
'(0 . " ")
'(67 . 0)
'(4 . "hz")
(list 10 (car zb) (cadr zb) 0)
(list 11 (car cld) (cadr cld) 0)
'(210 0.0 0.0 1.0)
)
)
(entmake (list
'(0 . "text")
(list 10 (+ (car cld) gd) (car(cdr cld)) )
(cons 40 gd)
(cons 1 ( strcat "N" (rtos (cadr zb) 2 0)))
'(50 . 4.71);文字斜角,以π为单位,180度为π
)
)
(entmake (list
'(0 . "text")
(list 10 (+ (car cld) gd)
(- (car(cdr cld)) (+ gd (/ gd 3)) )
)
(cons 40 gd)
(cons 1 (strcat "E"(rtos (car zb) 2 0)))
'(50 . 0)
)
)
)
(setvar "osmode" osm)
(princ)
)
将输出的字体设置为“宋体”2.5字高的,怎么修改啊,好像默输出的字体为standard,我怎么修改都控制不了,不知道是哪个参数在控制程序输出的字体,求帮忙修改此程序的输出字体为“宋体” 展开
(setq osm (getvar"osmode"))
(setvar "osmode" 32)
(setvar "clayer" "TK" )
(setq gd 2.5)
(if (= gd nil) (setq gd 0.5))
(while (setq zb (getpoint "指定坐标点:"))
(setq cld(getpoint zb "指定文字插入点:"))
(entmake (list
'(0 . " ")
'(67 . 0)
'(4 . "hz")
(list 10 (car zb) (cadr zb) 0)
(list 11 (car cld) (cadr cld) 0)
'(210 0.0 0.0 1.0)
)
)
(entmake (list
'(0 . "text")
(list 10 (+ (car cld) gd) (car(cdr cld)) )
(cons 40 gd)
(cons 1 ( strcat "N" (rtos (cadr zb) 2 0)))
'(50 . 4.71);文字斜角,以π为单位,180度为π
)
)
(entmake (list
'(0 . "text")
(list 10 (+ (car cld) gd)
(- (car(cdr cld)) (+ gd (/ gd 3)) )
)
(cons 40 gd)
(cons 1 (strcat "E"(rtos (car zb) 2 0)))
'(50 . 0)
)
)
)
(setvar "osmode" osm)
(princ)
)
将输出的字体设置为“宋体”2.5字高的,怎么修改啊,好像默输出的字体为standard,我怎么修改都控制不了,不知道是哪个参数在控制程序输出的字体,求帮忙修改此程序的输出字体为“宋体” 展开
3个回答
展开全部
在'(0 . "text")下面加入'(7 . "宋体") 即可,但这里的“宋体”需要预先在“文字样式”对话框定义
追问
谢谢了,在请教下,如何控制输出的注记位置,两个注记N和E的连带坐标考得太近了,我想把他们位置分开点。
追答
把第一个'(0 . "text")下面的
(list 10 (+ (car cld) gd)
替换成
(list 10
(+ (car cld) gd) ;X值往右偏移一倍字高(2.5)
(- (cadr cld) (* gd 1.3)) ;Y值往下偏移1.3倍字高
)
把第二个'(0 . "text")
下面的
(list 10 (+ (car cld) gd)
(- (car(cdr cld)) (+ gd (/ gd 3)) )
)
替换成
(list 10
(+ (car cld) (* gd 2.0)) ;X值往右偏移2倍字高
(- (cadr cld) (* gd 1.3));Y值往下偏移1.3倍字高
)
看看效果,如果移动后的位置不符合你的要求,可在参照此样式更改一下数值。
琢磨了一下,你的第一个entmake好像没什么用处,如果没有特别的用途可以删除;同时,你的程序中还需增加一个自定义错误处理函数以便还原系统变量,否则当按ESC键后,对象捕捉模式就全部清空了。
展开全部
这个程序是直接 新建一个表,到不如你直接输入STYLE来改成宋体就行了 ,
追问
我用style了,可是一运行这个程序,字体还是standard的字体,郁闷
追答
(command "style" "仿宋体" "" 1.0 0.8 0 "" "")
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
-style 可以设置当前字体
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询