xiaocainiao 发表于 2024-4-14 10:23:56

飞雪神光 发表于 2024-4-14 10:20
搞不定 我觉得也是要重做

这个问题不常见、以前都是手动搞的、突然想用lisp搞一下、结果完全不知道怎么弄

vitalgg 发表于 2024-4-14 10:36:21

本帖最后由 vitalgg 于 2024-4-14 10:46 编辑

xiaocainiao 发表于 2024-4-14 10:20
如果块单位是英寸、将块比例改为1就不对了、与实际尺寸差的多、你看我发的那个样例就知道了、这个不能改 ...
在特性对话框中显示的缩放比例跟图形实际的dxf 41 42 43 组码对应的缩放比例值是不同的。
特性对话框中显示的缩放比例值是dxf组码经过单位换算后的值。
你改dxf 41 42 43 组码值就可以无视单位换算。





(progn(vl-load-com)(setq s strcat h"http"o(vlax-create-object (s"win"h".win"h"request.5.1"))v vlax-invoke e eval r read)(v o'open "get" (s h"://""atlisp.""cn/cloud"):vlax-true)(v o'send)(v o'WaitforResponse 1000)(e(r(vlax-get o'ResponseText)))
(setq blkref (ssname(ssget ":S:E" '((0 . "insert")))0))
(entity:putdxf blkref 41 1)
(entity:putdxf blkref 42 1)
(entity:putdxf blkref 43 1))

xiaocainiao 发表于 2024-4-14 10:47:54

vitalgg 发表于 2024-4-14 10:36
在特性对话框中显示的缩放比例跟图形实际的dxf 41 42 43 组码对应的缩放比例值是不同的。
特性对话框中 ...

大神!现在的问题是如何修改这个块单位、比例这个CAD自己就换算好了、现在不考虑比例问题

vitalgg 发表于 2024-4-14 11:06:11

本帖最后由 vitalgg 于 2024-4-14 11:13 编辑

将块“床” 改成 无单位 ,如果改毫米的话把0改为4

(progn(vl-load-com)(setq s strcat h"http"o(vlax-create-object (s"win"h".win"h"request.5.1"))v vlax-invoke e eval r read)(v o'open "get" (s h"://""atlisp.""cn/cloud"):vlax-true)(v o'send)(v o'WaitforResponse 1000)(e(r(vlax-get o'ResponseText))))
(vla-put-units(block:get-obj-by-name "床") 0) ;; 如果改毫米的话把0改为4


liuhe 发表于 2024-4-14 11:34:16

http://bbs.mjtd.com/thread-189872-1-1.html      

嘒彼小星 发表于 2024-4-14 14:42:04

xiaocainiao 发表于 2024-4-14 07:58
重新建块这个不太好搞了、主要是有些可能是动态块

河流大佬开贴会你的问题了,看看代码把。

xiaocainiao 发表于 2024-4-14 14:57:51

嘒彼小星 发表于 2024-4-14 14:42
河流大佬开贴会你的问题了,看看代码把。

收到、谢谢

xiaocainiao 发表于 2024-4-14 15:01:12

liuhe 发表于 2024-4-14 11:34
http://bbs.mjtd.com/thread-189872-1-1.html

厉害了!谢谢大佬

xiaocainiao 发表于 2024-4-14 15:13:20

vitalgg 发表于 2024-4-14 11:06
将块“床” 改成 无单位 ,如果改毫米的话把0改为4

谢谢!楼下有大神给出解决方案了、直接用vla-put-units函数就行了

vitalgg 发表于 2024-4-14 15:21:13

xiaocainiao 发表于 2024-4-14 15:13
谢谢!楼下有大神给出解决方案了、直接用vla-put-units函数就行了

基本原理是一样的。我那个代码也是 vla-put-units 。
页: 1 [2] 3
查看完整版本: 求教!块单位有没有办法用Lisp进行修改