用Entmake创建属性块时碰到问题!搞测绘的有没有?请教个问题【已解决】
本帖最后由 陈亚娣 于 2013-7-29 16:49 编辑搞测绘的有没有?
(Defun C:2 ()
(Setq Blc (* (/ (Getvar "Userr1") 1000.0) 1.0))
(Setq Scale Blc)
(Setq P1 (List 200 200 2.356))
(Setq Height (Caddr P1))
(Entmake (List
'(0 . "Insert")
'(100 . "Acdbentity")
'(100 . "Acdbblockreference")
'(66 . 1);;;属性跟随标志,1跟随,0不跟随
(Cons 2 "Gc200")
(Cons 10 P1)
(Cons 8 "Gcd")
(Cons 41 Scale) ;Scale比例大小
(Cons 42 Scale) ;Scale比例大小
(Cons 43 Scale) ;Scale比例大小
'(-3 ("South" (1000 . "202101")))
)
)
;;;插入属性
(Entmake (List
'(0 . "Attrib")
'(100 . "Acdbentity")
'(100 . "Acdbtext")
(Cons 10 (Setq Pt (Polar P1 0 (* 1.2 Scale))))
;Scale比例大小
(Cons 40 (* 2.0 Scale)) ;Scale比例大小
(Cons 50 0)
(Cons 41 0.8)
(Cons 51 0)
(Cons 1 Height);Height高程注记
(Cons 7 "Hz")
(Cons 72 0)
(Cons 11 Pt)
'(100 . "Acdbattribute")
(Cons 2 "Height")
(Cons 70 0)
(Cons 74 2)
)
)
;;;结束标志
(Entmake '((0 . "SEQEND")))
)
这段代码中的(Cons 1 Height);Height高程注记,运行到这就出现DXF码错误!要怎么处理?
求解猫老师、高手能人
有时也会出现冲突或无法创建复杂对象这些情况
(Cons 1 Height);Height高程注记更改为(Cons '1 Height);1前面加个单引号应该就可以用的 (Setq Height (Caddr P1))改为(Setq Height (rtos(Caddr P1)))加上rtos函数把高程值转换为字符串 本问题似乎并非测绘专业问题
在调试状态下运行,出错后,看height的值,应该能判断处出错的原因
(猜测:height非文本或nil) Student 发表于 2013-7-29 15:23 static/image/common/back.gif
本问题似乎并非测绘专业问题
在调试状态下运行,出错后,看height的值,应该能判断处出错的原因
(猜测: ...
运行后height的值是2.356!是有值的!但是我不会分是不是非文本或者是什么! 陈亚娣 发表于 2013-7-29 15:25 static/image/common/back.gif
运行后height的值是2.356!是有值的!但是我不会分是不是非文本或者是什么!
(Cons 1 Height);Height高程注记中的1后面不能是数字,字符可以,Autodesk公司可能对组码前缀做了限制 解决了共亨下吧老大~ flytoday 发表于 2014-4-13 17:15 static/image/common/back.gif
解决了共亨下吧老大~
;;(setq XPOINT '(100 100 3.56))
(defun vl_gc200()
(Setq Blc (* (/ (Getvar "Userr1") 1000.0) 1.0))
(Setq Scale Blc)
(setq Height (caddr XPOINT))
(Entmake (List
'(0 . "Insert")
'(100 . "Acdbentity")
;'(100 . "Acdbblockreference")
;'(66 . 1);;;属性跟随标志,1跟随,0不跟随
(Cons 2 "Gc200")
(Cons 10 XPOINT)
(Cons 8 "GCD")
(Cons 41 Scale) ;Scale比例大小
(Cons 42 Scale) ;Scale比例大小
(Cons 43 Scale) ;Scale比例大小
'(-3 ("SOUTH" (1000 . "202101")))
)
)
) 命令: 2
; 错误: 参数类型错误: numberp: nil 本帖最后由 陈亚娣 于 2014-4-14 10:06 编辑
flytoday 发表于 2014-4-14 08:45 static/image/common/back.gif
命令: 2
; 错误: 参数类型错误: numberp: nil;;测试前你先设置好比例试试
(defun vl_gc200()
(setq XPOINT '(100 100 3.56))
(Setq Blc (* (/ (Getvar "Userr1") 1000.0) 1.0));;计算插入点比例
(Setq Scale Blc)
(setq Height (caddr XPOINT))
(Entmake (List
'(0 . "Insert")
'(100 . "Acdbentity")
;'(100 . "Acdbblockreference")
;'(66 . 1);;;属性跟随标志,1跟随,0不跟随
(Cons 2 "Gc200")
(Cons 10 XPOINT)
(Cons 8 "GCD")
(Cons 41 Scale) ;Scale比例大小
(Cons 42 Scale) ;Scale比例大小
(Cons 43 Scale) ;Scale比例大小
'(-3 ("SOUTH" (1000 . "202101")))
)
)
)
页:
[1]
2