Torro 发表于 2022-7-5 23:54:26

Lisp用于标记Y值?

如果之前已经回答过,我深表歉意,但我觉得我在兜圈子!我对lisp完全陌生,需要一个例程,可以将这里讨论的例程组合在一起:
 
http://www.cadtutor.net/forum/archive/index.php/t-33183.html
 
http://www.cadtutor.net/forum/showthread.php?41117-标签点Z值
 
基本上我想画一个小三角形,用Y值来标记。
 
非常感谢您的帮助!

Lee Mac 发表于 2022-7-6 00:02:21

像这样的?

fixo 发表于 2022-7-6 00:05:56

这里有一些


(defun C:ELY(/ osm p)
(setq osm (getvar 'osmode))
(setvar 'osmode
0)
;; Choose one whatever you want:
;; 1.
(command "_polygon"
3   (setq p (getpoint"\nPoint: ")) "_I" 10;|<- Radius|;(list
(car p)(+ (cadr p)10.;|<- Radius| 0.))
(command"_-mtext" p "_J"
"_MC" "_H" (getvar 'dimtxt);|<- Text Height|; "_W" 0 (rtos (cadr p)(getvar
'lunits)(getvar 'dimdec)) "" )
;; 2.
(command "_polygon"
3   (setq p (getpoint"\nPoint: ")) "_I" 10(list (car p)(+ (cadr
p)10.) 0.) "_rotate" "_L" "" p 180 "")
(command"_-mtext"p "_J"
"_MC" "_H" (getvar 'dimtxt) "_W" 0 (rtos (cadr p)(getvar 'lunits)(getvar
'dimdec)) "" )


(setvar 'osmode osm)
(princ)
)
但这可以是任何正的非零数值。
 
文字与水平线的偏移量为文字大小值:
行的长度等于文本中的字符数乘以文本高度:
三角形是等边的,边长等于文本大小:
最后,水平线的宽度等于文本大小乘以0.05:
(polar p1 (/ pi 2.) (* ts (/ (sqrt 3.0) 2.0)))
...
(cons 41 ts)

Torro 发表于 2022-7-6 00:07:34

太棒了,谢谢!我只是更改了dimtxt值,其余的就自行解决了。我唯一似乎无法改变的是小数位数,我需要将其减少到两位。我设法把测量值四舍五入到小数点后两位,但之后又留下了两个零。。。

Lee Mac 发表于 2022-7-6 00:13:26

更改:
5至:
有关更多信息,请参阅rtos功能的参考资料;前导/尾随零由DIMZIN系统变量控制。

Torro 发表于 2022-7-6 00:14:29

完美的非常感谢你是个明星!祝你周末愉快

Lee Mac 发表于 2022-7-6 00:19:33

谢谢你,你也是!

Torro 发表于 2022-7-6 00:24:01

你好!
 
再次感谢你的Lisp程序,效果很好。不过我有点疏忽——我需要箭头能够指向上下,这样我就可以标记,例如,天花板高度或梁拱腹。这是一个简单的解决方法吗?

Lee Mac 发表于 2022-7-6 00:28:47

如果需要快速解决方法,是否尝试过围绕水平轴进行镜像?

Torro 发表于 2022-7-6 00:32:21

我确实,是的。这就是我一直在做的事情,它很好地解决了这个问题。虽然我还没有在任何大型项目上使用LISP,但我很可能很快就会需要,所以增加的一点点时间/额外的过程会变得有点痛苦!
页: [1] 2
查看完整版本: Lisp用于标记Y值?